1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2026-04-20 16:16:34 +00:00

Big update with installer disk. Allow FORTH to execute SYSTEM files

This commit is contained in:
dschmenk
2024-01-24 15:50:45 -08:00
parent 2434d262c5
commit bfb3eb4672
18 changed files with 37 additions and 43 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ import cmdsys
byte syserr
byte jitcount
byte jitsize
word execsys[] // Apple II specific
word sysexec[] // Apple II specific
byte refcons // Apple /// specific
byte devcons // Apple /// specific
word lookupsym
+1 -1
View File
@@ -7,4 +7,4 @@
./mkbld
./mkinet
./mkdemos
./mkinstall
./mkinst
Regular → Executable
+2 -2
View File
@@ -8,9 +8,9 @@ cat rel/apple/PLVM.128#FF2000 | ./ac.jar -p PLASMA-2.1-INST.po PLVM.128 S
cat rel/apple/PLVM16#FF2000 | ./ac.jar -p PLASMA-2.1-INST.po PLVM16 SYS
cat rel/apple/JIT#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/JIT REL
cat rel/apple/JIT16#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/JIT16 REL
cat rel/apple/FILEIO#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/FILEIO REL
cat rel/apple/CONIO#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/CONIO REL
cat rel/apple/COPY#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/COPY REL
cat rel/apple/DEL#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/DEL REL
cat rel/apple/REN#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/REN REL
cat rel/apple/NEWDIR#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/NEWDIR REL
cat rel/apple/MATCHFILES#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/MATCHFILES REL
cat rel/ARGS#FE1000 | ./ac.jar -p PLASMA-2.1-INST.po sys/ARGS REL
+3 -3
View File
@@ -25,7 +25,7 @@ SRC" conio.4th"
;
: STRINPUT ( STR -- )
DUP 1+ 255 ACCEPT SWAP C!
DUP 1+ 255 ACCEPT -TRAILING SWAP C!
;
: STRING CREATE 256 ALLOT DOES> ; ( JUST ALLOCATE THE BIGGEST STRING POSSIBLE )
@@ -38,14 +38,14 @@ SRC" conio.4th"
STRING DEST
STRING FILELIST
0 0 40 24 VIEWPORT
HOME
12 SPACES INVERSETEXT
." PLASMA HD INSTALL"
NORMALTEXT CR CR
0 1 40 23 VIEWPORT
." Enter destination " DEST STRINPUT
DEST C@ 0= ?ABORT" Destination required"
0 1 40 23 VIEWPORT
." Copying system files to " DEST (.") CR
FILELIST " -R PLVM16 CMD128 SYS " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
+7 -12
View File
@@ -4,34 +4,29 @@ SRC" machid.4th"
LOOKUP CMDSYS 19 + @ PLASMA EXECSYS
: STRINPUT ( STR -- )
DUP 1+ 255 ACCEPT SWAP C!
DUP 1+ 255 ACCEPT -TRAILING SWAP C!
;
: STRING CREATE 256 ALLOT DOES> ; ( JUST ALLOCATE THE BIGGEST STRING POSSIBLE )
STRING DEST
STRING FILELIST
0 0 40 24 VIEWPORT
HOME
12 SPACES INVERSETEXT
." PLASMA HD INSTALL"
NORMALTEXT CR CR
0 1 40 23 VIEWPORT
." Enter destination " DEST STRINPUT
DEST C@ 0= ?ABORT" Destination required"
0 1 40 23 VIEWPORT
." Copying install files to " DEST (.") CR
FILELIST " -R * " STRCPY DEST STRCAT
FILELIST " -R PL* CMD* SYS AUTORUN " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
FILELIST " HDINSTALL2.4TH " STRCPY DEST STRCAT " /HDINSTALL.4TH" STRCAT
" COPY" SWAP LOADMOD
DEST SETPFX DROP
FILELIST " HDINSTALL.4TH" STRCPY
" DEL" SWAP LOADMOD
FILELIST " HDINSTALL2.4TH HDINSTALL.4TH" STRCPY
" REN" SWAP LOADMOD
." Stage 2..." CR
0 0 40 24 VIEWPORT
DEST SETPFX DROP
" PLASMA.SYSTEM" EXECSYS
+18 -9
View File
@@ -32,9 +32,17 @@ SRC" conio.4th"
KEY CR TOUPPER CHAR Y =
;
: INSERT.FLOPPY"
." Insert "
COMPILE ."
." into floppy drive" CR
." Press any key to continue" KEY DROP CR
;
STRING DEST
STRING FILELIST
0 0 40 24 VIEWPORT
HOME
8 SPACES INVERSETEXT
." PLASMA HD INSTALL STAGE 2"
@@ -43,36 +51,36 @@ NORMALTEXT CR CR
DEST GETPFX DROP
." Insert PLASMA.SYS into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.SYS"
FILELIST " -R /PLASMA.SYS/SYS " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
CONFIRM" Copy demos?"
?EXEC
." Insert PLASMA.DEMOS into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.DEMOS"
FILELIST " -R /PLASMA.DEMOS/DEMOS " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
RESUME>
CONFIRM" Copy floating point libraries?"
?EXEC
." Insert PLASMA.FPSOS into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.FPSOS"
FILELIST " -R /PLASMA.FPSOS/SYS " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
RESUME>
CONFIRM" Copy networking libraries?"
?EXEC
." Insert PLASMA.INET into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.INET"
FILELIST " -R /PLASMA.INET/* " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
RESUME>
CONFIRM" Copy build tools?"
?EXEC
DEST " /BLD" STRCAT DROP
DEST " BLD" STRCAT DROP
" NEWDIR" DEST LOADMOD
." Insert PLASMA.BLD into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.BLD"
FILELIST " /PLASMA.BLD/BLD/PLASM /PLASMA.BLD/BLD/CODEOPT " STRCPY
DEST STRCAT
" COPY" SWAP LOADMOD
@@ -87,16 +95,17 @@ CONFIRM" Copy build tools?"
CONFIRM" Copy sample FORTH scripts?"
?EXEC
." Insert PLASMA.4TH into floppy drive and press a key" KEY DROP
INSERT.FLOPPY" PLASMA.4TH"
FILELIST " -R /PLASMA.4TH/BLD/SCRIPTS " STRCPY DEST STRCAT
" COPY" SWAP LOADMOD
RESUME>
RESUME>
FILELIST " AUTORUN"
FILELIST " AUTORUN HDINSTALL.4TH"
" DEL" SWAP LOADMOD
." Done" CR
0 0 40 24 VIEWPORT
HOME
." Done" CR
BYE
+1 -1
View File
@@ -1,6 +1,6 @@
LOOKUP HRFORTH ( HGR page 1 reserved )
LOOKUP HR2FORTH ( HGR page 1 and 2 reserved )
OR NOT ABORT" Must run with HRFORTH."
OR NOT ?ABORT" Must run with HRFORTH."
SRC" PLASMA.4TH"
SRC" CONIO.4TH"
+3 -13
View File
@@ -1,3 +1,4 @@
const MACHID = $BF98
const iobuffer = $0800
const RELADDR = $1000
@@ -33,7 +34,7 @@ predef crout()#0, cout(c)#0, prstr(s)#0, prbyte(b)#0, prword(w)#0, print(i)#0, c
predef markheap()#1, allocheap(size)#1, allocalignheap(size, pow2, freeaddr)#1, releaseheap(newheap)#1, availheap()#1
predef memset(addr,value,size)#0, memcpy(dst,src,size)#0, strcpy(dst,src)#1, strcat(dst,src)#1
predef uword_isgt(a,b)#1, uword_isge(a,b)#1, uword_islt(a,b)#1, uword_isle(a,b)#1, sext(a)#1, divmod(a,b)#2
predef execmod(modfile)#1, open(path)#1, close(refnum)#1, read(refnum, buff, len)#1, write(refnum, buff, len)#1
predef execmod(modfile)#1, open(path)#1, close(refnum)#1, read(refnum, buff, len)#1
predef lookuptbl(dci)#1, execsys(sysfile)#0
//
// Exported CMDSYS table
@@ -41,7 +42,7 @@ predef lookuptbl(dci)#1, execsys(sysfile)#0
word version = $0210 // 02.01 Dev
word syspath
word syscmdln
word = @execmod, @open, @close, @read, @write
word = @execmod, @open, @close, @read, 0
byte perr
byte jitcount = 0
byte jitsize = 0
@@ -855,17 +856,6 @@ def read(refnum, buff, len)#1
perr = syscall($CA, @params)
return params:6
end
def write(refnum, buf, len)#1
byte params[8]
params.0 = 4
params.1 = refnum
params:2 = buf
params:4 = len
params:6 = 0
perr = syscall($CB, @params)
return params:6
end
//
// Heap routines.
//
+1 -1
View File
@@ -60,7 +60,7 @@ predef lookuptbl(dci)#1, execsys(sysfile)#0
word version = $0210 // 02.10
word syspath
word syscmdln
word = @execmod, @open, @close, @read, 0 // Mark write() as NULL
word = @execmod, @open, @close, @read, 0
byte perr
byte jitcount = 0
byte jitsize = 0