1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-03-22 16:32:32 +00:00

Updates for FORTH scripts and demos

This commit is contained in:
David Schmenk 2024-01-04 20:52:39 -08:00
parent 420af77a96
commit a3dc055897
8 changed files with 88 additions and 57 deletions

BIN
images/apple/PLFORTH.PO Executable file

Binary file not shown.

View File

@ -208,6 +208,8 @@ cp utilsrc/apple/zipchip.pla prodos/bld/samples/ZIPCHIP.PLA.TXT
rm -rf prodos/scripts
mkdir prodos/scripts
cp scripts/plasma.4th prodos/scripts/PLASMA.4TH.TXT
cp scripts/conio.4th prodos/scripts/CONIO.4TH.TXT
cp scripts/fileio.4th prodos/scripts/FILEIO.4TH.TXT
cp scripts/grlib.4th prodos/scripts/GRLIB.4TH.TXT
cp scripts/hgrlib.4th prodos/scripts/HGRLIB.4TH.TXT
cp scripts/int32.4th prodos/scripts/INT32.4TH.TXT

View File

@ -1,19 +1,29 @@
: ?PLASMA
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
;
?PLASMA ( Load PLASMA if not already )
: ?CONIO
" CONIOAPI" FIND
SWAP DROP
0= IF
" CONIO.4TH" SRC
THEN
;
?CONIO ( Load CONIO if not already )
: ?GRLIB
" GRLIB" FIND
SWAP DROP
0= IF
" GRLIB.4TH" SRC
THEN
" GRLIB" FIND
SWAP DROP
0= IF
" GRLIB.4TH" SRC
THEN
;
?GRLIB ( Load GRLIB if not already )
@ -26,9 +36,9 @@
1 VARIABLE INCX
1 VARIABLE INCY
: BEEP 30 10 TONE DROP ;
: BEEP 30 10 TONE ;
: BOOP 10 30 TONE DROP ;
: BOOP 10 30 TONE ;
: MOVEBALL
BALLX @ 0= IF INCX @ NEGATE INCX ! BEEP THEN

11
src/scripts/conio.4th Normal file
View File

@ -0,0 +1,11 @@
( LOADMOD" CONIO" CONIO is already available in plforth )
LOOKUP CONIO CONSTANT CONIOAPI
CONIOAPI 3 IFACE PLASMA _HOME : HOME _HOME DROP ;
CONIOAPI 4 IFACE PLASMA _GOTOXY : GOTOXY _GOTOXY DROP ;
CONIOAPI 7 IFACE PLASMA _TEXT : TEXT 40 _TEXT DROP ;
CONIOAPI 8 IFACE PLASMA _GR : GR 1 _GR DROP ;
CONIOAPI 9 IFACE PLASMA _COLOR : COLOR _COLOR DROP ;
CONIOAPI 10 IFACE PLASMA _PLOT : PLOT _PLOT DROP ;
CONIOAPI 11 IFACE PLASMA _TONE : TONE _TONE DROP ;
CONIOAPI 12 IFACE PLASMA RAND

16
src/scripts/fileio.4th Normal file
View File

@ -0,0 +1,16 @@
( LOADMOD" FILEIO" FILEIO is already available in plforth )
LOOKUP FILEIO CONSTANT FILEIOAPI
FILEIOAPI 2 IFACE PLASMA GETFILEINFO
FILEIOAPI 3 IFACE PLASMA SETFILEINFO
FILEIOAPI 4 IFACE PLASMA GETEOF
FILEIOAPI 5 IFACE PLASMA SETEOF
FILEIOAPI 7 IFACE PLASMA OPEN
FILEIOAPI 8 IFACE PLASMA CLOSE
FILEIOAPI 9 IFACE PLASMA READ
FILEIOAPI 10 IFACE PLASMA WRITE
FILEIOAPI 11 IFACE PLASMA CREATE
FILEIOAPI 12 IFACE PLASMA DESTROY
FILEIOAPI 13 IFACE PLASMA RENAME
FILEIOAPI 14 IFACE PLASMA NEWLINE
FILEIOAPI 15 IFACE PLASMA ONLINE

View File

