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 0$02 0380 BEQ JMPTOSIO IF DOWN, DO SIO 0390 LDA $0300 0400 CMP #$31 0410 BNE JMPTOSIO 0420 LDX 4f$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 STATUSCIAD 0660 CMP 0 $21. 0670 BEQ FORMATCMD 0680 CMP .0$22 0690 BEQ FORMATCMO 0700 CMP $52 0710 BEQ READCMD 0720 CMP #$57 0730 BEQ WRTCMO 0740 CMP 0$50 0750 BEQ WRTCMD 0760 CMP #$4E 0770 BEQ STATUSCMD 0780 ; 0790 CMDREJ 0800 LDA #$01 0810 STA $02EA 0820 LDA 0$8B 0830 ; 0840 RETURN 0850 STA $0303 0860 TAY 0870 SEC 0880 RTS 0890 ; 0900 STATUSCMD 0910 LDA HDTABL+3,X 0920 AND #$FO 0930 STA $02EA 0940 STA $0308 095O 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 0$00 1080 STA ($32),V 1090 INY 1100 STA ($32),Y 1110 BNE STATUSCMD 1120 1130 READCMD 1140 JSR SETREGS 1150 BCS CMDREJ 1160 LDA hf$20 1170 STA $D157 1180 LDY #$00 1190 LP1 LDA $0157 1200 AND 0$80 1210 BNE LP1 1220 RDLP LDA $D157 1230 AND 0$08 1240 BEQ RDLP 1250 LDA $D150 1260 STA ($32),Y 127O INY 1280 CPY $308 1290 BNE RQLP 1300 ENDRD LDA $D150 1310 LDA $D157 1320 AND #$08 1330 BNE ENDRD 1340 BEQ CLRSTATUS 1350 1360 WRTCMD 137O JSR SETREGS 1380 BCS CMDREJ 1390 LDA 4$30 1400 STA $D157 1410 LDY 0$00 1420 LP2 LDA $D157 1430 AND e$so 1440 BNE LP2 1450 WBTLP LDA $D157 1460 AND O$08 1470 BEQ WRTLP 1480 LDA ($32),V 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 0$01 1630 STA $D153 1640 LDA $030A 1650 AND lft$ F0 1660 LSR A 1670 LSR A 1680 LSB A 1690 LSR A 1700 ORA #$AO 1710 STA $D156 1720 LDA $030B 1730 CMP HDTABL+2,X 1740 BCS SECTERR 1750 ADC HDTABL+1,X 1760 STA $0154 1770 LDA HDTABL,X 1780 ADC 0$00 1790 STA $D155 1800 LDA 0$01 1810 STA $0152 1820 CLC 1830 SECTERR RTS 1840 1850 INITCODE 1860 WAITHD LDA 4550 1870 CMP $D157 1880 BNE WAITHD 1890 1900 LDA #$10 1910 STA $D152 1920 LDA #$AF 1930 STA $D156 1940 LDA 0$91 1950 STA $D15? 1960 LDX 0$40 1970 WLP DEY 1980 BNE WLP 1990 DEX 2000 BNE WLP 2010 JSR FINDX 2020 JSR SETL1L2 2030 JMP SC66E ;OS 0 $C400 2040 2050 SELNXTHD 2060 JSR FINDX 2070 JSR INCRX 2080 JSR SETL1L2 2090 TAY 2100 RTS 2110 2120 FINDX 2130 LDX Af$0C 2140 NXTPARM LDA $D7BC+3,X 2150 AND 0$0F 2160 BNE FOUNDX 2170 DEX 2180 DEX 2190 DEX 2200 DEX 2210 BNE NXTPARM 2220 FOUNDX RTS 2230 2240 INCRX 2250 LDA 0$AO 2260 STA $D180 2270 LDA $D7BC+3,X 2280 AND 0$FO 2290 STA $D7BC+3,X 2300 TXA 2310 CLC 2320 ADC #$04 2330 AND #$0C 2340 TAX 2350 LDA $D7BC+3,X 2360 ORA 0$01 2370 STA SD7BC+3,X 2380 LDA #$80 2390 STA $0180 2400 RTS 2410 2420 SETLtL2 2430 LDA $D301 2440 AND 0$F3 2450 STA $0301 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 #$AO 2610 STA $0180 2620 LDA $07D3 2630 EOR 0$02 2640 STA $D7D3 2650 LDA 0$80 2660 STA $D180 2670 LDY $D301 2680 RTS 2690 2700 *= $07BC 2710 .BYTE $00,$00,$00,$00 2720 HDTABL 2730 .BYTE $00,$00,$10,$61 ;4096DD 2740 .BYTE $00,$10,$06,$60 ;1536DO 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,$86,$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,OFF,$60 ;64K DD 2870 .BYTE $04,$00,$FF,SOO ;64K SD 2880 .BYTE $05,$00,$FF,$00 ;64K SD 2890 END