mirror of
https://github.com/forth-ev/VolksForth.git
synced 2025-08-09 15:24:59 +00:00
Add file-not-found detection and error display to include and cat
This commit is contained in:
Binary file not shown.
@@ -281,16 +281,19 @@
|
|||||||
|
|
||||||
\ *** Block No. 10, Hexblock a
|
\ *** Block No. 10, Hexblock a
|
||||||
|
|
||||||
\ include loadscreen 08jun20pz
|
\ include loadscreen 09jun20pz
|
||||||
|
|
||||||
|
|
||||||
: i/o-status? $90 c@ ;
|
: i/o-status? $90 c@ ;
|
||||||
|
|
||||||
|
: dos-error ( dev -- )
|
||||||
|
15 busin
|
||||||
|
BEGIN bus@ con! i/o-status? UNTIL
|
||||||
|
busoff ;
|
||||||
|
|
||||||
: unloop rdrop rdrop rdrop ;
|
: unloop rdrop rdrop rdrop ;
|
||||||
|
|
||||||
: dev (drv @ 8 + ;
|
: lo/hi> ( lo hi -- u )
|
||||||
|
|
||||||
: lo/hi> ( lo hi -- u )
|
|
||||||
255 and 256 * swap 255 and + ;
|
255 and 256 * swap 255 and + ;
|
||||||
|
|
||||||
|
|
||||||
@@ -304,9 +307,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 11, Hexblock b
|
\ *** Block No. 11, Hexblock b
|
||||||
|
|
||||||
\ fload-dev freadline 25apr20pz
|
\ fload-dev freadline 25apr20pz
|
||||||
@@ -337,14 +337,18 @@
|
|||||||
|
|
||||||
\ *** Block No. 12, Hexblock c
|
\ *** Block No. 12, Hexblock c
|
||||||
|
|
||||||
\ fload-open fload-close 25apr20pz
|
\ fload-open fload-close 09jun20pz
|
||||||
|
|
||||||
|
| : i/o-status?abort i/o-status? IF cr
|
||||||
|
fload-dev @ dos-error abort THEN ;
|
||||||
|
|
||||||
| : fload-open ( addr c -- )
|
| : fload-open ( addr c -- )
|
||||||
fload-dev @
|
fload-dev @
|
||||||
fload-2nd @ 1- dup fload-2nd !
|
fload-2nd @ 1- dup fload-2nd !
|
||||||
busopen
|
busopen
|
||||||
2dup cr type bustype
|
2dup cr type bustype
|
||||||
" ,s,r" count bustype busoff ;
|
" ,s,r" count bustype busoff
|
||||||
|
i/o-status?abort ;
|
||||||
|
|
||||||
| : fload-close ( -- )
|
| : fload-close ( -- )
|
||||||
fload-dev @ fload-2nd @
|
fload-dev @ fload-2nd @
|
||||||
@@ -359,14 +363,14 @@
|
|||||||
fload-dev @ I busclose -1 +LOOP
|
fload-dev @ I busclose -1 +LOOP
|
||||||
15 fload-2nd ! THEN ;
|
15 fload-2nd ! THEN ;
|
||||||
|
|
||||||
|
\ *** Block No. 13, Hexblock d
|
||||||
|
|
||||||
|
\ include 09jun20pz
|
||||||
|
|
||||||
: \ ( -- )
|
: \ ( -- )
|
||||||
blk @ IF [compile] \ exit THEN
|
blk @ IF [compile] \ exit THEN
|
||||||
#tib @ >in ! ; immediate
|
#tib @ >in ! ; immediate
|
||||||
|
|
||||||
\ *** Block No. 13, Hexblock d
|
|
||||||
|
|
||||||
\ include 10may20pz
|
|
||||||
|
|
||||||
create >tib-orig >tib @ ,
|
create >tib-orig >tib @ ,
|
||||||
fib >tib !
|
fib >tib !
|
||||||
|
|
||||||
@@ -387,13 +391,10 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\ *** Block No. 14, Hexblock e
|
\ *** Block No. 14, Hexblock e
|
||||||
|
|
||||||
\ dir dos cat 08jun20pz
|
\ dir dos cat 09jun20pz
|
||||||
|
| : dev fload-dev @ ;
|
||||||
|
|
||||||
: dir ( -- )
|
: dir ( -- )
|
||||||
dev 0 busopen ascii $ bus! busoff
|
dev 0 busopen ascii $ bus! busoff
|
||||||
@@ -408,13 +409,12 @@
|
|||||||
bl word count ?dup
|
bl word count ?dup
|
||||||
IF dev 15 busout bustype
|
IF dev 15 busout bustype
|
||||||
busoff cr ELSE drop THEN
|
busoff cr ELSE drop THEN
|
||||||
dev 15 busin
|
dev dos-error ;
|
||||||
BEGIN bus@ con! i/o-status? UNTIL
|
|
||||||
busoff ;
|
|
||||||
|
|
||||||
: cat ( -- ) cr
|
: cat ( -- ) cr
|
||||||
dev 2 busopen bl word count bustype
|
dev 2 busopen bl word count bustype
|
||||||
busoff dev 2 busin BEGIN bus@ con!
|
busoff i/o-status?abort
|
||||||
|
dev 2 busin BEGIN bus@ con!
|
||||||
i/o-status? UNTIL busoff
|
i/o-status? UNTIL busoff
|
||||||
dev 2 busclose ;
|
dev 2 busclose ;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user