0100 ;IDE38.ASM 06/03/96›0110 ;›0120 *=$C95B POINT SIO TO IDE›0130 JSR $D600›0140 ;›0150 *=$FC98 COLDSTART›0160 JMP $E477›0170 ;›0180 *=$FC34 SELECT IDE SEG ^F1›0190 JSR SELNXTHD›0200 JMP $FC6D›0210 ;›0220 *=$FCB5 TOGGLE D2 ^F2›0230 JSR PROCD2›0240 .BYTE $EA,$EA,$EA,$EA›0250 .BYTE $EA,$EA,$EA,$EA›0260 LDA #$00›0270 ;›0280 *=$C31D KILL ROM CHKSUM›0290 NOP›0300 NOP›0310 ;›0320 *=$C400 INIT IDE›0330 JSR INITCODE›0340 ;›0350 *=$D600 IDE CODE›0360 LDA $D01F CHK FOR SELECT KEY›0370 AND #$02›0380 BEQ JMPTOSIO IF DOWN, DO SIO›0390 LDA $0300›0400 CMP #$31›0410 BNE JMPTOSIO›0420 LDX #$3C›0430 ;›0440 SRCH›0450 LDA HDTABL+3,X›0460 AND #$0F›0470 CMP $0301›0480 BEQ IDECODE›0490 DEX›0500 DEX›0510 DEX›0520 DEX›0530 BPL SRCH›0540 ;›0550 JMPTOSIO›0560 JMP $E971›0570 ;›0580 IDECODE›0590 LPBZY LDA $D157›0600 AND #$80›0610 BNE LPBZY›0620 ;›0630 LDA $0302›0640 CMP #$53›0650 BEQ STATUSCMD›0660 CMP #$21›0670 BEQ FORMATCMD›0680 CMP #$22›0690 BEQ FORMATCMD›0700 CMP #$52›0710 BEQ READCMD›0720 CMP #$57›0730 BEQ WRTCMD›0740 CMP #$50›0750 BEQ WRTCMD›0760 CMP #$4E›0770 BEQ STATUSCMD›0780 ;›0790 CMDREJ›0800 LDA #$01›0810 STA $02EA›0820 LDA #$8B›0830 ;›0840 RETURN›0850 STA $0303›0860 TAY›0870 SEC›0880 RTS›0890 ;›0900 STATUSCMD›0910 LDA HDTABL+3,X›0920 AND #$F0›0930 STA $02EA›0940 STA $0308›0950 STA $0309›0960 ;›0970 CLRSTATUS›0980 LDA #$01›0990 BNE RETURN›1000 ;›1010 FORMATCMD›1020 LDA $0304›1030 STA $0032›1040 LDA $0305›1050 STA $0033›1060 LDA #$FF›1070 LDY #$00›1080 STA ($32),Y›1090 INY›1100 STA ($32),Y›1110 BNE STATUSCMD›1120 ;›1130 READCMD›1140 JSR SETREGS›1150 BCS CMDREJ›1160 LDA #$20›1170 STA $D157›1180 LDY #$00›1190 LP1 LDA $D157›1200 AND #$80›1210 BNE LP1›1220 RDLP LDA $D157›1230 AND #$08›1240 BEQ RDLP›1250 LDA $D150›1260 STA ($32),Y›1270 INY›1280 CPY $308›1290 BNE RDLP›1300 ENDRD LDA $D150›1310 LDA $D157›1320 AND #$08›1330 BNE ENDRD›1340 BEQ CLRSTATUS›1350 ;›1360 WRTCMD›1370 JSR SETREGS›1380 BCS CMDREJ›1390 LDA #$30›1400 STA $D157›1410 LDY #$00›1420 LP2 LDA $D157›1430 AND #$80›1440 BNE LP2›1450 WRTLP LDA $D157›1460 AND #$08›1470 BEQ WRTLP›1480 LDA ($32),Y›1490 STA $D150›1500 INY›1510 BNE WRTLP›1520 BEQ CLRSTATUS›1530 ;›1540 SETREGS›1550 LDA $0304›1560 STA $0032›1570 LDA $0305›1580 STA $0033›1590 LDA $030A›1600 AND #$0F›1610 CLC›1620 ADC #$01›1630 STA $D153›1640 LDA $030A›1650 AND #$F0›1660 LSR A›1670 LSR A›1680 LSR A›1690 LSR A›1700 ORA #$A0›1710 STA $D156›1720 LDA $030B›1730 CMP HDTABL+2,X›1740 BCS SECTERR›1750 ADC HDTABL+1,X›1760 STA $D154›1770 LDA HDTABL,X›1780 ADC #$00›1790 STA $D155›1800 LDA #$01›1810 STA $D152›1820 CLC›1830 SECTERR RTS›1840 ;›1850 INITCODE›1860 WAITHD LDA #$50›1870 CMP $D157›1880 BNE WAITHD›1890 ;›1900 LDA #$10›1910 STA $D152›1920 LDA #$AF›1930 STA $D156›1940 LDA #$91›1950 STA $D157›1960 LDX #$40›1970 WLP DEY›1980 BNE WLP›1990 DEX›2000 BNE WLP›2010 JSR FINDX›2020 JSR SETL1L2›2030 JMP $C66E ;OS @ $C400›2040 ;›2050 SELNXTHD›2060 JSR FINDX›2070 JSR INCRX›2080 JSR SETL1L2›2090 TAY›2100 RTS›2110 ;›2120 FINDX›2130 LDX #$0C›2140 NXTPARM LDA $D7BC+3,X›2150 AND #$0F›2160 BNE FOUNDX›2170 DEX›2180 DEX›2190 DEX›2200 DEX›2210 BNE NXTPARM›2220 FOUNDX RTS›2230 ;›2240 INCRX›2250 LDA #$A0›2260 STA $D180›2270 LDA $D7BC+3,X›2280 AND #$F0›2290 STA $D7BC+3,X›2300 TXA›2310 CLC›2320 ADC #$04›2330 AND #$0C›2340 TAX›2350 LDA $D7BC+3,X›2360 ORA #$01›2370 STA $D7BC+3,X›2380 LDA #$80›2390 STA $D180›2400 RTS›2410 ;›2420 SETL1L2›2430 LDA $D301›2440 AND #$F3›2450 STA $D301›2460 TXA›2470 LSR A›2480 LSR A›2490 TAX›2500 LDA DECODE,X›2510 ORA $D301›2520 STA $D301›2530 TAY›2540 RTS›2550 ;›2560 DECODE›2570 .BYTE $0C,$04,$08,$00›2580 ;›2590 PROCD2›2600 LDA #$A0›2610 STA $D180›2620 LDA $D7D3›2630 EOR #$02›2640 STA $D7D3›2650 LDA #$80›2660 STA $D180›2670 LDY $D301›2680 RTS›2690 ;›2700 *=$D7BC›2710 .BYTE $00,$00,$00,$00›2720 HDTABL›2730 .BYTE $00,$00,$10,$61 ;4096DD›2740 .BYTE $00,$10,$06,$60 ;1536DD›2750 .BYTE $00,$16,$06,$00 ;1536SD›2760 .BYTE $00,$1C,$06,$00 ;1536SD›2770 .BYTE $00,$20,$80,$62 ;32K DD›2780 .BYTE $00,$A0,$10,$63 ;4096DD›2790 .BYTE $00,$B0,$06,$64 ;1536DD›2800 .BYTE $00,$B6,$06,$65 ;1536DD›2810 .BYTE $00,$BC,$10,$66 ;4096DD›2820 .BYTE $00,$CC,$04,$67 ;1024DD›2830 .BYTE $00,$D0,$FF,$68 ;64K DD›2840 .BYTE $01,$D0,$30,$60 ;12K DD›2850 .BYTE $02,$00,$FF,$60 ;64K DD›2860 .BYTE $03,$00,$FF,$60 ;64K DD›2870 .BYTE $04,$00,$FF,$00 ;64K SD›2880 .BYTE $05,$00,$FF,$00 ;64K SD›2890 END›