mirror of
https://github.com/dschmenk/PLASMA.git
synced 2026-10-22 12:02:42 +00:00
194 lines
6.6 KiB
Plaintext
194 lines
6.6 KiB
Plaintext
; ACME COMPATIBLE OUTPUT
|
|
!WORD _SEGEND-_SEGBEGIN ; LENGTH OF HEADER + CODE/DATA + BYTECODE SEGMENT
|
|
_SEGBEGIN
|
|
!WORD $6502 ; MAGIC #
|
|
!WORD _SYSFLAGS ; SYSTEM FLAGS
|
|
!WORD _SUBSEG ; BYTECODE SUB-SEGMENT
|
|
!WORD _DEFCNT ; BYTECODE DEF COUNT
|
|
!WORD _INIT ; MODULE INITIALIZATION ROUTINE
|
|
; toolsrc/hrforth.pla: 0001: include "inc/cmdsys.plh"
|
|
; inc/cmdsys.plh: 0001: import cmdsys
|
|
; DCI STRING: CMDSYS
|
|
!BYTE $C3,$CD,$C4,$D3,$D9,$53
|
|
; CMDSYS -> X000
|
|
; inc/cmdsys.plh: 0002: //
|
|
; inc/cmdsys.plh: 0003: // Useful values for everyone
|
|
; inc/cmdsys.plh: 0004: //
|
|
; inc/cmdsys.plh: 0005: const _SYSVER_ = $0220 // Version built against
|
|
; _SYSVER_ = 544
|
|
; inc/cmdsys.plh: 0006: const FALSE = 0
|
|
; FALSE = 0
|
|
; inc/cmdsys.plh: 0007: const TRUE = not FALSE
|
|
; TRUE = -1
|
|
; inc/cmdsys.plh: 0008: const NULL = 0
|
|
; NULL = 0
|
|
; inc/cmdsys.plh: 0009: //
|
|
; inc/cmdsys.plh: 0010: // Machine ID values
|
|
; inc/cmdsys.plh: 0011: //
|
|
; inc/cmdsys.plh: 0012: const MACHID_CLOCK = $01
|
|
; MACHID_CLOCK = 1
|
|
; inc/cmdsys.plh: 0013: const MACHID_80COL = $02
|
|
; MACHID_80COL = 2
|
|
; inc/cmdsys.plh: 0014: const MACHID_MEM = $30
|
|
; MACHID_MEM = 48
|
|
; inc/cmdsys.plh: 0015: const MACHID_64K = $20
|
|
; MACHID_64K = 32
|
|
; inc/cmdsys.plh: 0016: const MACHID_128K = $30
|
|
; MACHID_128K = 48
|
|
; inc/cmdsys.plh: 0017: const MACHID_MODEL = $C8
|
|
; MACHID_MODEL = 200
|
|
; inc/cmdsys.plh: 0018: const MACHID_II = $00
|
|
; MACHID_II = 0
|
|
; inc/cmdsys.plh: 0019: const MACHID_IIPLUS= $40
|
|
; MACHID_IIPLUS = 64
|
|
; inc/cmdsys.plh: 0020: const MACHID_IIE = $80
|
|
; MACHID_IIE = 128
|
|
; inc/cmdsys.plh: 0021: const MACHID_III = $C0
|
|
; MACHID_III = 192
|
|
; inc/cmdsys.plh: 0022: const MACHID_IIC = $88
|
|
; MACHID_IIC = 136
|
|
; inc/cmdsys.plh: 0023: const MACHID_I = $08
|
|
; MACHID_I = 8
|
|
; inc/cmdsys.plh: 0024: byte MACHID
|
|
; MACHID -> X001
|
|
; inc/cmdsys.plh: 0025: //
|
|
; inc/cmdsys.plh: 0026: // System flags: memory allocator screen holes.
|
|
; inc/cmdsys.plh: 0027: //
|
|
; inc/cmdsys.plh: 0028: const restxt1 = $0001
|
|
; restxt1 = 1
|
|
; inc/cmdsys.plh: 0029: const restxt2 = $0002
|
|
; restxt2 = 2
|
|
; inc/cmdsys.plh: 0030: const resxtxt1 = $0004
|
|
; resxtxt1 = 4
|
|
; inc/cmdsys.plh: 0031: const resxtxt2 = $0008
|
|
; resxtxt2 = 8
|
|
; inc/cmdsys.plh: 0032: const reshgr1 = $0010
|
|
; reshgr1 = 16
|
|
; inc/cmdsys.plh: 0033: const reshgr2 = $0020
|
|
; reshgr2 = 32
|
|
; inc/cmdsys.plh: 0034: const resxhgr1 = $0040
|
|
; resxhgr1 = 64
|
|
; inc/cmdsys.plh: 0035: const resxhgr2 = $0080
|
|
; resxhgr2 = 128
|
|
; inc/cmdsys.plh: 0036: const nojitc = $0100
|
|
; nojitc = 256
|
|
; inc/cmdsys.plh: 0037: const vid80col = $0800
|
|
; vid80col = 2048
|
|
; inc/cmdsys.plh: 0038: //
|
|
; inc/cmdsys.plh: 0039: // Module don't free memory
|
|
; inc/cmdsys.plh: 0040: //
|
|
; inc/cmdsys.plh: 0041: const modflagkeep = $1000
|
|
; modflagkeep = 4096
|
|
; inc/cmdsys.plh: 0042: const modkeep = $2000
|
|
; modkeep = 8192
|
|
; inc/cmdsys.plh: 0043: const modinitkeep = $4000
|
|
; modinitkeep = 16384
|
|
; inc/cmdsys.plh: 0044: //
|
|
; inc/cmdsys.plh: 0045: // CMD exported interface table
|
|
; inc/cmdsys.plh: 0046: //
|
|
; inc/cmdsys.plh: 0047: struc t_cmdsys
|
|
; inc/cmdsys.plh: 0048: word sysver
|
|
; sysver = 0
|
|
; inc/cmdsys.plh: 0049: word syspath
|
|
; syspath = 2
|
|
; inc/cmdsys.plh: 0050: word cmdline
|
|
; cmdline = 4
|
|
; inc/cmdsys.plh: 0051: word modexec
|
|
; modexec = 6
|
|
; inc/cmdsys.plh: 0052: word sysopen
|
|
; sysopen = 8
|
|
; inc/cmdsys.plh: 0053: word sysclose
|
|
; sysclose = 10
|
|
; inc/cmdsys.plh: 0054: word sysread
|
|
; sysread = 12
|
|
; inc/cmdsys.plh: 0055: word syswrite
|
|
; syswrite = 14
|
|
; inc/cmdsys.plh: 0056: byte syserr
|
|
; syserr = 16
|
|
; inc/cmdsys.plh: 0057: byte jitcount
|
|
; jitcount = 17
|
|
; inc/cmdsys.plh: 0058: byte jitsize
|
|
; jitsize = 18
|
|
; inc/cmdsys.plh: 0059: word sysexec[] // Apple II specific
|
|
; sysexec = 19
|
|
; inc/cmdsys.plh: 0060: byte refcons // Apple /// specific
|
|
; refcons = 19
|
|
; inc/cmdsys.plh: 0061: byte devcons // Apple /// specific
|
|
; devcons = 20
|
|
; inc/cmdsys.plh: 0062: word lookupsym
|
|
; lookupsym = 21
|
|
; inc/cmdsys.plh: 0063: word _sysflags_ // Actual system flags (read only, don't write)
|
|
; _sysflags_ = 23
|
|
; inc/cmdsys.plh: 0064: end
|
|
; t_cmdsys = 25
|
|
; inc/cmdsys.plh: 0065: //
|
|
; inc/cmdsys.plh: 0066: // CMD exported functions
|
|
; inc/cmdsys.plh: 0067: //
|
|
; inc/cmdsys.plh: 0068: predef putc(c)#0, putln()#0, puts(s)#0, puti(i)#0, getc()#1, gets(p)#1, putb(b)#0, puth(h)#0
|
|
; PUTC -> X002
|
|
; PUTLN -> X003
|
|
; PUTS -> X004
|
|
; PUTI -> X005
|
|
; GETC -> X006
|
|
; GETS -> X007
|
|
; PUTB -> X008
|
|
; PUTH -> X009
|
|
; inc/cmdsys.plh: 0069: predef call(addr,areg,xreg,yreg,status)#1, syscall(cmd,params)#1
|
|
; CALL -> X010
|
|
; SYSCALL -> X011
|
|
; inc/cmdsys.plh: 0070: predef heapmark()#1, heapallocalign(size, pow2, freeaddr)#1
|
|
; HEAPMARK -> X012
|
|
; HEAPALLOCALIGN -> X013
|
|
; inc/cmdsys.plh: 0071: predef heapalloc(size)#1, heaprelease(newheap)#1, heapavail()#1
|
|
; HEAPALLOC -> X014
|
|
; HEAPRELEASE -> X015
|
|
; HEAPAVAIL -> X016
|
|
; inc/cmdsys.plh: 0072: predef memset(addr,value,size)#0, memcpy(dst,src,size)#0, strcpy(dst,src)#1, strcat(dst,src)#1
|
|
; MEMSET -> X017
|
|
; MEMCPY -> X018
|
|
; STRCPY -> X019
|
|
; STRCAT -> X020
|
|
; inc/cmdsys.plh: 0073: predef toupper(c)#1, sext(a)#1, divmod(a,b)#2, isugt(a,b)#1, isuge(a,b)#1, isult(a,b)#1, isule(a,b)#1
|
|
; TOUPPER -> X021
|
|
; SEXT -> X022
|
|
; DIVMOD -> X023
|
|
; ISUGT -> X024
|
|
; ISUGE -> X025
|
|
; ISULT -> X026
|
|
; ISULE -> X027
|
|
; inc/cmdsys.plh: 0074: end
|
|
; toolsrc/hrforth.pla: 0001:
|
|
; toolsrc/hrforth.pla: 0002: sysflags reshgr1 // Reserve HGR page 1
|
|
!BYTE $00 ; END OF MODULE DEPENDENCIES
|
|
_SYSFLAGS = $0010 ; SYSTEM FLAGS
|
|
; toolsrc/hrforth.pla: 0003:
|
|
; toolsrc/hrforth.pla: 0004: return cmdsys:modexec("PLFORTH")
|
|
!BYTE $00 ; PAD BYTE
|
|
_SUBSEG ; BYTECODE STARTS
|
|
_INIT
|
|
!BYTE $2E ; CS
|
|
!BYTE $07
|
|
!BYTE $50,$4C,$46,$4F,$52,$54,$48
|
|
!BYTE $6A ; LAW _X000+6
|
|
_F000 !WORD 0+6
|
|
!BYTE $56 ; ICAL
|
|
!BYTE $5C ; RET
|
|
; toolsrc/hrforth.pla: 0005: done
|
|
_DEFCNT = 1
|
|
_SEGEND
|
|
;
|
|
; RE-LOCATEABLE DICTIONARY
|
|
;
|
|
!BYTE $91 ; EXTERNAL FIXUP
|
|
!WORD _F000-_SEGBEGIN
|
|
!BYTE 0 ; ESD INDEX
|
|
!BYTE $00 ; END OF RLD
|
|
;
|
|
; EXTERNAL/ENTRY SYMBOL DICTIONARY
|
|
;
|
|
; DCI STRING: CMDSYS
|
|
!BYTE $C3,$CD,$C4,$D3,$D9,$53
|
|
!BYTE $10 ; EXTERNAL SYMBOL FLAG
|
|
!WORD 0 ; ESD INDEX
|
|
!BYTE $00 ; END OF ESD
|