home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / move80f.sda / MOVE80F.S (.txt) < prev    next >
Commodore BASIC  |  1992-08-08  |  3KB  |  86 lines

  1. 100 OPEN2,8,1,"0:MOVE80F.ML"
  2. 110 SYS700
  3. 120 .OPT P,O2
  4. 130 *=$9E34
  5. 135 ;*** PROTECT ML FROM BASIC VARS ***
  6. 140 PRTCT LDA #<PRTCT-1:LDX #>PRTCT-1
  7. 150 :     STA 55:STX 56:RTS
  8. 155 ;*** ACTUAL CODE FOR TRANSFERS  ***
  9. 156 ;*** GET PARAMETERS FROM SYS    ***
  10. 157 ;***          SYNTAX =          ***
  11. 158 ;*** SYS40509,MODE,VDC,AD,LE    ***
  12. 160 ISTRT JSR FAST0:JSR INTXP:CMP #$00
  13. 165 :     BNE ERRJP:STX RWFLG:CPX #$00
  14. 170 :     BNE IST01:JSR INTXP:STX CCC
  15. 180 :     STA CCC+1:JSR INTXP:STX AAA
  16. 190 :     STA AAA+1:JMP IST02
  17. 195 ;*** SYNTAX ERROR IF RWFLG>255  ***
  18. 210 ERRJP JMP $AF08
  19. 220 IST01 JSR INTXP:STX AAA:STA AAA+1
  20. 230 :     JSR INTXP:STX CCC:STA CCC+1
  21. 240 IST02 JSR INTXP:STX BBB:STA BBB+1
  22. 250 :     LDA BBB:LDX BBB+1:CLC:ADC AAA
  23. 260 :     TAY:TXA:ADC AAA+1:TAX:TYA
  24. 270 :     STA BBB:STX BBB+1
  25. 280 START LDA AAA:LDX AAA+1:JMP GETDA
  26. 290 CHK01 LDA DDD:LDX DDD+1:STA $22
  27. 300 :     STX $23:LDA BBB:LDX BBB+1
  28. 310 :     CPX $23:BEQ CHK02:BCS ADD01
  29. 320 :     BCC JEXIT
  30. 330 CHK02 CMP $22:BEQ JEXIT:BCS ADD01
  31. 340 JEXIT LDA RWFLG:CMP #3:BNE REXIT
  32. 350 :     JMP FIX01
  33. 360 REXIT JMP FIX02
  34. 370 ADD01 LDA DDD:LDX DDD+1:JSR ADD02
  35. 380 GETDA STA DDD:STX DDD+1:LDA RWFLG
  36. 390 :     CMP #1:BEQ CONT1:CMP #3
  37. 400 :     BNE PUTDA
  38. 410 CONT1 JSR GETD0:STA DATA1:LDA CCC
  39. 420 :     LDX CCC+1:STA $22:STX $23
  40. 430 :     LDA DATA1:LDY #0:STA ($22),Y
  41. 440 :     JMP DAXIT
  42. 450 PUTDA LDA DDD:LDX DDD+1:STA $22
  43. 460 :     STX $23:LDX #0:LDY #0
  44. 470 :     LDA ($22),Y:STA DATA1:LDA CCC
  45. 480 :     LDX CCC+1:JSR PUTD0
  46. 490 DAXIT JSR ADDCC:JMP CHK01
  47. 500 ADD02 CLC:ADC #1:TAY:TXA
  48. 510 :     ADC #0:TAX:TYA:RTS
  49. 520 POKE1 JSR PEEK2:JSR SETLO:LDA DATA1
  50. 530 :     STA $D601:RTS
  51. 540 WAIT1 LDA $D600:AND #$80:BEQ WAIT1
  52. 550 :     RTS
  53. 560 PEEK1 JSR PEEK2:JSR WAIT1:JSR SETLO
  54. 570 :     LDA $D601:RTS
  55. 580 SETLO LDA DATA2:STA $D601:LDA #$1F
  56. 590 :     JSR STD60:RTS
  57. 600 PEEK2 LDA #$12:JSR STD60:LDA DATA3
  58. 610 :     STA $D601:LDA #$13:STA $D600
  59. 620 :     RTS
  60. 630 GETD0 LDA DDD:LDX DDD+1:STA DATA2
  61. 640 :     STX DATA3:JSR PEEK1:RTS
  62. 650 PUTD0 STA DATA2:STX DATA3:JSR POKE1
  63. 660 :     RTS
  64. 670 INTXP JSR $AEFD:JSR $AD9E:JSR $BC9B
  65. 680 LDX 101:LDA 100:RTS
  66. 690 STD60 STA $D600:JSR WAIT1:RTS
  67. 700 ADDCC LDA CCC:LDX CCC+1:JSR ADD02
  68. 710 :     STA CCC:STX CCC+1:RTS
  69. 720 FIX01 LDA #1:STA 2050:JSR 42291
  70. 730 :     LDA 34:LDX 35:STA 45:STX 46
  71. 740 FIX02 JSR SLOW0:RTS
  72. 745 ;*** BLANK SCREEN AND GOTO FAST ***
  73. 750 FAST0 LDA $D011:AND #$EF:LDX #$01
  74. 760 JMP MODE0
  75. 765 ;***  FIX SCREEN AND GOTO SLOW  ***
  76. 770 SLOW0 LDA $D011:ORA #$10:LDX #$00
  77. 780 MODE0 STA $D011:STX $D030:RTS
  78. 790 AAA .BYTE 0,0
  79. 800 BBB .BYTE 0,0
  80. 810 CCC .BYTE 0,0
  81. 820 DDD .BYTE 0,0
  82. 830 DATA1 .BYTE 0
  83. 840 DATA2 .BYTE 0
  84. 850 DATA3 .BYTE 0
  85. 860 RWFLG .BYTE 0
  86.