Switch COMPILE/[COMPILE] to POSTPONE

This commit is contained in:
Dave Schmenk 2024-02-12 16:34:06 -08:00
parent fbcfae86e0
commit 974a7d63f6
9 changed files with 21 additions and 34 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,7 @@
cp ../sysfiles/BLANK140.po PLASMA-2.1-DEMOS.po
./ac.jar -n PLASMA-2.1-DEMOS.po PLASMA.DEMOS
cat rel/INT32TEST#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/INT32TEST REL
cat rel/apple/CONIOTEST#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/CONIOTST REL
cat rel/apple/CONIOTEST#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/CONIOTEST REL
cat rel/apple/ROD#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/ROD REL
cat rel/RPNCALC#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/RPNCALC REL
cat rel/LZ4CAT#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/LZ4CAT REL
@ -30,5 +30,3 @@ cat rel/apple/FATGET#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple
cat rel/apple/FATPUT#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple2/sdutils/FATPUT REL
cat rel/apple/FATREADDSK#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple2/sdutils/FATREADDSK REL
cat rel/apple/FATWRITEDSK#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple2/sdutils/FATWRITEDSK REL
cat rel/apple/GFXDEMO#FE1000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple3/GFXDEMO REL
cat samplesrc/APPLE3.PIX#060000 | ./ac.jar -p PLASMA-2.1-DEMOS.po demos/apple3/APPLE3.PIX BIN

View File

@ -17,3 +17,5 @@ cat inc/grafix.plh | ./ac.jar -ptx PLASMA-2.1-FPSOS.po bld/inc/G
cat samplesrc/gfxdemo.pla | ./ac.jar -ptx PLASMA-2.1-FPSOS.po bld/samples/GFXDEMO.PLA TXT
cat scripts/grafix.4th | ./ac.jar -ptx PLASMA-2.1-FPSOS.po sys/scripts/GRAFIX.4TH TXT
cat scripts/gfxplot.4th | ./ac.jar -ptx PLASMA-2.1-FPSOS.po bld/scripts/GFXPLOT.4TH TXT
cat rel/apple/GFXDEMO#FE1000 | ./ac.jar -p PLASMA-2.1-FPSOS.po demos/apple3/GFXDEMO REL
cat samplesrc/APPLE3.PIX#060000 | ./ac.jar -p PLASMA-2.1-FPSOS.po demos/apple3/APPLE3.PIX BIN

View File

@ -74,6 +74,14 @@ cp scripts/fpu.4th prodos/sys/scripts/FPU.4TH.TXT
rm -rf prodos/demos
mkdir prodos/demos
cp rel/INT32TEST#FE1000 prodos/demos/INT32TEST.REL
cp rel/apple/CONIOTEST#FE1000 prodos/demos/CONIOTEST.REL
cp rel/apple/ROD#FE1000 prodos/demos/ROD.REL
cp rel/RPNCALC#FE1000 prodos/demos/RPNCALC.REL
cp rel/LZ4CAT#FE1000 prodos/demos/LZ4CAT.REL
cp ../doc/ROGUE.LZ4.BIN prodos/demos/ROGUE.LZ4.BIN
cp rel/PRIMEGAP#FE1000 prodos/demos/PRIMEGAP.REL
mkdir prodos/demos/rogue
cp rel/ROGUE#FE1000 prodos/demos/rogue/ROGUE.REL
cp rel/ROGUECOMBAT#FE1000 prodos/demos/rogue/ROGUECOMBAT.REL

View File

@ -5,7 +5,7 @@ SRC" conio.4th"
DEFER [ELSE] ( SKIP UNTIL [THEN] IF EXECUTED )
: [IF] ( F -- )
NOT IF ( SKIP CODE IN BETWEEN [ELSE] OR [THEN] )
[COMPILE] [ELSE]
POSTPONE [ELSE]
THEN
; IMMEDIATE
:NONAME ( [ELSE] )
@ -36,14 +36,14 @@ DEFER [ELSE] ( SKIP UNTIL [THEN] IF EXECUTED )
: STRING CREATE 256 ALLOT DOES> ; ( JUST ALLOCATE THE BIGGEST STRING POSSIBLE )
: CONFIRM" ( -- F )
COMPILE ."
POSTPONE ."
." (Y/N)"
KEY CR TOUPPER CHAR Y =
;
: INSERT.FLOPPY"
." Insert "
COMPILE ."
POSTPONE ."
." into floppy drive" CR
." Press any key to continue" KEY DROP CR
;

View File

@ -111,7 +111,7 @@ predef _case_#0, _of_#0, _endof_#0, _endcase_#0
predef _dodo_(a,b)#0, _do_#0, _doloop_#0, _doplusloop_(a)#0, _plusloop_#0, _loop_#0
predef _unloop_#0, _leave_#0, _j_#1, _defer_#0, _is_(a)#0, _noname_#0
predef _create_#0, _itcdoes_(a)#0, _does_#0, _compoff_#0, _compon_#0, _state_#1
predef _compile_#0, _forcecomp_#0, _dictaddw_(a)#0, _dictaddb_(a)#0, _colon_#0, _semi_#0
predef _postpone_#0, _dictaddw_(a)#0, _dictaddb_(a)#0, _colon_#0, _semi_#0
predef _componly_#0, _interponly_#0, _immediate_#0, _exit_#0, _pad_#1, _trailing_(a,b)#2
predef _tors_(a)#0, _fromrs_#1, _toprs_#1, _lookup_#1, _latest_#1, _recurse_#0
predef _cmove_(a,b,c)#0, _move_(a,b,c)#0, _fill_(a,b,c)#0, _plasma_(a)#0
@ -509,18 +509,14 @@ word = @d_compoff, 0, @_compon_
char d_compword = "(COMPILE)"
byte = componly_flag
word = @d_compon, 0, @_compword_
// COMPILE NEXT WORD
char d_compile = "COMPILE"
// POSTPONE (COMPILE) NEXT WORD
char d_postpone = "POSTPONE"
byte = imm_flag | componly_flag
word = @d_compword, 0, @_compile_
// FORCE COMPILE NEXT WORD
char d_forcecomp = "[COMPILE]"
byte = imm_flag | componly_flag
word = @d_compile, 0, @_forcecomp_
word = @d_compword, 0, @_postpone_
// COMPILE ONLY
char d_componly = "COMPONLY"
byte = imm_flag
word = @d_forcecomp, 0, @_componly_
word = @d_postpone, 0, @_componly_
// INTERPRET ONLY
char d_interponly = "INTERPONLY"
byte = imm_flag
@ -1408,29 +1404,12 @@ def _semi_#0
fin
state = state & ~comp_flag
end
def _compile_#0
def _postpone_#0
word dentry
dentry = find(nextword(' '))
if dentry
if ^_ffa_(dentry) & imm_flag
_compword_(dentry)
else
_compliteral_(dentry)
_compword_(@d_compword)
fin
else
puts("No match\n")
_quit_
fin
end
def _forcecomp_#0
word dentry
dentry = find(nextword(' '))
if dentry
_compliteral_(dentry)
_compword_(@d_compword)
_compword_(dentry)
else
puts("No match\n")
_quit_