home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
enterprs
/
c128
/
util
/
move80f.sda
/
MOVE80F.S
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1992-08-08
|
3KB
|
86 lines
100 OPEN2,8,1,"0:MOVE80F.ML"
110 SYS700
120 .OPT P,O2
130 *=$9E34
135 ;*** PROTECT ML FROM BASIC VARS ***
140 PRTCT LDA #<PRTCT-1:LDX #>PRTCT-1
150 : STA 55:STX 56:RTS
155 ;*** ACTUAL CODE FOR TRANSFERS ***
156 ;*** GET PARAMETERS FROM SYS ***
157 ;*** SYNTAX = ***
158 ;*** SYS40509,MODE,VDC,AD,LE ***
160 ISTRT JSR FAST0:JSR INTXP:CMP #$00
165 : BNE ERRJP:STX RWFLG:CPX #$00
170 : BNE IST01:JSR INTXP:STX CCC
180 : STA CCC+1:JSR INTXP:STX AAA
190 : STA AAA+1:JMP IST02
195 ;*** SYNTAX ERROR IF RWFLG>255 ***
210 ERRJP JMP $AF08
220 IST01 JSR INTXP:STX AAA:STA AAA+1
230 : JSR INTXP:STX CCC:STA CCC+1
240 IST02 JSR INTXP:STX BBB:STA BBB+1
250 : LDA BBB:LDX BBB+1:CLC:ADC AAA
260 : TAY:TXA:ADC AAA+1:TAX:TYA
270 : STA BBB:STX BBB+1
280 START LDA AAA:LDX AAA+1:JMP GETDA
290 CHK01 LDA DDD:LDX DDD+1:STA $22
300 : STX $23:LDA BBB:LDX BBB+1
310 : CPX $23:BEQ CHK02:BCS ADD01
320 : BCC JEXIT
330 CHK02 CMP $22:BEQ JEXIT:BCS ADD01
340 JEXIT LDA RWFLG:CMP #3:BNE REXIT
350 : JMP FIX01
360 REXIT JMP FIX02
370 ADD01 LDA DDD:LDX DDD+1:JSR ADD02
380 GETDA STA DDD:STX DDD+1:LDA RWFLG
390 : CMP #1:BEQ CONT1:CMP #3
400 : BNE PUTDA
410 CONT1 JSR GETD0:STA DATA1:LDA CCC
420 : LDX CCC+1:STA $22:STX $23
430 : LDA DATA1:LDY #0:STA ($22),Y
440 : JMP DAXIT
450 PUTDA LDA DDD:LDX DDD+1:STA $22
460 : STX $23:LDX #0:LDY #0
470 : LDA ($22),Y:STA DATA1:LDA CCC
480 : LDX CCC+1:JSR PUTD0
490 DAXIT JSR ADDCC:JMP CHK01
500 ADD02 CLC:ADC #1:TAY:TXA
510 : ADC #0:TAX:TYA:RTS
520 POKE1 JSR PEEK2:JSR SETLO:LDA DATA1
530 : STA $D601:RTS
540 WAIT1 LDA $D600:AND #$80:BEQ WAIT1
550 : RTS
560 PEEK1 JSR PEEK2:JSR WAIT1:JSR SETLO
570 : LDA $D601:RTS
580 SETLO LDA DATA2:STA $D601:LDA #$1F
590 : JSR STD60:RTS
600 PEEK2 LDA #$12:JSR STD60:LDA DATA3
610 : STA $D601:LDA #$13:STA $D600
620 : RTS
630 GETD0 LDA DDD:LDX DDD+1:STA DATA2
640 : STX DATA3:JSR PEEK1:RTS
650 PUTD0 STA DATA2:STX DATA3:JSR POKE1
660 : RTS
670 INTXP JSR $AEFD:JSR $AD9E:JSR $BC9B
680 LDX 101:LDA 100:RTS
690 STD60 STA $D600:JSR WAIT1:RTS
700 ADDCC LDA CCC:LDX CCC+1:JSR ADD02
710 : STA CCC:STX CCC+1:RTS
720 FIX01 LDA #1:STA 2050:JSR 42291
730 : LDA 34:LDX 35:STA 45:STX 46
740 FIX02 JSR SLOW0:RTS
745 ;*** BLANK SCREEN AND GOTO FAST ***
750 FAST0 LDA $D011:AND #$EF:LDX #$01
760 JMP MODE0
765 ;*** FIX SCREEN AND GOTO SLOW ***
770 SLOW0 LDA $D011:ORA #$10:LDX #$00
780 MODE0 STA $D011:STX $D030:RTS
790 AAA .BYTE 0,0
800 BBB .BYTE 0,0
810 CCC .BYTE 0,0
820 DDD .BYTE 0,0
830 DATA1 .BYTE 0
840 DATA2 .BYTE 0
850 DATA3 .BYTE 0
860 RWFLG .BYTE 0