mirror of
https://github.com/dschmenk/PLASMA.git
synced 2026-04-19 09:23:06 +00:00
Big update with installer disk. Allow FORTH to execute SYSTEM files
This commit is contained in:
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.
+1
-1
@@ -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
|
||||
|
||||
Regular → Executable
+2
-2
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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,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
@@ -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.
|
||||
//
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user