* TTL BOOTFLEX OPT PAG BOOTFLEX 1-10-12 TSC ASSEMBLER PAGE 1 * THIS IS THE BOOT FOR FLEX 2.0 * THE SIXTH AND SEVENTH BYTE RELATIVE * TO THE BEGINNING OF THE PROGRAM * MUST POINT TO THE FIRST TRACK AND * SECTOR OF FLEX.SYS * modified by FLD for GOUPIL 2 * EB24 DRVREG EQU $EB24 FOR G2 WITH WD1795 & DMA EB20 CMDREG EQU $EB20 FOR G2 WITH WD1795 & DMA EB21 TRKREG EQU $EB21 FOR G2 WITH WD1795 & DMA EB22 SECREG EQU $EB22 FOR G2 WITH WD1795 & DMA EB23 DATREG EQU $EB23 FOR G2 WITH WD1795 & DMA A07F STKORG EQU $A07F EB00 DMAADD EQU $EB00 FOR G2 WITH WD1795 & DMA EB02 DMACON EQU $EB02 FOR G2 WITH WD1795 & DMA EB10 DMACOM EQU $EB10 FOR G2 WITH WD1795 & DMA EB14 DMAPRI EQU $EB14 FOR G2 WITH WD1795 & DMA * FFE6 CONTRL EQU $FFE6 HOT ENTRY POINT FOT G2 MONOTOR FFF2 PDATA EQU $FFF2 PRINT STRING FFF5 PCRLF EQU $FFF5 PRINT CR AND LF * 5DFF BUFDMA EQU $5DFF A200 BUFFER EQU $A200 A300 BUFEND EQU $A300 * A100 ORG $A100 * A100 8E A0 7F START LDS #STKORG A103 20 11 BRA BEGIN * A105 02 FLXTRK FCB $02 A106 05 FLXSCT FCB $05 A107 00 TVHIGH FCB $00 A108 00 TVLOW FCB $00 A109 00 DESTHI FCB $00 DESTINATION HIGH A10A 00 DESTLO FCB $00 DESTINATION LOW A10B 00 00 BUFPTR FDB $0000 * A10D CE 00 00 WAIT1S LDX #$00 WAIT 1 SEC A110 08 WLOOP INX A111 09 DEX A112 09 DEX A113 26 FB BNE WLOOP A115 39 RTS * A116 86 7F BEGIN LDA A #$7F A118 B7 EB 24 STA A DRVREG A11B 8D F0 BSR WAIT1S A11D 86 09 LDA A #$09 RESTORE A11F B7 EB 20 STA A CMDREG A122 8D 73 BSR TEMPO DELAY LOOP A124 8D 4B BSR TEST BOOTFLEX 1-10-12 TSC ASSEMBLER PAGE 2 A126 86 00 LDA A #$00 A128 B7 EB 21 STA A TRKREG A12B 8D 6A BSR TEMPO DELAY LOOP A12D 8D 6A BSR READ1SE A12F 8D 4C GETSTX BSR GETBYT A131 81 02 CMP A #$02 IS IT "STX"? A133 27 19 BEQ MOVBUF YES A135 81 16 CMP A #$16 IS IT TRANSFER VECTOR? A137 26 F6 BNE GETSTX NO * * WE HAVE FOUND A TRANSFER VECTOR. * A139 8D 42 BSR GETBYT A13B B7 A1 07 STA A TVHIGH A13E 8D 3D BSR GETBYT A140 B7 A1 08 STA A TVLOW A143 CE A1 F0 LDX #OK A146 BD FF F2 JSR PDATA A149 FE A1 07 LDX TVHIGH A14C 6E 00 JMP $00,X * A14E 8D 2D MOVBUF BSR GETBYT GET DESTINATION ADDRESS A150 36 PSH A A151 8D 2A BSR GETBYT A153 33 PUL B A154 B7 A1 0A STA A DESTLO A157 F7 A1 09 STA B DESTHI A15A 8D 21 BSR GETBYT GET BYTE COUNT A15C 16 TAB A15D 27 D0 BEQ GETSTX BYTE COUNT = ZERO A15F 37 MOVLUP PSH B A160 8D 1B BSR GETBYT A162 33 PUL B A163 FE A1 09 LDX DESTHI A166 A7 00 STA A $00,X A168 08 INX A169 FF A1 09 STX DESTHI A16C 5A DEC B A16D 26 F0 BNE MOVLUP A16F 20 BE BRA GETSTX * A171 8D 04 TEST BSR READY A173 47 ASR A A174 25 FB BCS TEST WAIT TILL NOT BUSY A176 39 RTS A177 B6 EB 20 READY LDA A CMDREG GET WD STATUS A17A 85 80 BIT A #$80 TEST A VERIFIER ?, #$01 ? A17C 39 RTS * A17D FE A1 0B GETBYT LDX BUFPTR A180 8C A3 00 CPX #BUFEND A183 27 05 BEQ BUFFMT A185 A6 00 LDA A $00,X A187 08 INX BOOTFLEX 1-10-12 TSC ASSEMBLER PAGE 3 A188 20 45 BRA MA1A9 A18A CE A2 00 BUFFMT LDX #BUFFER GET LINK TO NEXT TRK-SECT A18D A6 00 LDA A $00,X A18F E6 01 LDA B $01,X A191 8D 0C BSR READSEC A193 20 E8 BRA GETBYT A195 20 DA BRA TEST * A197 20 52 TEMPO BRA DELAY * A199 B6 A1 05 READ1SE LDA A FLXTRK A19C F6 A1 06 LDA B FLXSCT A19F 8D 32 READSEC BSR SELTRK A1A1 CE FE FF LDX #$FEFF A1A4 FF EB 02 STX DMACON SET BUFFER LENTH A1A7 CE 5D FF LDX #BUFDMA A1AA FF EB 00 STX DMAADD SET BUFFER ADDRESS A1AD 86 FD LDA A #$FD A1AF B7 EB 10 STA A DMACOM A1B2 86 FE LDA A #$FE A1B4 B7 EB 14 STA A DMAPRI A1B7 86 8C LDA A #$8C READ A SECTOR A1B9 B7 EB 20 STA A CMDREG A1BC FE EB 02 WAIT LDX DMACON A1BF 8C FE FF CPX #$FEFF A1C2 27 F8 BEQ WAIT WAIT NTIL DMA FINISHED A1C4 86 FF LDA A #$FF RESET DMA A1C6 B7 EB 14 STA A DMAPRI A1C9 8D A6 BSR TEST A1CB 5F CLR B A1CC CE A2 04 LDX #BUFFER+4 A1CF FF A1 0B MA1A9 STX BUFPTR A1D2 39 RTS * A1D3 B1 EB 21 SELTRK CMP A TRKREG IS IT CURRENT TRACK ? A1D6 27 10 BEQ MA1C2 JUMP IF YES A1D8 B7 EB 23 STA A DATREG A1DB 8D 0E BSR DELAY A1DD 86 19 LDA A #$19 A1DF B7 EB 20 STA A CMDREG A1E2 8D 07 BSR DELAY A1E4 37 PSH B A1E5 8D 8A BSR TEST A1E7 33 PUL B A1E8 F7 EB 22 MA1C2 STA B SECREG * LDAA #$7F * CMPB #$0A IS IT SIDE 1 * BLS MA1CC NO JUMP IF SIDE 0 * LDAA #$6F * MA1CC STAA DRVREG A1EB 8D 00 DELAY BSR DEL1 A1ED 8D 00 DEL1 BSR RETDEL A1EF 39 RETDEL RTS * BOOTFLEX 1-10-12 TSC ASSEMBLER PAGE 4 A1F0 20 OK FCC " Booting.." A1F1 42 6F A1F3 6F 74 A1F5 69 6E A1F7 67 2E A1F9 2E A1FA 04 FCB $04 END NO ERROR(S) DETECTED BOOTFLEX 1-10-12 TSC ASSEMBLER PAGE 5 SYMBOL TABLE: BEGIN A116 BUFDMA 5DFF BUFEND A300 BUFFER A200 BUFFMT A18A BUFPTR A10B CMDREG EB20 CONTRL FFE6 DATREG EB23 DEL1 A1ED DELAY A1EB DESTHI A109 DESTLO A10A DMAADD EB00 DMACOM EB10 DMACON EB02 DMAPRI EB14 DRVREG EB24 FLXSCT A106 FLXTRK A105 GETBYT A17D GETSTX A12F MA1A9 A1CF MA1C2 A1E8 MOVBUF A14E MOVLUP A15F OK A1F0 PCRLF FFF5 PDATA FFF2 READ1S A199 READSE A19F READY A177 RETDEL A1EF SECREG EB22 SELTRK A1D3 START A100 STKORG A07F TEMPO A197 TEST A171 TRKREG EB21 TVHIGH A107 TVLOW A108 WAIT A1BC WAIT1S A10D WLOOP A110