10       .OPT NO LIST
20 ;#D3:USD11.M65
40 BUFF  =   $0180
50 ZP    =   $00
60       *=  ZP
70 Z31   .DS 3
80 Z33   .DS 1       ;03
90       *=  ZP+$1F
0100 Z76 .DS 1
0110 Z2  .DS 1
0120 Z36 .DS 1
0130 Z4  .DS 1
0140 MSECTPTRK .DS 1
0150 Z37 .DS 1
0160 Z6  .DS 1
0170 Z14 .DS 1
0180 SECTSDW .DS 1
0190 TRACKSDW .DS 1
0200 Z25 .DS 1
0210 TLFLG .DS 1
0220 CHKSUMS .DS 1
0230 Z3  .DS 1
0240 NUMSECT_TRK .DS 1
0250 Z28 .DS 1
0260 HSFLG .DS 1
0270 Z7  .DS 1
0280 Z1  .DS 1
0290 Z9  .DS 1
0300 VERIFYFLG .DS 1
0310 Z26 .DS 1
0320 Z27 .DS 1
0330 Z10 .DS 1
0340 Z11 .DS 1
0350 Z8  .DS 1       ;38
0360     *=  ZP+$50
0370 Z41 .DS 1
0380 Z20 .DS 1
0390 Z45 .DS 1
0400 Z46 .DS 1
0410 Z48 .DS 1
0420 Z49 .DS 1
0430 Z50 .DS 1
0440 Z51 .DS 1
0450 Z52 .DS 1
0460 Z53 .DS 1
0470 Z42 .DS 1
0480 Z54 .DS 2
0490 Z43 .DS 2
0500 Z44 .DS 1
0510 Z39 .DS 1
0520 Z47 .DS 1
0530     *=  ZP+$7B
0540 Z38 .DS 1
0550 Z29 =   $80
0570 W47 =   $0100
0580 W30 =   Z26+$0100
0590 W29 =   Z27+$0100
0600     *=  BUFF
0610 W11 .DS 1
0620 W12 .DS 1
0630 W31 .DS 1
0640 W32 .DS 2
0650 W36 .DS 1
0660 W39 .DS 1
0670 W37 .DS 4
0680 W40 .DS 1
0690 W53 =   $0200
0700 PORTA = $0280
0710 PADDR = $0281
0720 PORTB = $0282
0730 PBDDR = $0283
0740 RINTFLG = $0295
0750 RTIMER = $029C
0760 T64 =   $029E
0770 T1024 = $029F
0780 W54 =   $0300
0790 COMMAND = $0400
0800 STATUS = $0400
0810 TRACK = $0401
0820 SECTOR = $0402
0830 DATA =  $0403
0840 W55 =   $0800
0860     *=  $F000
0870 W24 .BYTE $1D,$2D,$35,$39
0880 W10 .BYTE "3241"
0890     .BYTE "(C)1984 ICD."
0900 START CLD 
0910     SEI 
0920     LDX #Z76
0930     TXS 
0940     JMP TSTRAM
0950 J187 LDA #$00
0960     LDX #$5F
0970 L3  STA Z2,X
0980     DEX 
0990     BPL L3
1000     STX Z3
1010     LDA #$3C
1020     STA PADDR
1030     LDA #$3D
1040     STA PBDDR
1050     LDA #$3D
1060     STA PORTB
1070     LDA #$28
1080     STA Z4
1090     LDA #$12
1100     STA MSECTPTRK
1110     LDA #$80
1120     STA Z6
1130     JSR J4
1140     JSR J5
1150     JSR J6
1160     JSR J7
1170     BIT STATUS
1180     BMI L8
1190     JSR J9
1200 L8  LDX #Z76
1210     TXS 
1220     JSR J10
1230     LDA #$1E
1240     STA Z7
1250     JMP J11
1260 L15 LDA Z8
1270     EOR STATUS
1280     BPL L12
1290     LDA #$00
1300     STA Z9
1310     LDA STATUS
1320     STA Z8
1330     BMI L13
1340     JSR J4
1350     JSR J5
1360     JSR J6
1370     JSR J7
1380     JSR J9
1390 J11 LDA #$FA
1400     STA Z10
1410     JMP L12
1420 L13 LDA #$3D
1430     STA PORTB
1440     LDA #$08
1450     ORA PORTA
1460     STA PORTA
1470     LDA #$FF
1480     STA Z3
1490 L12 JSR J14
1500     DEC Z11
1510     BNE L15
1520     DEC Z7
1530     BNE L16
1540     LDA Z1
1550     STA HSFLG
1560 L16 DEC Z10
1570     BNE L15
1580     BEQ L13
1590 J14 LDA #$02
1600     BIT PORTB
1610     BNE L17
1620     BMI L18
1630 L17 RTS 
1640 L18 LDA #$04
1650     STA TLFLG
1660     JSR RECVE
1670     PHP 
1680     LDY #$0A
1690 L21 BIT PORTB
1700     BPL L20
1710     DEC Z11
1720     BNE L21
1730     DEY 
1740     BNE L21
1750     PLA 
1760     PLA 
1770     PLA 
1780     JMP L13
1790 L20 PLP 
1800     BNE L22
1810     LDA PORTA
1820     AND #$03
1830     TAX 
1840     LDA W10,X
1850     CMP BUFF
1860     BEQ L23
1870     LDA Z1
1880     STA HSFLG
1890     LDA #$01
1900     STA Z11
1910     JMP J24
1920 L22 LDA HSFLG
1930     EOR #$FF
1940     STA HSFLG
1950 J24 LDA #$1E
1960     STA Z7
1970     RTS 
1980 L28 ORA Z2
1990     STA Z2
2000     JSR NACK
2010     JMP L8
2020 L23 LDX #$09
2030     LDA BUFF+1
2040 L27 CMP SIOCMD,X
2050     BEQ L26
2060     BEQ L26
2070     DEX 
2080     BPL L27
2090 J92 LDA #$01
2100     BNE L28
2110 L26 LDA #$02
2120     STA Z14
2130     LDA HSFLG
2140     STA Z1
2150     TXA 
2160     ASL A
2170     TAX 
2180     LDA CMDVECT+1,X
2190     PHA 
2200     LDA CMDVECT,X
2210     PHA 
2220     RTS 
2230 SIOCMD .BYTE $21,$22,"PRSWNO?f"
2240 CMDVECT .WORD FORMAT-1
2250     .WORD FORMATENH-1
2260     .WORD PUT-1,READ-1
2270     .WORD DSTATUS-1,WRITE-1
2280     .WORD PUT_BLOCK-1,GET_BLOCK-1
2290     .WORD HGHSPDINX-1
2300     .WORD FORMATSPL-1
2310 J112 JSR J43
2320     JSR J5
2330     BIT Z9
2340     BMI L31
2350     JSR J9
2360 L31 JSR J10
2370     LDA TRACKSDW
2380     STA TRACK
2390     LDA SECTSDW
2400     STA SECTOR
2410     LDA #$F4
2420     STA T1024
2430     RTS 
2440 J43 LDA TRACKSDW
2450     JSR J32
2460     BEQ L33
2470 L36 JSR J34
2480     BEQ L35
2490     BNE L36
2500 L35 TXA 
2510     BMI L37
2520     JSR J34
2530     LDX #$FF
2540     JSR J34
2550 L37 LDA #$A0
2560     STA T64
2570     BNE L38
2580 J34 JSR J39
2590 L38 LDA RINTFLG
2600     BPL L38
2610     TYA 
2620 L33 RTS 
2630 J39 LDA #$A0
2640     STA T64
2650     TXA 
2660     PHA 
2670     CLC 
2680     ADC Z25
2690     STA Z25
2700     AND #$03
2710     TAX 
2720     LDA W24,X
2730     STA PORTB
2740     LDA Z25
2750     CMP #$28
2760     BCC L40
2770     LDA PORTA
2780     ORA #$10
2790     BNE L41
2800 L40 LDA PORTA
2810     AND #$EF
2820 L41 STA PORTA
2830     PLA 
2840     TAX 
2850     DEY 
2860     RTS 
2870 J32 LDX #$01
2880     LSR Z25
2890     SEC 
2900     SBC Z25
2910     BPL L42
2920     LDX #$FF
2930     EOR #$FF
2940     ADC #$01
2950 L42 ASL A
2960     ASL Z25
2970     TAY 
2980     RTS 
2990 J6  LDA Z25
3000     LSR A
3010     ADC #$05
3020     STA TRACKSDW
3030     JMP J43
3040 J7  JSR J10
3050     LDA STATUS
3060     AND #$04
3070     BEQ L44
3080 L46 LDX #$FF
3090     JSR J39
3100 L45 BIT RINTFLG
3110     BPL L45
3120     BMI J7
3130 L44 LDA Z25
3140     AND #$03
3150     STA Z25
3160     BNE L46
3170     RTS 
3180 J4  BIT Z3
3190     BPL L47
3200     JSR J10
3210     LDA #$F7
3220     AND PORTA
3230     STA PORTA
3240     LDX #$00
3250     JSR J39
3260     LDA #$00
3270     STA DATA
3280     LDA #$0C
3290     STA TRACK
3300     LDA #$13
3310     STA COMMAND
3320 L47 RTS 
3330 DELAY BIT Z3
3340     BPL L48
3350     LDA #$50
3360     JSR J49
3370 L48 RTS 
3380 J5  BIT Z3
3390     BPL L50
3400 L51 LDA STATUS
3410     AND #$01
3420     BNE L51
3430     INC Z3
3440 L50 LDA PORTA
3450     AND #$08
3460     BNE L52
3470     LDA #$10
3480     ORA Z2
3490     STA Z2
3500 L52 RTS 
3510 J49 STA Z26
3520 L54 LDX #$C8
3530 L53 DEX 
3540     BNE L53
3550     DEC Z26
3560     BNE L54
3570     RTS 
3580 ACK LDA #$41
3590     .BYTE $2C   ;BIT
3600 NACK LDA #$4E
3610     .BYTE $2C   ;BIT
3620 CMPLT LDA #$43
3630     .BYTE $2C   ;BIT
3640 ERR LDA #$45
3650 J117 LDX #$28
3660 L55 DEX 
3670     BNE L55
3680     BIT HSFLG
3690     BMI L56
3700     JMP J57
3710 L56 STA Z27
3720     JMP J58
3730 J118 JSR J59
3740 J146 BIT HSFLG
3750     BMI L60
3760     JMP J61
3770 L60 JMP J62
3780 J120 JSR J59
3790 RECVE BIT HSFLG
3800     BMI L63
3810     JMP J64
3820 L63 JMP J65
3830 J59 LDX Z28
3840     LDA TRACKSDW
3850     BNE L66
3860     LDA SECTSDW
3870     CMP #$04
3880     BCS L66
3890     LDX #$80
3900 L66 STX TLFLG
3910     RTS 
3920 J74 LDY #$0A
3930 L68 BIT PORTB
3940     BVS L67
3950     DEC Z11
3960     BNE L68
3970     DEY 
3980     BNE L68
3990     INC Z11
4000     PLA 
4010     PLA 
4020     LDA #$01
4030     RTS 
4040 L67 SEC 
4050     LDA #$80
4060     LDY #$06
4070 L69 DEY 
4080     BNE L69
4090 L73 LDY #$06
4100 L70 DEY 
4110     BNE L70
4120     NOP 
4130     NOP 
4140     BIT PORTB
4150     BVC L71
4160     CLC 
4170     BCC L72
4180 L71 SEC 
4190     NOP 
4200 L72 ROR A
4210     BCC L73
4220     CMP (Z29,X)
4230     CMP (Z29,X)
4240     CMP (Z29,X)
4250     RTS 
4260 J64 LDX #$00
4270     STX CHKSUMS
4280 L75 JSR J74
4290     STA BUFF,X
4300     CLC 
4310     ADC CHKSUMS
4320     ADC #$00
4330     STA CHKSUMS
4340     INX 
4350     CPX TLFLG
4360     BNE L75
4370     JSR J74
4380     CMP CHKSUMS
4390     RTS 
4400 J57 STA Z27
4410     LDA #$08
4420     STA Z26
4430     LDA #$FE
4440     AND PORTB
4450     STA PORTB
4460     NOP 
4470     ROR W24
4480 L79 ROR W29
4490     BCC L76
4500     LDA #$01
4510     ORA PORTB
4520     BNE L77
4530 L76 LDA #$FE
4540     AND PORTB
4550     NOP 
4560 L77 LDY #$04
4570 L78 DEY 
4580     BNE L78
4590     NOP 
4600     STA PORTB
4610     DEC W30
4620     BNE L79
4630     LDY #$06
4640 L80 DEY 
4650     BNE L80
4660     NOP 
4670     NOP 
4680     LDA #$01
4690     ORA PORTB
4700     STA PORTB
4710     RTS 
4720 J61 LDX #$00
4730     STX CHKSUMS
4740 L81 LDA BUFF,X
4750     CLC 
4760     PHA 
4770     ADC CHKSUMS
4780     ADC #$00
4790     STA CHKSUMS
4800     PLA 
4810     JSR J57
4820     INX 
4830     CPX TLFLG
4840     BNE L81
4850     LDA CHKSUMS
4860     JSR J57
4870     RTS 
4880 J62 LDX #$00
4890     STX CHKSUMS
4900 L82 LDA BUFF,X
4910     CLC 
4920     STA Z27
4930     ADC CHKSUMS
4940     ADC #$00
4950     STA CHKSUMS
4960     JSR J58
4970     INX 
4980     CPX TLFLG
4990     BNE L82
5000     LDA CHKSUMS
5010     STA Z27
5020 J58 LDY #$08
5030     LDA PORTB
5040     AND #$FE
5050     STA PORTB
5060     BIT Z31
5070     NOP 
5080 L83 LSR A
5090     LSR W29
5100     ROL A
5110     STA PORTB
5120     DEY 
5130     BNE L83
5140     LSR A
5150     SEC 
5160     ROL A
5170     NOP 
5180     BIT Z31
5190     STA PORTB
5200     RTS 
5210 J65 LDX #$00
5220     STX CHKSUMS
5230 L84 BIT PORTB
5240     BVC L84
5250     LDY #$09
5260 L85 LDA PORTB
5270     ASL A
5280     ASL A
5290     ROR W29
5300     DEY 
5310     BNE L85
5320     ROR W24
5330 L86 BIT PORTB
5340     BVC L86
5350     LDA Z27
5360     EOR #$FF
5370     STA BUFF,X
5380     CLC 
5390     ADC CHKSUMS
5400     ADC #$00
5410     STA CHKSUMS
5420     LDY #$08
5430 L87 LDA PORTB
5440     ASL A
5450     ASL A
5460     ROR W29
5470     DEY 
5480     BNE L87
5490     INX 
5500     CPX TLFLG
5510     BNE L86
5520     LDA Z27
5530     EOR #$FF
5540     CMP CHKSUMS
5550     RTS 
5560 CALULATE LDA BUFF+2
5570     BNE L88
5580     DEC W32
5590 L88 DEC BUFF+2
5600     LDX #$10
5610     LDA #$00
5620 L90 ASL BUFF+2
5630     ROL W32
5640     ROL A
5650     LSR BUFF+2
5660     CMP NUMSECT_TRK
5670     BCC L89
5680     SBC NUMSECT_TRK
5690 L89 ROL BUFF+2
5700     DEX 
5710     BNE L90
5720     TAX 
5730     INX 
5740     STX SECTSDW
5750     LDA W32
5760     BNE L91
5770     LDA BUFF+2
5780     CMP Z4
5790     BCS L91
5800     STA TRACKSDW
5810     RTS 
5820 L91 JMP J92
5830 FDC_READY LDA STATUS
5840     AND #$80
5850     BNE L93
5860     RTS 
5870 L93 JSR NACK
5880     JMP L8
5890 J119 JSR J94
5900     BCS L93
5910     RTS 
5920 J10 JSR J95
5930 J95 LDA #$D0
5940     STA COMMAND
5950     LDX #$07
5960 L96 DEX 
5970     BNE L96
5980 L97 LDA STATUS
5990     AND #$01
6000     BNE L97
6010     RTS 
6020 J9  JSR J10
6030     JSR J98
6040     BEQ L99
6050     LDA PORTA
6060     EOR #$20
6070     STA PORTA
6080     JSR J10
6090     JSR J98
6100     BNE L100
6110 L99 LDA Z2
6120     AND #$5F
6130     LDX #$80
6140     LDY Z33
6150     BEQ L101
6160     LDX #$00
6170     ORA #$20
6180 L101 STA Z2
6190     STX Z28
6200     LDA #$FF
6210     STA Z9
6220     TXA 
6230     BEQ L102
6240     LDA PORTA
6250     AND #$20
6260     BNE L102
6270     LDX #$1A
6280     LDA Z2
6290     ORA #$80
6300     STA Z2
6310     .BYTE $2C
6320 L102 LDX #$12
6330     STX NUMSECT_TRK
6340     RTS 
6350 L100 LDA PORTA
6360     EOR #$20
6370     STA PORTA
6380     RTS 
6390 J98 LDA #$F4
6400     STA T1024
6410     LDA #$C0
6420     STA COMMAND
6430     LDX #$00
6440 L104 LDA RTIMER
6450 L105 BIT PORTA
6460     BVC L103
6470     BPL L104
6480     LDA DATA
6490     STA Z31,X
6500     INX 
6510     CPX #$06
6520     BNE L105
6530 L106 LDA STATUS
6540     AND #$01
6550     BNE L106
6560     LDA STATUS
6570     AND #$1C
6580     RTS 
6590 L103 JSR J10
6600     LDA #$FF
6610     RTS 
6620 J94 JSR J10
6630     LDA STATUS
6640     AND #$40
6650     BEQ L107
6660     LDA Z2
6670     ORA #$08
6680     STA Z2
6690     SEC 
6700     .BYTE $24   ;BIT ZP
6710 L107 CLC 
6720     RTS 
6730 READ
6740     JSR CALULATE
6750     JSR FDC_READY
6760     JSR ACK
6770     JSR J4
6780     JSR DELAY
6790     JSR J112
6800     BIT HSFLG
6810     BMI L113
6820     LDA #$03
6830     JSR J49
6840 L113 JSR J114
6850     JSR J115
6860     BCC L116
6870     BNE L113
6880     LDA #$45
6890     .BYTE $2C
6900 L116 LDA #$43
6910     JSR J117
6920     JSR J118
6930     JMP L8
6940 PUT LDA #$00
6950     .BYTE $2C
6960 WRITE
6970     LDA #$FF
6980     STA VERIFYFLG
6990     JSR CALULATE
7000     JSR FDC_READY
7010     JSR J119
7020     JSR ACK
7030     JSR J4
7040     JSR J120
7050     BEQ L121
7060     JSR NACK
7070     JMP L8
7080 L121 JSR ACK
7090 L128 JSR J112
7100 L124 JSR J122
7110     JSR J115
7120     BCC L123
7130     BNE L124
7140 L129 JSR ERR
7150     JMP L8
7160 L123 BIT VERIFYFLG
7170     BPL L126
7180     JSR J112
7190     JSR J127
7200     BNE L128
7210     JSR J115
7220     BCC L126
7230     BNE L128
7240     BEQ L129
7250 L126 JSR CMPLT
7260     JMP L8
7270 J115 LDA STATUS
7280     STA Z36
7290     AND #$BD
7300     BNE L131
7310     CLC 
7320     RTS 
7330 L131 AND #$10
7340     BEQ L132
7350     LDA Z14
7360     CMP #$02
7370     BNE L132
7380     JSR J7
7390 L132 LDA #$00
7400     STA Z9
7410     JSR J112
7420     DEC Z14
7430     SEC 
7440     RTS 
7450 J114 LDA #$88
7460     STA COMMAND
7470     LDX #$00
7480 L134 LDA RTIMER
7490 L135 BIT PORTA
7500     BVC L133
7510     BPL L134
7520     LDA DATA
7530     EOR #$FF
7540     STA BUFF,X
7550     INX 
7560     CPX Z28
7570     BNE L135
7580 L136 JMP L106
7590 L133 LDA STATUS
7600     AND #$01
7610     BEQ L136
7620     BNE L134
7630 J122 LDA #$A8
7640     STA COMMAND
7650     LDX #$00
7660     LDA BUFF
7670     EOR #$FF
7680 L138 BIT RTIMER
7690 L139 BIT PORTA
7700     BVC L137
7710     BPL L138
7720     STA DATA
7730     INX 
7740     LDA BUFF,X
7750     EOR #$FF
7760     CPX Z28
7770     BNE L139
7780 L140 JMP L106
7790 L137 LDA STATUS
7800     AND #$01
7810     BNE L138
7820     BEQ L140
7830 J127 LDA #$88
7840     STA COMMAND
7850     LDX #$00
7860 L142 LDA RTIMER
7870 L144 BIT PORTA
7880     BVC L141
7890     BPL L142
7900     LDA DATA
7910     EOR #$FF
7920     CMP BUFF,X
7930     BNE L143
7940     INX 
7950     CPX Z28
7960     BNE L144
7970 L145 JSR L106
7980     LDA #$00
7990     RTS 
8000 L141 LDA STATUS
8010     AND #$01
8020     BNE L142
8030     BEQ L145
8040 L143 JSR J10
8050     LDA #$FF
8060     RTS 
8070 DSTATUS
8080     LDA Z2
8090     AND #$E7
8100     STA Z2
8110     JSR L50
8120     JSR J94
8130     LDA Z36
8140     EOR #$FF
8150     STA BUFF+1
8160     LDA Z2
8170     LDX NUMSECT_TRK
8180     CPX #$1A
8190     BNE L300
8200     ORA #80
8210 L300
8220     STA BUFF
8230     LDA #$E0
8240     STA BUFF+2
8250     LDA #$00
8260     STA W32
8270     JSR ACK
8280     LDA #$04
8290     STA TLFLG
8300     JSR CMPLT
8310     JSR J146
8320     LDA Z2
8330     AND #$A0
8340     STA Z2
8350     JMP L8
8360 HGHSPDINX
8370     JSR ACK
8380     LDA #$01
8390     STA TLFLG
8400     JSR CMPLT
8410     LDA #$0A
8420     STA BUFF
8430     JSR J146
8440     JMP L8
8450 GET_BLOCK
8460     JSR ACK
8470     LDA #$0C
8480     STA TLFLG
8490     JSR RECVE
8500     JSR ACK
8510     JSR J147
8520     JSR J148
8530     JSR CMPLT
8540     JMP L8
8550 J147 LDA BUFF
8560     STA Z4
8570     LDA W32
8580     STA MSECTPTRK
8590     LDA W36
8600     STA Z37
8610     LDA W37
8620     STA Z6
8630     RTS 
8640 J148 LDA Z37
8650     EOR #$04
8660     ASL A
8670     ASL A
8680     ASL A
8690     STA Z38
8700     LDA PORTA
8710     AND #$DF
8720     ORA Z38
8730     STA PORTA
8740     LDA Z6
8750     STA Z28
8760     LSR A
8770     LSR A
8780     EOR #$20
8790     LDX MSECTPTRK
8800     STX NUMSECT_TRK
8810     AND #$7F
8820     CPX #$1A
8830     BNE L149
8840     ORA #$80
8850 L149 STA Z2
8860     RTS 
8870 PUT_BLOCK
8880     JSR ACK
8890     LDA #$0C
8900     STA TLFLG
8910     LDX #$0B
8920 L150 LDA W38,X
8930     STA BUFF,X
8940     DEX 
8950     BPL L150
8960     LDA Z6
8970     STA W37
8980     BNE L151
8990     INC W39
9000 L151 LDA Z37
9010     STA W36
9020     LDA MSECTPTRK
9030     STA W32
9040     JSR CMPLT
9050     JSR J146
9060     JMP L8
9070 FORMATSPL
9080     JSR FDC_READY
9090     JSR J119
9100     JSR ACK
9110     JSR J4
9120     LDA #$80
9130     STA TLFLG
9140     JSR RECVE
9150     BEQ L152
9160     JSR NACK
9170     JMP L8
9180 L152 JSR ACK
9190     JSR J147
9200     JSR J153
9210     LDX MSECTPTRK
9220 L154 LDA W40,X
9230     STA Z39,X
9240     DEX 
9250     BNE L154
9260     JSR J5
9270     JSR J155
9280     JSR J117
9290     JMP L8
9300 FORMATENH
9310     LDA #$1A
9320     STA MSECTPTRK
9330     LDA #$04
9340     STA Z37
9350     LDA #$80
9360     STA Z6
9370 FORMAT
9380     JSR FDC_READY
9390     JSR J119
9400     JSR ACK
9410     JSR J4
9420     JSR J5
9430     JSR J153
9440     JSR J155
9450     JSR J117
9460     LDA #$FF
9470     STA BUFF
9480     STA BUFF+1
9490     JSR J118
9500     JMP L8
9510 J155 JSR J6
9520     JSR J7
9530     JSR J148
9540     LDA #$00
9550     STA TRACKSDW
9560 L162 LDA #$02
9570     STA Z14
9580     JSR J43
9590 L160 JSR J10
9600     JSR J156
9610     BCS L157
9620     JSR J158
9630     BCC L159
9640 L157 DEC Z14
9650     BNE L160
9660     LDA #$45
9670     BNE L161
9680 L159 INC TRACKSDW
9690     LDA TRACKSDW
9700     CMP Z4
9710     BNE L162
9720     LDA #$43
9730 L161 RTS 
9740 J153 LDA MSECTPTRK
9750     CMP #$12
9760     BNE L163
9770     LDA Z6
9780     BNE L164
9790     LDX #DBL-SING
9800     .BYTE $2C   ;BIT
9810 L164 LDX #SING-SING
9820     .BYTE $2C   ;BIT
9830 L163 LDX #ENH-SING
9840     LDY #$00
9850 L165 LDA SING,X
9860     STA Z41,Y
9870     INX 
9880     INY 
9890     CPY #$2B
9900     BNE L165
9910     RTS 
9920 J156 LDX #$00
9930     LDA #$05
9940     STA T1024
9950     LDY #$F0
9960     STY COMMAND
9970     LDA Z42
9980 L166 BIT PORTA
9990     BPL L166
010000   STA DATA
010010 L167 BIT PORTA
010020   BPL L167
010030   STA DATA
010040   LDY #$FE
010050   STY T1024
010060   LDY Z43
010070   JSR J168
010080   LDY Z44
010090   JSR J168
010100 L170 LDA Z41
010110   LDY Z20
010120   JSR J168
010130   LDA Z45
010140   LDY Z46
010150   JSR J168
010160   LDA #$FE
010170   JSR J169
010180   LDA TRACKSDW
010190   JSR J169
010200   LDA #$00
010210   JSR J169
010220   LDA Z47,X
010230   JSR J169
010240   LDA Z39
010250   JSR J169
010260   LDA #$F7
010270   JSR J169
010280   LDA Z48
010290   LDY Z49
010300   JSR J168
010310   LDA Z50
010320   LDY Z51
010330   JSR J168
010340   LDA Z52
010350   LDY Z53
010360   JSR J168
010370   LDA #$FB
010380   JSR J169
010390   LDA #$FF
010400   LDY Z6
010410   JSR J168
010420   INX 
010430   LDA #$F7
010440   JSR J169
010450   LDA Z42
010460   LDY Z54
010470   JSR J168
010480   CPX MSECTPTRK
010490   BNE L170
010500   JSR J10
010510   CLC 
010520   RTS 
010530 L172 BVC L171
010540 J169 BIT PORTA
010550   BPL L172
010560   STA DATA
010570   RTS 
010580 L173 BVC L171
010590 J168 BIT PORTA
010600   BPL L173
010610   STA DATA
010620   DEY 
010630   BNE J168
010640   RTS 
010650 L171 PLA 
010660   PLA 
010670   SEC 
010680   RTS 
010690 J158 LDY #$00
010700 L176 LDA TRACKSDW
010710   STA TRACK
010720   LDA Z47,Y
010730   STA SECTOR
010740   JSR J174
010750   BNE L175
010760   INY 
010770   CPY MSECTPTRK
010780   BNE L176
010790   CLC 
010800   RTS 
010810 L175 SEC 
010820   RTS 
010830 J174 LDA #$88
010840   STA COMMAND
010850   LDA #$F4
010860   STA T1024
010870   LDX #$00
010880 L178 LDA RTIMER
010890 L179 BIT PORTA
010900   BVC L177
010910   BPL L178
010920   LDA DATA
010930   INX 
010940   CPX Z6
010950   BNE L179
010960   JMP L106
010970 L177 LDA #$D0
010980   STA COMMAND
010990   LDA #$FF
011000   RTS 
011020 SING .BYTE 0,4,0,2,$FF,$0B
011030   .BYTE 0,4,0,2,$FF,8,$FF
011040   .BYTE $80,$FF,$80,0
011050   .BYTE 17,15,13,11,9,7,5,3,1
011060   .BYTE 18,16,14,12,10,8,6,4,2
011070 DBL .BYTE 0   ;23
011080   .BYTE $0A,$F5,3,$4E,$16
011090   .BYTE 0,$0C,$F5,3,$4E
011100   .BYTE $16,$4E,$00,$4E,$00
011110   .BYTE 1,18,17,16,15,14,13
011120   .BYTE 12,11,10,9,8,7,6
011130   .BYTE 5,4,3,2,1
011140 ENH .BYTE $00,$0C
011150   .BYTE $F5,$03,$4E,$16
011160   .BYTE 0,$0C,$F5,$03,$4E
011170   .BYTE $31,$4E,0,$4E,0,0
011180   .BYTE 1,3,5,7,9,11,13,15,17
011190   .BYTE 19,21,23,25
011200   .BYTE 2,4,6,8,10,12,14,16,18
011210   .BYTE 20,22,24,26
011220   .BYTE $BB,$BC,$B6,$DF,$CB
011230   .BYTE $C7,$C6,$CE,$D6,$B3
011240   .BYTE $D7
011250 W38 .BYTE $28,$01,$00,$12
011260   .BYTE $00,$00,$00,$80,$FF
011270   .BYTE $00,$00,$00
011280 TSTRAM LDX #$00
011290   TXA 
011300 L186 STA Z31,X
011310   EOR #$DE
011320   STA Z29,X
011330   EOR #$FF
011340   STA W53,X
011350   CMP W54,X
011360   BNE L185
011370   EOR #$FF
011380   CMP BUFF,X
011390   BNE L185
011400   EOR #$DE
011410   CMP W47,X
011420   BNE L185
011430   CMP W55,X
011440   BNE L185
011450   INX 
011460 L188 BPL L186
011470   JMP J187
011480 L185 JMP TSTRAM
011490   ;           ************
011491   .BYTE 0,0,0,0,0,0
011492   .BYTE 0,0,0,0,0,0
011493   .BYTE 0,0,0,0,0,0
011494   .BYTE 0,0,0,0,0,0
011500   *=  $FFFA
011510   .WORD START
011520   .WORD START
011530   .WORD START
