ON ERROR GOTO for CoCo 1/2 and Dragon 32/64

Hardware Hacking, Programming and Game Solutions/Cheats
Post Reply
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

ON ERROR GOTO for CoCo 1/2 and Dragon 32/64

Post by zephyr »

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

Re: ON ERROR GOTO for CoCo 1/2 and Dragon 32/64

Post by zephyr »

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

Re: ON ERROR GOTO for CoCo 1/2 and Dragon 32/64

Post by zephyr »

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
Post Reply