@ -82,7 +82,7 @@ FPULIB 68 IFACE PLASMA _FPRANDNUM : FPRANDNUM _FPRANDNUM FPERR ! ;
4 CONSTANT FPSTR.EXP ( Force exponential format )
8 CONSTANT FPSTR.FLEX ( Flexible switch to EXP format if over/underflow )
: FP. HERE 4 4 FPSTR.FLOAT FPSTR! HERE (.") ;
: FP. HERE 10 4 FPSTR.FLEX FPSTR! HERE (.") ;
FPRESET ( Load SANE code and set up libraries )

View File

@ -1,24 +1,40 @@
: RESERVEHGR2
$6000 HERE - DUP
0< ABORT" Can't reserve HGR2"
ALLOT
;
RESERVEHGR2
: ?PLASMA
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
" IFACE" FIND
SWAP DROP
0= IF
" PLASMA.4TH" SRC
THEN
;
?PLASMA ( Load PLASMA if not already )
$6000 HERE - ALLOT ( Reserve HGR2 screen )
: ?HGRLIB
" HGRLIB" FIND
SWAP DROP
0= IF
" HGRLIB.4TH" SRC
THEN
: ?CONIO
" CONIOAPI" FIND
SWAP DROP
0= IF
" CONIO.4TH" SRC
THEN
;
?HGRLIB ( Load HGRLIB if not already )
?CONIO ( Load CONIO if not already )
: ?HGRLIB
" HGRLIB" FIND
SWAP DROP
0= IF
" HGRLIB.4TH" SRC
THEN
;
?HGRLIB ( Load GRLIB if not already )
5 VARIABLE BALLCLR
10 VARIABLE BALLX
@ -28,9 +44,9 @@ $6000 HERE - ALLOT ( Reserve HGR2 screen )
1 VARIABLE INCX
1 VARIABLE INCY
: BEEP 30 10 TONE DROP ;
: BEEP 30 10 TONE ;
: BOOP 10 30 TONE DROP ;
: BOOP 10 30 TONE ;
: MOVEBALL
BALLX @ 0= IF INCX @ NEGATE INCX ! BEEP THEN

View File

@ -7,14 +7,6 @@ LOOKUP STRCPY PLASMA STRCPY
LOOKUP STRCAT PLASMA STRCAT
LOOKUP HEAPAVAIL PLASMA FREEMEM
: .PLASMAVER
PLASMA_VER 12 RSHIFT $0F AND 48 + EMIT
PLASMA_VER 8 RSHIFT $0F AND 48 + EMIT
46 EMIT
PLASMA_VER 4 RSHIFT $0F AND 48 + EMIT
PLASMA_VER $0F AND 48 + EMIT
;
: LOADMOD ( modulename paramstr -- )
CMDLINE " . " STRCPY DROP ( Dummy parameter for module name )
CMDLINE SWAP STRCAT DROP
@ -59,29 +51,13 @@ LOOKUP HEAPAVAIL PLASMA FREEMEM
" NEWDIR" LOADMOD"
;
( LOADMOD" FILEIO" FILEIO is already available in plforth )
LOOKUP FILEIO CONSTANT FILEIOAPI
FILEIOAPI 0 IFACE PLASMA GETPFX
FILEIOAPI 1 IFACE PLASMA SETPFX
LOOKUP FILEIO 0 IFACE PLASMA GETPFX
LOOKUP FILEIO 1 IFACE PLASMA SETPFX
: PFX.
HERE GETPFX DROP HERE (.")
;
: SETPFX"
: PFX"
34 WORD SETPFX DROP
;
( LOADMOD" CONIO" CONIO is already available in plforth )
LOOKUP CONIO CONSTANT CONIOAPI
CONIOAPI 3 IFACE PLASMA _HOME : HOME _HOME DROP ;
CONIOAPI 4 IFACE PLASMA _GOTOXY : GOTOXY _GOTOXY DROP ;
CONIOAPI 7 IFACE PLASMA _TEXT : TEXT 40 _TEXT DROP ;
CONIOAPI 8 IFACE PLASMA _GR : GR 1 _GR DROP ;
CONIOAPI 9 IFACE PLASMA _COLOR : COLOR _COLOR DROP ;
CONIOAPI 10 IFACE PLASMA _PLOT : PLOT _PLOT DROP ;
CONIOAPI 11 IFACE PLASMA _TONE : TONE _TONE DROP ;
CONIOAPI 12 IFACE PLASMA RAND
;