home *** CD-ROM | disk | FTP | other *** search
/ ABBUC Magazin 60B / ABBUC_Magazin_60_2000_ABBUC_Side_B.atr / hpnew.lst < prev    next >
File List  |  2023-02-26  |  7KB  |  95 lines

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