Here's a routine which allows you to get round this problem, and play games like Tim Love's Cricket, and Kriegspiel on a Dragon 64. You can save the machine code to cassette or disk, and load it before loading the game you want to play, or add lines 20 and 30 to your own BASIC program. EXECing the start address connects/disconnects the routine from the BASIC operating system. The machine code routine is position independent.
Cassette compatible version:
Code: Select all
0 'USR32 V1.0
1 'FOR THE DRAGON 64
2 'BY STEPHEN J WOOLHAM
3 '
10 CLS:PRINT"WRITING MACHINE CODE..."
20 MC$="CE00EA1193A9270BDFA9308D000BC60F7EB7CC8EBB269FA9398C82922606813026020E9F7EBB26"
30 X=1:FOR I=20480 TO 20518:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
40 POKE144,2:POKE145,0:CLS
50 PRINT"START ADDRESS = 20480"
60 PRINT"END ADDRESS = 20518"
70 PRINT"EXEC ADDRESS = 20480"
Code: Select all
0 'USR32DOS V1.0
1 'FOR THE DRAGON 64
2 'BY STEPHEN J WOOLHAM
3 '
10 CLS:PRINT"WRITING MACHINE CODE..."
20 MC$="CE03EB1193A9270BDFA9308D000BC60F7EB7CC8EBB269FA9398C82922606813026020E9F7EBB26"
30 X=1:FOR I=20480 TO 20518:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
40 POKE144,2:POKE145,0:CLS
50 PRINT"START ADDRESS = 20480"
60 PRINT"END ADDRESS = 20518"
70 PRINT"EXEC ADDRESS = 20480"