From 29498dc6e7b29124eaad78729df3fbda5c47fe5a Mon Sep 17 00:00:00 2001 From: Dave Schmenk Date: Sun, 11 Feb 2024 10:51:12 -0800 Subject: [PATCH] Chanfe batch words ?EXEC RESUME> to [IF][ELSE][THEN] --- src/mkrel | 17 +++++++----- src/scripts/hdinstall.4th | 55 +++++++++++++++++++++++++++----------- src/scripts/hdinstall2.4th | 45 +++++++++++++------------------ 3 files changed, 68 insertions(+), 49 deletions(-) diff --git a/src/mkrel b/src/mkrel index 0f4fc5a..e1b63d7 100755 --- a/src/mkrel +++ b/src/mkrel @@ -145,13 +145,16 @@ cp utilsrc/apple/mon.pla prodos/bld/samples/MON.PLA.TXT cp utilsrc/apple/zipchip.pla prodos/bld/samples/ZIPCHIP.PLA.TXT mkdir prodos/bld/scripts -cp scripts/rod.4th prodos/bld/scripts/ROD.4TH.TXT -cp scripts/bounce.4th prodos/bld/scripts/BOUNCE.4TH.TXT -cp scripts/dbounce.4th prodos/bld/scripts/DBOUNCE.4TH.TXT -cp scripts/hrbounce.4th prodos/bld/scripts/HRBOUNCE.4TH.TXT -cp scripts/plot.4th prodos/bld/scripts/PLOT.4TH.TXT -cp scripts/hrplot.4th prodos/bld/scripts/HRPLOT.4TH.TXT -cp scripts/gfxplot.4th prodos/bld/scripts/GFXPLOT.4TH.TXT +cp scripts/rod.4th prodos/bld/scripts/ROD.4TH.TXT +cp scripts/bounce.4th prodos/bld/scripts/BOUNCE.4TH.TXT +cp scripts/dbounce.4th prodos/bld/scripts/DBOUNCE.4TH.TXT +cp scripts/hrbounce.4th prodos/bld/scripts/HRBOUNCE.4TH.TXT +cp scripts/plot.4th prodos/bld/scripts/PLOT.4TH.TXT +cp scripts/hrplot.4th prodos/bld/scripts/HRPLOT.4TH.TXT +cp scripts/gfxplot.4th prodos/bld/scripts/GFXPLOT.4TH.TXT +cp scripts/hdinstall.4th prodos/bld/scripts/HDINSTALL.4TH.TXT +cp scripts/hdinstall1.4th prodos/bld/scripts/HDINSTALL1.4TH.TXT +cp scripts/hdinstall2.4th prodos/bld/scripts/HDINSTALL2.4TH.TXT #mkdir prodos/bld/examples #cp samplesrc/examples/ex.1.pla prodos/bld/examples/EX.1.PLA.TXT diff --git a/src/scripts/hdinstall.4th b/src/scripts/hdinstall.4th index 3931100..325192d 100644 --- a/src/scripts/hdinstall.4th +++ b/src/scripts/hdinstall.4th @@ -1,20 +1,26 @@ SRC" plasma.4th" SRC" conio.4th" -: RESUME> ; INTERPONLY ( PLACE HOLDER TO RESUME EXECUTION ) -: ?EXEC ( F -- ) - NOT IF ( SKIP CODE IN BETWEEN ?EXEC AND RESUME> ) +: [THEN] ; IMMEDIATE ( PLACE HOLDER TO RESUME EXECUTION ) +DEFER [ELSE] ( SKIP UNTIL [THEN] IF EXECUTED ) +: [IF] ( F -- ) + NOT IF ( SKIP CODE IN BETWEEN [ELSE] OR [THEN] ) 1 >R BEGIN BL WORD FIND IF CASE - ' RESUME> OF - R> 1- ?DUP 0= IF ( EXIT IF FINAL RESUME> ) + ' [ELSE] OF + R@ 1 = IF ( RESUME EXECUTING AT MATCHING [ELSE] ) + R> DROP DROP EXIT + THEN + ENDOF + ' [THEN] OF + R> 1- ?DUP 0= IF ( EXIT AT FINAL [THEN] ) DROP EXIT THEN >R ENDOF - [ LATEST ] LITERAL OF ( CHECK FOR NESTED ?EXEC ) + [ LATEST ] LITERAL OF ( CHECK FOR NESTED [IF] ) R> 1+ >R ENDOF ENDCASE @@ -23,7 +29,27 @@ SRC" conio.4th" THEN AGAIN THEN -; INTERPONLY +; IMMEDIATE +:NONAME ( [ELSE] ) + 1 >R + BEGIN + BL WORD FIND IF + CASE + ' [THEN] OF + R> 1- ?DUP 0= IF ( EXIT AT FINAL [THEN] ) + DROP EXIT + THEN + >R + ENDOF + ' [IF] OF ( CHECK FOR NESTED [IF] ) + R> 1+ >R + ENDOF + ENDCASE + ELSE + DROP + THEN + AGAIN +; IMMEDIATE IS [ELSE] : STRINPUT ( STR -- ) DUP 1+ 255 ACCEPT -TRAILING SWAP C! @@ -51,14 +77,12 @@ DEST C@ 0= ?ABORT" Destination required" FILELIST " -R EDITOR.README PL* CMD* SYS " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -CONFIRM" Copy demos?" -?EXEC +CONFIRM" Copy demos?" [IF] FILELIST " -R DEMOS " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -RESUME> +[THEN] -CONFIRM" Copy build tools?" -?EXEC +CONFIRM" Copy build tools?" [IF] DEST " /BLD" STRCAT DROP " NEWDIR" DEST LOADMOD FILELIST " BLD/PLASM BLD/CODEOPT " STRCPY @@ -67,13 +91,12 @@ CONFIRM" Copy build tools?" FILELIST " -R BLD/INC " STRCPY DEST STRCAT " COPY" SWAP LOADMOD - CONFIRM" Copy sample code?" - ?EXEC + CONFIRM" Copy sample code?" [IF] FILELIST " -R BLD/SAMPLES " STRCPY DEST STRCAT " COPY" SWAP LOADMOD - RESUME> + [THEN] -RESUME> +[THEN] ." Done" CR 0 0 40 24 VIEWPORT diff --git a/src/scripts/hdinstall2.4th b/src/scripts/hdinstall2.4th index 57f57dd..f12c7ea 100644 --- a/src/scripts/hdinstall2.4th +++ b/src/scripts/hdinstall2.4th @@ -1,20 +1,20 @@ SRC" plasma.4th" SRC" conio.4th" -: RESUME> ; INTERPONLY ( PLACE HOLDER TO RESUME EXECUTION ) -: ?EXEC ( F -- ) - NOT IF ( SKIP CODE IN BETWEEN ?EXEC AND RESUME> ) +: [THEN] ; IMMEDIATE ( PLACE HOLDER TO RESUME EXECUTION ) +: [IF] ( F -- ) + NOT IF ( SKIP CODE IN BETWEEN [ELSE] OR [THEN] ) 1 >R BEGIN BL WORD FIND IF CASE - ' RESUME> OF - R> 1- ?DUP 0= IF ( EXIT IF FINAL RESUME> ) + ' [THEN] OF + R> 1- ?DUP 0= IF ( EXIT AT FINAL [THEN] ) DROP EXIT THEN >R ENDOF - [ LATEST ] LITERAL OF ( CHECK FOR NESTED ?EXEC ) + [ LATEST ] LITERAL OF ( CHECK FOR NESTED [IF] ) R> 1+ >R ENDOF ENDCASE @@ -23,8 +23,7 @@ SRC" conio.4th" THEN AGAIN THEN -; INTERPONLY - +; IMMEDIATE : STRING CREATE 256 ALLOT DOES> ; ( JUST ALLOCATE THE BIGGEST STRING POSSIBLE ) : CONFIRM" ( -- F ) @@ -56,29 +55,25 @@ INSERT.FLOPPY" PLASMA.SYS" FILELIST " -R /PLASMA.SYS/* " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -CONFIRM" Copy demos?" -?EXEC +CONFIRM" Copy demos?" [IF] INSERT.FLOPPY" PLASMA.DEMOS" FILELIST " -R /PLASMA.DEMOS/DEMOS " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -RESUME> +[THEN] -CONFIRM" Copy floating point libraries?" -?EXEC +CONFIRM" Copy floating point libraries?" [IF] INSERT.FLOPPY" PLASMA.FPSOS" FILELIST " -R /PLASMA.FPSOS/SYS " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -RESUME> +[THEN] -CONFIRM" Copy networking libraries?" -?EXEC +CONFIRM" Copy networking libraries?" [IF] INSERT.FLOPPY" PLASMA.INET" FILELIST " -R /PLASMA.INET/* " STRCPY DEST STRCAT " COPY" SWAP LOADMOD -RESUME> +[THEN] -CONFIRM" Copy build tools?" -?EXEC +CONFIRM" Copy build tools?" [IF] DEST " BLD" STRCAT " NEWDIR" SWAP LOADMOD INSERT.FLOPPY" PLASMA.BLD" @@ -86,19 +81,17 @@ CONFIRM" Copy build tools?" " /PLASMA.BLD/BLD/INC " STRCAT DEST STRCAT " COPY" SWAP LOADMOD - CONFIRM" Copy sample PLASMA code?" - ?EXEC + CONFIRM" Copy sample PLASMA code?" [IF] FILELIST " -R /PLASMA.BLD/BLD/SAMPLES " STRCPY DEST STRCAT " COPY" SWAP LOADMOD - RESUME> + [THEN] - CONFIRM" Copy sample FORTH scripts?" - ?EXEC + CONFIRM" Copy sample FORTH scripts?" [IF] FILELIST " -R /PLASMA.BLD/BLD/SCRIPTS " STRCPY DEST STRCAT " COPY" SWAP LOADMOD - RESUME> + [THEN] -RESUME> +[THEN] FILELIST " AUTORUN HDINSTALL.4TH" STRCPY " DEL" SWAP LOADMOD