1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-06-01 03:41: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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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

View File

@ -7,4 +7,4 @@
./mkbld
./mkinet
./mkdemos
./mkinstall
./mkinst

4
src/mkinst Normal file → Executable file
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

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

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

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

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"

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.
//

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