Browse Source

Check ROM is valid before loading.

aarch64
Andrew Alderwick 5 years ago
parent
commit
7f0119599e
  1. 15
      projects/library/check-rom.tal
  2. 8
      projects/library/load-rom.tal
  3. 6
      projects/software/boot.tal

15
projects/library/check-rom.tal

@ -0,0 +1,15 @@
@check-rom ( filename* -- 00 if the file doesn't exist or not a valid ROM
OR 01 if the ROM seems to be valid )
.File/name DEO2
#0001 .File/length DEO2
;&first-char .File/read DEO2
( did the file read okay? )
.File/success DEI2 ORA
( is the first character a LIT, LIT2, LITk or LIT2k? )
LIT &first-char $1 #9f AND #80 EQU
AND
JMP2r

8
projects/library/load-rom.tal

@ -12,14 +12,6 @@
.File/name DEO2
( return if file can't be found, or zero length )
#0001 .File/length DEO2
;&tmp .File/read DEO2
.File/success DEI2 ORA JMP JMP2r
( close the file so the next read starts at the beginning )
.File/name DEI2k ROT DEO2
( clear wst )
#ab
&wst-loop

6
projects/software/boot.tal

@ -182,6 +182,11 @@ RTN
DUP2 INC2 ;close-path JSR2
#0006 ++ DUP2 ;print-string JSR2
#0a .Console/write DEO
DUP2 ;check-rom JSR2 ,&valid JCN
POP2 RTN
&valid
;load-rom JSR2
RTN
@ -394,6 +399,7 @@ RTN
2729 2b2e 3032 3537 3a3d 3f42 4547 4a4d
5053 5659 5c5f 6265 686b 6e71 7477 7a7d
include projects/library/check-rom.tal
include projects/library/load-rom.tal
include projects/assets/logo05x05.tal

Loading…
Cancel
Save