Hardware Hacking, Programming and Game Solutions/Cheats
zephyr
Posts: 1474 Joined: Mon Jul 21, 2008 1:18 am
Post
by zephyr » Mon Feb 20, 2012 10:14 pm
Here's a handy ON ERROR GOTO line 63999 routine for The Dragon 32/64. Once the error trapping routine has been enabled, any errors in your BASIC program will result in a jump to line 63999. If line 63999 does not exist, the program will stop and all errors will be reported as normal. The machine code is position independent and can be moved anywhere by altering line 80.
Code: Select all
10 'ON ERROR GOTO 63999 V1.0
20 'FOR THE DRAGON 32/64
30 'BY STEPHEN J WOOLHAM
40 '***************************
50 'BASIC EXAMPLE PROGRAM
60 '***************************
70 MC$="308D001CBC018F2716FC018FBF018FED8D002CB6018EA78D0024867EB7018E399E688CFFFF271734048EF9FF9F2BBD83FF3504250910DE21BD85DC7E849F393939"
80 X=1:FOR I=512 TO 576:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
90 EXEC 512
Here's the same routine for the Tandy Color Computer 1 and 2.
Code: Select all
10 'ON ERROR GOTO 63999 V1.0
20 'FOR TANDY COCO 1 AND 2
30 'BY STEPHEN J WOOLHAM
40 '***************************
50 'BASIC EXAMPLE PROGRAM
60 '***************************
70 MC$="308D001CBC018F2716FC018FBF018FED8D002CB6018EA78D0024867EB7018E399E688CFFFF271734048EF9FF9F2BBDAD013504250910DE21BDAEA97EAD9E393939"
80 X=1:FOR I=512 TO 576:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
90 EXEC 512
zephyr
Posts: 1474 Joined: Mon Jul 21, 2008 1:18 am
Post
by zephyr » Tue Feb 21, 2012 8:20 am
Here's a slightly more advanced routine which lets you set the line using DEF USR0=LINE NUMBER.
Code: Select all
10 'ON ERROR GOTO V1.0
20 'FOR THE DRAGON 32/64
30 'BY STEPHEN J WOOLHAM
40 '***************************
50 'BASIC EXAMPLE PROGRAM
60 '***************************
70 MC$="9EB0EC84BD84012524ED8D0029308D001FBC018F2716FC018FBF018FED8D0024B6018EA78D001C867EB7018E397E860596684C270E8EF9FF9F2B10DE21BD85DC7E849F393939"
80 X=1:FOR I=512 TO 581:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
90 EXEC 512
Here's the same routine for the Tandy Color Computer 1 and 2.
Code: Select all
10 'ON ERROR GOTO V1.0
20 'FOR TANDY COCO 1 AND 2
30 'BY STEPHEN J WOOLHAM
40 '***************************
50 'BASIC EXAMPLE PROGRAM
60 '***************************
70 MC$="9EB0EC84BDAD032524ED8D0029308D001FBC018F2716FC018FBF018FED8D0024B6018EA78D001C867EB7018E397EAED296684C270E8EF9FF9F2B10DE21BDAEA97EAD9E393939"
80 X=1:FOR I=512 TO 581:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
90 EXEC 512
Last edited by
zephyr on Wed Feb 22, 2012 2:50 am, edited 1 time in total.
zephyr
Posts: 1474 Joined: Mon Jul 21, 2008 1:18 am
Post
by zephyr » Tue Feb 21, 2012 8:28 am
Here's one quick example of how it can be used.
Code: Select all
10 DEF USR0=1000:GOSUB 100:EXEC 512
20 A$=INKEY$:IF A$="" THEN 20
30 PLAY "L8"+A$
40 GOTO 20
100 MC$="9EB0EC84BD84012524ED8D0029308D001FBC018F2716FC018FBF018FED8D0024B6018EA78D001C867EB7018E397E860596684C270E8EF9FF9F2B10DE21BD85DC7E849F393939"
110 X=1:FOR I=512 TO 581:POKE I,VAL("&H"+MID$(MC$,X,2)):X=X+2:NEXT
120 RETURN
1000 RUN 20
Attachments
Dragon_Example.zip
(1.26 KiB) Downloaded 184 times