home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ABBUC Magazin 60B
/
ABBUC_Magazin_60_2000_ABBUC_Side_B.atr
/
hpnew.lst
< prev
next >
Wrap
File List
|
2023-02-26
|
7KB
|
95 lines
0100 ;THIS PROGRAM COPIES ROM TO RAM.¢0110 ;SIO IS PATCHED TO HANDLE¢0120
;IDE-DEVICES AT PAGE $D1¢0130 ;(OR $D5, CHANGE LINE 280)¢0140 ;¢0150
;CASINIT AND CASBOOT ARE USED¢0160 ;FOR RE-INIT RAM-OS AFTER RESET.¢0170
;¢0180 ;USED MEMORY:¢0190 ;$0570-$057F RESETCODE¢0200 ;$CC00-$CDFF
PATCHCODE¢0210 ;$CE00-$CEFF RESERVED¢0220 ;$CF00-$CFFF PARTITION-INFO¢0230
;¢0240 ;LAST MODIFIED 23/01/00¢0250 PART = $CF00¢0260 PH = PART/256¢0270
PL = 0-1*PH*256+PART¢0280 PORT = $D100 ;INTERNAL¢0290 *= $4000
;FREE BOOTMEM¢0300 ;COPY ROM TO RAM¢0310 SEI ;DISABLE IRQ¢0320
LDA #$00¢0330 STA $CB¢0340 STA $D40E ;DISABLE NMI¢0350 LDA
$D301¢0360 ORA #$01¢0370 STA $D301 ;START WITH ROM¢0380 LDA
#$C0¢0390 STA $CC¢0400 LDY #$00 ;C0-D0,D8-00¢0410 RLOP LDA
($CB),Y¢0420 STA $CD¢0430 LDA $D301¢0440 AND #$FE¢0450 STA
$D301 ;OS OFF¢0460 LDA $CD¢0470 STA ($CB),Y¢0480 STA
$D01A¢0490 LDA $D301¢0500 ORA #$01¢0510 STA $D301 ;OS ON¢0520
INC $CB¢0530 BNE RLOP¢0540 INC $CC¢0550 LDA $CC¢0560 CMP
#$CC¢0570 BEQ SPEC¢0580 CMP #$00¢0590 BNE RLOP¢0600 BEQ
REDY¢0610 SPEC LDA #$D8¢0620 STA $CC¢0630 JMP RLOP¢0640 REDY LDA
#$40 ;READY¢0650 STA $D40E¢0660 CLI ¢0670 LDA $D301¢0680
AND #$FE¢0690 STA $D301 ;OS OFF¢0700 LDA $09¢0710 ORA
#$02¢0720 STA $09 ;SET CASBOOT¢0730 ;COPY PATCH TO $CC00¢0740
LDX #$00¢0750 COPHP LDA $4100,X¢0760 STA $CC00,X¢0770 LDA
$4200,X¢0780 STA $CD00,X¢0790 LDA $4300,X¢0800 STA $CE00,X¢0810
INX¢0820 BNE COPHP¢0830 ;SET SIO TO PATCH¢0840 LDA $E45A¢0850
STA NOHD+$8B01¢0860 LDA $E45B¢0870 STA NOHD+$8B02¢0880 LDA
#$00¢0890 STA $E45A¢0900 LDA #$CC¢0910 STA $E45B¢0920 JSR
INIT+$8B00 ;GET INFO¢0930 ;NOW RESET THE SYSTEM¢0940 JMP $E474¢0950
;****************************¢0960 ;* (C) SIJMEN SCHOUTEN *¢0970 ;*
MAXIMUM SIZE IS 768 BYTE *¢0980 ;* ALL JSR/JMP/LABELS +8B00 *¢0990 ;* 4100
--> CC00 IS +8B00 ! *¢1000 ;* VERSION WITHOUT BOOT-EMU *¢1010
;****************************¢1020 *= $4100 ;SIOPATCH¢1030 ;¢1040
LDA $0300 ;CHK D:¢1050 CMP #$31¢1060 BNE NOHD¢1070 ;¢1080 LDA
PORT+7 ;CHK ACTIVITY¢1090 BMI NOHD¢1100 ;¢1110 LDX PART+4 ;CHK
PARTITION¢1120 BEQ NOHD¢1130 CP TXA ¢1140 ASL A¢1150 ASL A¢1160
ASL A¢1170 TAY ¢1180 LDA PART,Y¢1190 CMP $0301 ;WITH
DRIVE-NR¢1200 BEQ HD¢1210 DEX ¢1220 BNE CP¢1230 ;¢1240 NOHD JMP
$ABCD ;PATCHED LATER¢1250 ;¢1260 HD STY PART+$FF ;SAVE PART¢1270 LDA
#$80¢1280 STA $37 ;128 X RETRY¢1290 LDA $0304¢1300 STA $32
;SET BUFFER¢1310 LDA $0305¢1320 STA $33¢1330 LDA $0302¢1340
CMP #$52¢1350 BEQ CREA¢1360 CMP #$50¢1370 BEQ CWRI¢1380
CMP #$57¢1390 BEQ CWRI¢1400 CMP #$53¢1410 BEQ STAT¢1420 CMP
#$21¢1430 BEQ FORM¢1440 IOER LDY #139 ;DEVICE NAK¢1450 STY
$0303¢1460 RTS ¢1470 ;¢1480 FORM LDA #$FF ;PUT FF,FF¢1490 LDY
#$00¢1500 STA ($32),Y¢1510 INY ¢1520 STA ($32),Y¢1530 IOOK LDY
#$01¢1540 STY $0303¢1550 RTS ¢1560 ;¢1570 STAT LDY PART+$FF¢1580
LDA PART+5,Y ;DENSITY?¢1590 BEQ STA2 ;0=SINGLE¢1600 LDA #$20
;DOUBLE¢1610 STA2 STA $02EA¢1620 LDA #$00¢1630 STA $02EB
;CONTROLLER OK¢1640 STA $02ED ;NOT USED¢1650 LDA #$FF¢1660 STA
$02EC ;TIME-OUT¢1670 JMP $8B00+IOOK¢1680 ;¢1690 CREA JSR
$8B00+SETU¢1700 BNE CRRR¢1710 RINI LDA #$21 ;READ¢1720 STA
PORT+7¢1730 JSR $8B00+BUSY¢1740 BMI CRRR¢1750 LDA PORT+7¢1760
AND #$01¢1770 BNE CRRR¢1780 LDY #$00¢1790 CRE1 LDA PORT¢1800
STA ($32),Y¢1810 INY ¢1820 CPY $0308¢1830 BNE CRE1¢1840 JSR
$8B00+VERY¢1850 BNE CRRR¢1860 JMP $8B00+IOOK¢1870 CRRR DEC $37¢1880
BNE CREA¢1890 JMP $8B00+IOER¢1900 ;¢1910 CWRI JSR $8B00+SETU¢1920
BNE CWRR¢1930 LDA #$31¢1940 STA PORT+7¢1950 STA $D40A¢1960
CWR1 LDA PORT+7¢1970 AND #$08¢1980 BEQ CWR1¢1990 LDY #$00¢2000
CWR2 LDA ($32),Y¢2010 STA PORT¢2020 INY ¢2030 BNE CWR2
;ALWAYS 256¢2040 JSR $8B00+BUSY¢2050 BMI CWRR¢2060 LDA
PORT+7¢2070 AND #$20¢2080 BNE CWRR¢2090 JSR $8B00+VERY¢2100
BNE CWRR¢2110 JMP $8B00+IOOK¢2120 CWRR DEC $37¢2130 BNE CWRI¢2140
JMP $8B00+IOER ;-ERROR¢2150 ;¢2160 VERY LDA #$01 ;ONE SECTOR¢2170
STA PORT+2¢2180 LDA #$21 ;READ¢2190 STA PORT+7¢2200 JSR
$8B00+BUSY¢2210 BMI VERE¢2220 LDY #$00¢2230 VER1 LDA PORT¢2240
CMP ($32),Y¢2250 BNE VERE¢2260 INY ¢2270 CPY $0308¢2280 BNE
VER1¢2290 LDA #$00¢2300 RTS ¢2310 VERE LDA #$FF¢2320 RTS ¢2330
;¢2340 SETU LDA #$00¢2350 STA PART+$F6 ;HD¢2360 LDY PART+$FF¢2370
LDA PART+1,Y¢2380 STA PART+$F4 ;CL¢2390 LDA PART+2,Y¢2400 STA
PART+$F5 ;CH¢2410 LDA $030A¢2420 STA $30¢2430 LDA $030B¢2440
STA $31¢2450 DEC $30¢2460 BNE CAL1¢2470 LDA $31¢2480 BEQ
SET1¢2490 CAL1 SEC ¢2500 LDA $30¢2510 SBC PART+3¢2520 BCC
CAL2¢2530 STA $30¢2540 JMP $8B00+CAL3¢2550 CAL2 LDX $31¢2560 BEQ
SET1¢2570 STA $30¢2580 DEC $31¢2590 CAL3 INC PART+$F6¢2600 LDA
PART+2¢2610 CMP PART+$F6¢2620 BCS CAL1¢2630 LDA #$00¢2640
STA PART+$F6¢2650 INC PART+$F4¢2660 BNE CAL1¢2670 INC
PART+$F5¢2680 BNE CAL1¢2690 SERR LDA #$FF¢2700 RTS
;OVERFLOW!¢2710 ;¢2720 SET1 INC $30¢2730 LDA $30¢2740 STA
PART+$F3¢2750 LDA PART+$F5 ;CHK SIZE CH¢2760 CMP PART+4,Y¢2770
BEQ SET3 ;CHK CL TOO¢2780 BCC SET2 ;OK IF <¢2790 JMP
$8B00+SERR ;¢2800 SET3 LDA PART+$F4¢2810 CMP PART+3,Y¢2820 BCS SERR
;ERROR IF =,>¢2830 ;¢2840 SET2 LDA #$01¢2850 STA PORT+2 ;ONE
SECTOR¢2860 LDA PART+$F3¢2870 STA PORT+3¢2880 LDA PART+$F4¢2890
STA PORT+4¢2900 LDA PART+$F5¢2910 STA PORT+5¢2920 LDA
PART+$F6¢2930 STA PORT+6¢2940 LDA #$00¢2950 RTS ¢2960 ;¢2970
BUSY LDX #$00¢2980 BUS1 STA $D40A¢2990 STA $D40A¢3000 STA $D40A¢3010
STA $D40A¢3020 STA $D40A¢3030 STA $D40A ;0.4 mS¢3040 LDA
PORT+7¢3050 BPL BUSE¢3060 INX ¢3070 BNE BUS1 ;MAX=100mS¢3080
LDA #$80 ;BMI=ERROR¢3090 BUSE RTS ¢3100 ;¢3110 INIT JSR $8B00+BUSY
;GET INFO¢3120 BMI NOINI¢3130 LDA #$00¢3140 STA PORT+4¢3150
STA PORT+5¢3160 STA PORT+6¢3170 STA $0308 ;256 BYTES¢3180 LDA
#$01¢3190 STA PORT+2¢3200 STA PORT+3¢3210 LDA #PL¢3220 STA
$32¢3230 LDA #PH¢3240 STA $33¢3250 JSR $8B00+RINI¢3260 NOINI
RTS¢3270 ;¢3280 *= $0570¢3290 RESET LDA $D301¢3300 AND #$FE¢3310
STA $D301¢3320 JSR INIT+$8B00¢3330 RTS¢3340 ;¢3350 *=
$02¢3360 .WORD RESET¢3370 ;¢3380 *= $02E0¢3390 .WORD $4000¢