1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-08-07 18:25:03 +00:00

Huge update: memset() now matches C library for params. stdlib renamed

cmdsys so that dependencies have to be updated. Version now 0.8 -
getting close
This commit is contained in:
dschmenk
2015-01-28 12:42:05 -08:00
parent 561459cacf
commit f2c9526c79
28 changed files with 126 additions and 218 deletions

BIN
ROGUE.PO Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
import stdlib import cmdsys
predef putc, putln, puts, getc, gets predef putc, putln, puts, getc, gets
predef call, syscall predef call, syscall
predef heapmark, heapallocallign, heapalloc, heaprelease, heapavail predef heapmark, heapallocallign, heapalloc, heaprelease, heapavail

View File

@@ -1,8 +1,8 @@
// //
// Handle based swapping memory manager // Handle based swapping memory manager
// //
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
predef isugt, isuge, isult, isule predef isugt, isuge, isult, isule
@@ -163,7 +163,7 @@ end
def get_info(path, infoptr) def get_info(path, infoptr)
byte params[18] byte params[18]
memset(@params, 18, 0) memset(@params, 0, 18)
params.0 = 10 params.0 = 10
params:1 = path params:1 = path
syscall($C4, @params) syscall($C4, @params)
@@ -609,7 +609,7 @@ export def hmemNew(size)
// Allocate a new page table // Allocate a new page table
// //
hpgtbl[page] = heapalloc(PG_SIZE) hpgtbl[page] = heapalloc(PG_SIZE)
memset(hpgtbl[page], PG_SIZE, HMEM_AVAIL) memset(hpgtbl[page], HMEM_AVAIL, PG_SIZE)
//puts(@allocpgstr);puth(hpgtbl[page]);putln //puts(@allocpgstr);puth(hpgtbl[page]);putln
// //
// Check if we need to allocate the memory pool // Check if we need to allocate the memory pool

View File

@@ -1,8 +1,8 @@
// //
// DHCP // DHCP
// //
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
byte MACHID byte MACHID
@@ -187,11 +187,11 @@ memcpy(@DHCP.dhcp_clientha, @localha, 6)
// //
// Clear our local IP address // Clear our local IP address
// //
memset(@localip, 4, 0) memset(@localip, 0, 4)
// //
// Set subnet mask to all 1's // Set subnet mask to all 1's
// //
memset(@subnet_mask, 4, IP_BROADCAST) memset(@subnet_mask, IP_BROADCAST, 4)
// //
// Prepare to receive DHCP packets from a server // Prepare to receive DHCP packets from a server
// //

View File

@@ -1,5 +1,5 @@
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
byte MACHID byte MACHID
@@ -422,8 +422,8 @@ export def sendIP(ipdst, proto, seglist, size)
hdr:ip_chksm = 0 hdr:ip_chksm = 0
memcpy(@hdr.ip_src, @localip, IPADR_SIZE) memcpy(@hdr.ip_src, @localip, IPADR_SIZE)
if !ipdst // IP_BROADCAST if !ipdst // IP_BROADCAST
memset(@hdr.ip_dst, IPADR_SIZE, IP_BROADCAST) memset(@hdr.ip_dst, IP_BROADCAST, IPADR_SIZE)
memset(@dstha, MAC_SIZE, MAC_BROADCAST) memset(@dstha, MAC_BROADCAST, MAC_SIZE)
else else
retry = 0 retry = 0
while ipdst=>0 <> remoteip:0 and ipdst=>2 <> remoteip:2 while ipdst=>0 <> remoteip:0 and ipdst=>2 <> remoteip:2
@@ -431,9 +431,9 @@ export def sendIP(ipdst, proto, seglist, size)
return -1 // ARP failed return -1 // ARP failed
fin fin
retry = retry + 1 retry = retry + 1
memset(@dstMAC, MAC_SIZE, MAC_BROADCAST) memset(@dstMAC, MAC_BROADCAST, MAC_SIZE)
memset(@remoteha, MAC_SIZE, 0) memset(@remoteha, 0, MAC_SIZE)
memcpy(@remoteip, ipdst, IPADR_SIZE) memcpy(@remoteip, ipdst, IPADR_SIZE)
opARP = ARP_REQST opARP = ARP_REQST
writeEther(@ARP, t_earp) writeEther(@ARP, t_earp)
for timeout = 1000 downto 0 for timeout = 1000 downto 0
@@ -500,7 +500,7 @@ export def recvUDP(localport, callback, param)
if !portsUDP if !portsUDP
portsUDP = heapalloc(MAX_UDP_NOTIFIES * t_notify) portsUDP = heapalloc(MAX_UDP_NOTIFIES * t_notify)
if !portsUDP; return -1; fin if !portsUDP; return -1; fin
memset(portsUDP, MAX_UDP_NOTIFIES * t_notify, 0) memset(portsUDP, 0, MAX_UDP_NOTIFIES * t_notify)
fin fin
// //
// Look for an existing notification on localport // Look for an existing notification on localport

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef puts predef puts
end end

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef memset predef memset
// //
// System flags: memory allocator screen holes. // System flags: memory allocator screen holes.
@@ -13,7 +13,7 @@ end
sysflags reshgr1 // Reserve HGR page 1 sysflags reshgr1 // Reserve HGR page 1
memset($2000, $2000, 0) // Clear HGR page 1 memset($2000, 0, $2000) // Clear HGR page 1
^$C054 ^$C054
^$C052 ^$C052
^$C057 ^$C057

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef memset, memcpy, getc, heapalloc, heapmark, heaprelease predef memset, memcpy, getc, heapalloc, heapmark, heaprelease
end end
import HGR1 import HGR1

View File

@@ -1,8 +1,8 @@
// //
// ICMP service // ICMP service
// //
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
byte MACHID byte MACHID

View File

@@ -1,4 +1,4 @@
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, memset, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
@@ -50,13 +50,13 @@ hmemDel(d)
memfre=hmemFre(@memlrgst);puth(memfre); putc(' '); puth(memlrgst); putln memfre=hmemFre(@memlrgst);puth(memfre); putc(' '); puth(memlrgst); putln
memptr = hmemLock(a) memptr = hmemLock(a)
if memptr; memset(memptr, MAX_MEMBLK_SIZE, $1111); fin if memptr; memset(memptr, $1111, MAX_MEMBLK_SIZE); fin
hmemUnlock(a) hmemUnlock(a)
memptr = hmemLock(b) memptr = hmemLock(b)
if memptr; memset(memptr, MAX_MEMBLK_SIZE, $2222); fin if memptr; memset(memptr, $2222, MAX_MEMBLK_SIZE); fin
hmemUnlock(b) hmemUnlock(b)
memptr = hmemLock(c) memptr = hmemLock(c)
if memptr; memset(memptr, MAX_MEMBLK_SIZE, $3333); fin if memptr; memset(memptr, $3333, MAX_MEMBLK_SIZE); fin
hmemUnlock(c) hmemUnlock(c)
memptr = hmemLock(a) memptr = hmemLock(a)
if memptr; puth(a); putc('='); puth(*(memptr + MAX_MEMBLK_SIZE - 2)); putln; fin if memptr; puth(a); putc('='); puth(*(memptr + MAX_MEMBLK_SIZE - 2)); putln; fin

View File

@@ -1,4 +1,4 @@
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, memset, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease

View File

@@ -1,91 +0,0 @@
//
// Include all imported modules and their data/functions.
//
include(stdlib.plh)
//
// Profile commands.
//
const stop = 0
const start = 1
const dump = 2
//
// Declare all global variables for this module.
//
byte profstr[] = "PLASMA Profiler\n"
byte optstr[] = "Module to profile"
byte ttlstr[] = "Total executed opcodes: $"
byte hdrstr[] = " OP COUNT\n"
byte valstr[] = '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
word cmdstr
byte opstats[260]
//
// Define functions.
//
asm equate
!SOURCE "vmsrc/plvmzp.inc"
end
asm profiler
LDA ESTKL,X
CMP #$02
BNE +
INX
LDY ESTKL,X
STY DSTL
LDY ESTKH,X
STY DSTH
+ STX ESP
JSR $03E2
LDX ESP
RTS
end
def printb(b)
putc(valstr[(b >> 4) & $0F])
putc(valstr[ b & $0F])
end
def printw(h)
putc(valstr[(h >> 12) & $0F])
putc(valstr[(h >> 8) & $0F])
putc(valstr[(h >> 4) & $0F])
putc(valstr[ h & $0F])
end
def printl(lo, hi)
printw(hi)
printw(lo)
end
def dumpstats
byte opcnt, linecnt
word longptr
profiler(@opstats, 2)
puts(@ttlstr)
printl(opstats:0, opstats:2)
putln
puts(@hdrstr)
longptr = @opstats:4
linecnt = 0
for opcnt = 0 to 63
if (longptr):0 | (longptr):2
putc('$')
printb(opcnt << 1)
putc(' ')
putc('$')
printl((longptr):0, (longptr):2)
linecnt = linecnt + 1
if linecnt % 20 == 0
getc
fin
putln
fin
longptr = longptr + 4
next
end
puts(@profstr)
puts(@optstr)
cmdstr = gets($BA)
if ^cmdstr
profiler(1)
modexec(cmdstr)
profiler(0)
dumpstats
fin
done

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef syscall, call, memset, getc, putc, puts, modaddr predef syscall, call, memset, getc, putc, puts, modaddr
byte MACHID byte MACHID
end end
@@ -38,7 +38,7 @@ byte a1err[] = "Apple 1 not supported.\n"
byte a3err[] = "Apple 3 version mismatch.\n" byte a3err[] = "Apple 3 version mismatch.\n"
byte exitmsg[] = "Press any key to exit.\n" byte exitmsg[] = "Press any key to exit.\n"
byte goodbye[] = "That's all, folks!\n" byte goodbye[] = "That's all, folks!\n"
byte stdlib[] = "STDLIB" byte cmdsys[] = "cmdsys"
// //
// Screen row address arrays. // Screen row address arrays.
// //
@@ -212,8 +212,8 @@ def a3grmode(mix)
dev_control(devcons, 17, @grcharset) dev_control(devcons, 17, @grcharset)
a3viewport(0, 20, 40, 4) a3viewport(0, 20, 40, 4)
for i = 0 to mix for i = 0 to mix
memset(txt1scrn[i], 40, $0000) // text screen memset(txt1scrn[i], $0000, 40) // text screen
memset(txt2scrn[i], 40, $0000) // color screen memset(txt2scrn[i], $0000, 40) // color screen
next next
return grscrn(@txt2scrn) // point to color screen return grscrn(@txt2scrn) // point to color screen
end end
@@ -264,8 +264,8 @@ when MACHID & $C8
gotoxy = @a3gotoxy gotoxy = @a3gotoxy
grmode = @a3grmode grmode = @a3grmode
textmode = @a3textmode textmode = @a3textmode
if modaddr(@stdlib):0 == $0010 if modaddr(@cmdsys):0 == $0010
devcons = modaddr(@stdlib).5 // devcons variable from STDLIB devcons = modaddr(@cmdsys).5 // devcons variable from cmdsys
else else
puts(@a3err) puts(@a3err)
return return

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef syscall, call, memset, getc, putc, puts, putln predef syscall, call, memset, getc, putc, puts, putln
predef memset, memcpy predef memset, memcpy
predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef syscall, call, getc, putc, puts, putln predef syscall, call, getc, putc, puts, putln
predef memset, memcpy, modaddr predef memset, memcpy, modaddr
predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail
@@ -8,7 +8,7 @@ end
const modkeep = $2000 const modkeep = $2000
const modinitkeep = $4000 const modinitkeep = $4000
byte stdlib = "STDLIB" byte cmdsys = "cmdsys"
byte[] initstr byte[] initstr
byte = " ( )\n" byte = " ( )\n"
@@ -251,7 +251,7 @@ when MACHID & $C8
home = @a3home home = @a3home
gotoxy = @a3gotoxy gotoxy = @a3gotoxy
tone = @a3tone tone = @a3tone
devcons = modaddr(@stdlib).5 // devcons variable from STDLIB devcons = modaddr(@cmdsys).5 // devcons variable from cmdsys
open = @a3open open = @a3open
read = @a3read read = @a3read
close = @a3close close = @a3close

View File

@@ -1,15 +1,14 @@
// //
// Map module // Map module
// //
import cmdsys
import STDLIB
predef syscall, call, getc, putc, puts, putln predef syscall, call, getc, putc, puts, putln
predef memset, memcpy, modaddr predef memset, memcpy, modaddr
predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail
byte MACHID byte MACHID
end end
import ROGUEIO import rogueio
const O_READ = 1 const O_READ = 1
const O_WRITE = 2 const O_WRITE = 2
const O_READ_WRITE = 3 const O_READ_WRITE = 3
@@ -173,14 +172,14 @@ export def loadmap(level)
if not viewmap if not viewmap
viewmap = heapalloc(mapsize) viewmap = heapalloc(mapsize)
fin fin
memset(viewmap, mapsize, $A0A0) memset(viewmap, $A0A0, mapsize)
// //
// Load catacomb map from file // Load catacomb map from file
// //
if not map if not map
map = heapalloc(mapsize) map = heapalloc(mapsize)
fin fin
memset(map, mapsize, $2323) // Solid walls memset(map, $2323, mapsize) // Solid walls
// //
// Set level map and read it // Set level map and read it
// //

View File

@@ -1,11 +1,11 @@
import STDLIB import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, memset, getc, gets, putc, puts, putln
predef memset, memcpy predef memset, memcpy
predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail
byte MACHID byte MACHID
end end
import ROGUEMAP import roguemap
const xcentr = 20 const xcentr = 20
const ycentr = 12 const ycentr = 12
const scrnwidth = 40 const scrnwidth = 40
@@ -37,12 +37,12 @@ import ROGUEMAP
predef loadmap, getmaptile, setmaptile, updtmaptile, lighttorches, drawmap, drawvisentity predef loadmap, getmaptile, setmaptile, updtmaptile, lighttorches, drawmap, drawvisentity
end end
import ROGUECOMBAT import roguecombat
predef fight predef fight
word entity, entities word entity, entities
end end
import ROGUEIO import rogueio
predef puti, toupper predef puti, toupper
word rnd, getkb, home, gotoxy, tone word rnd, getkb, home, gotoxy, tone
end end
@@ -229,7 +229,7 @@ def status
end end
def clearstatus def clearstatus
return memset($07D0, 40, $A0A0) return memset($07D0, $A0A0, 40)
end end
// //

View File

@@ -1,4 +1,4 @@
import STDLIB import cmdsys
predef syscall, call, memset, getc, putc, puts, putln predef syscall, call, memset, getc, putc, puts, putln
byte MACHID byte MACHID
end end
@@ -29,7 +29,7 @@ end
beep beep
//for iter = 1 to 10 //for iter = 1 to 10
memset(@flag, sizepl, TRUE) memset(@flag, TRUE, sizepl)
count = 0 count = 0
for i = 0 to size for i = 0 to size
if flag[i] if flag[i]

View File

@@ -1,8 +1,8 @@
// //
// Static IP // Static IP
// //
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease predef heapmark, heapallocalign, heapalloc, heaprelease
byte MACHID byte MACHID

View File

@@ -1,7 +1,7 @@
// //
// Include all imported modules and their data/functions. // Include all imported modules and their data/functions.
// //
include(stdlib.plh) include(cmdsys.plh)
include(testlib.plh) include(testlib.plh)
// //
// Structure definition. // Structure definition.

View File

@@ -1,7 +1,7 @@
// //
// Include all imported modules and their data/functions. // Include all imported modules and their data/functions.
// //
include(stdlib.plh) include(cmdsys.plh)
// //
// Module data. // Module data.
// //

View File

@@ -1,5 +1,5 @@
import stdlib import cmdsys
predef syscall, call, memset, getc, gets, putc, puts, putln predef syscall, call, getc, gets, putc, puts, putln
predef memset, memcpy, modaddr, modexec predef memset, memcpy, modaddr, modexec
predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail predef heapmark, heapallocalign, heapalloc, heaprelease, heapavail
byte MACHID byte MACHID

View File

@@ -90,7 +90,7 @@ word = $0450,$04D0,$0550,$05D0,$0650,$06D0,$0750,$07D0
// Editor variables // Editor variables
// //
byte nullstr = "" byte nullstr = ""
byte version = "PLASMA ][ SANDBOX VERSION 00.12" byte version = "PLASMA ][ SANDBOX VERSION 00.80"
byte errorstr = "ERROR: $" byte errorstr = "ERROR: $"
byte okstr = "OK" byte okstr = "OK"
byte outofmem = "OUT OF MEMORY!" byte outofmem = "OUT OF MEMORY!"
@@ -512,7 +512,7 @@ PARAMS: !WORD 0000
RTS RTS
end end
// SET MEMORY TO VALUE // SET MEMORY TO VALUE
// MEMSET(ADDR, SIZE, VALUE) // MEMSET(ADDR, VALUE, SIZE)
// With optimizations from Peter Ferrie // With optimizations from Peter Ferrie
// //
asm memset asm memset
@@ -520,25 +520,25 @@ asm memset
STA DSTL STA DSTL
LDA ESTKH+2,X LDA ESTKH+2,X
STA DSTH STA DSTH
LDY ESTKL+1,X LDY ESTKL,X
BEQ + BEQ +
INC ESTKH+1,X INC ESTKH,X
LDY #$00 LDY #$00
+ LDA ESTKH+1,X + LDA ESTKH,X
BEQ SETMEX BEQ SETMEX
SETMLPL CLC SETMLPL CLC
LDA ESTKL,X LDA ESTKL+1,X
SETMLPH STA (DST),Y SETMLPH STA (DST),Y
DEC ESTKL+1,X DEC ESTKL,X
BNE + BNE +
DEC ESTKH+1,X DEC ESTKH,X
BEQ SETMEX BEQ SETMEX
+ INY + INY
BNE + BNE +
INC DSTH INC DSTH
+ BCS SETMLPL + BCS SETMLPL
SEC SEC
LDA ESTKH,X LDA ESTKH+1,X
BCS SETMLPH BCS SETMLPH
SETMEX INX SETMEX INX
INX INX
@@ -1099,8 +1099,8 @@ end
def inittxtbuf def inittxtbuf
word i word i
memset(strheapmap, strheapmsz, 0) memset(strheapmap, 0, strheapmsz)
memset(strlinbuf, maxfill * 2, @nullstr) memset(strlinbuf, @nullstr, maxfill * 2)
numlines = 1 numlines = 1
cursrow = 0 cursrow = 0
curscol = 0 curscol = 0
@@ -1269,7 +1269,7 @@ def drawrow(row, ofst, strptr)
if numchars >= 40 if numchars >= 40
numchars = 40 numchars = 40
else else
memset(scrnptr + numchars, 40 - numchars, $A0A0) memset(scrnptr + numchars, $A0A0, 40 - numchars)
fin fin
return memcpy(scrnptr, strptr + ofst + 1, numchars) return memcpy(scrnptr, strptr + ofst + 1, numchars)
end end
@@ -1288,7 +1288,7 @@ def drawscrn(toprow, ofst)
if numchars >= 40 if numchars >= 40
numchars = 40 numchars = 40
else else
memset(scrnptr + numchars, 40 - numchars, $A0A0) memset(scrnptr + numchars, $A0A0, 40 - numchars)
fin fin
memcpy(scrnptr, strptr + ofst + 1, numchars) memcpy(scrnptr, strptr + ofst + 1, numchars)
next next
@@ -1616,7 +1616,7 @@ def editline(key)
if (editkey(key)) if (editkey(key))
flags = flags | changed flags = flags | changed
memset(@editstr, 80, $A0A0) memset(@editstr, $A0A0, 80)
strcpy(@editstr, strlinbuf:[cursrow]) strcpy(@editstr, strlinbuf:[cursrow])
undoline = strlinbuf:[cursrow] undoline = strlinbuf:[cursrow]
strlinbuf:[cursrow] = @editstr strlinbuf:[cursrow] = @editstr
@@ -2035,7 +2035,7 @@ def emit_word(wval)
codeptr = codeptr + 2 codeptr = codeptr + 2
end end
def emit_fill(size) def emit_fill(size)
memset(codeptr, size, 0) memset(codeptr, 0, size)
codeptr = codeptr + size codeptr = codeptr + size
end end
def emit_op(op) def emit_op(op)
@@ -4026,7 +4026,7 @@ close(0)
// //
// Set memory bitmap // Set memory bitmap
// //
memset($BF58, 24, 0) memset($BF58, 0, 24)
^$BF58 = $CF ^$BF58 = $CF
^$BF6F = $01 ^$BF6F = $01
// //

View File

@@ -39,7 +39,7 @@ predef loadmod, execmod, lookupstrmod
// //
// System variables. // System variables.
// //
word version = $0012 // 00.12 word version = $0080 // 00.80
word systemflags = 0 word systemflags = 0
word heap word heap
word symtbl, lastsym word symtbl, lastsym
@@ -66,7 +66,7 @@ word cmdptr = @hexchar // make it point to a zero
// //
// Standard Library exported functions. // Standard Library exported functions.
// //
byte stdlibstr[] = "STDLIB" byte syslibstr[] = "CMDSYS"
byte machidstr[] = "MACHID" byte machidstr[] = "MACHID"
byte putcstr[] = "PUTC" byte putcstr[] = "PUTC"
byte putlnstr[] = "PUTLN" byte putlnstr[] = "PUTLN"
@@ -112,7 +112,7 @@ word = @modadrstr, @lookupstrmod
word = @machidstr, @machid word = @machidstr, @machid
word = @argstr, @cmdptr word = @argstr, @cmdptr
word = 0 word = 0
word stdlibsym = @exports word syslibsym = @exports
// //
// CALL CFFA1 API ENTRYPOINT // CALL CFFA1 API ENTRYPOINT
// SYSCALL(CMD) // SYSCALL(CMD)
@@ -178,7 +178,7 @@ asm quit
end end
// //
// SET MEMORY TO VALUE // SET MEMORY TO VALUE
// MEMSET(ADDR, SIZE, VALUE) // MEMSET(ADDR, VALUE, SIZE)
// With optimizations from Peter Ferrie // With optimizations from Peter Ferrie
// //
asm memset asm memset
@@ -186,25 +186,25 @@ asm memset
STA DSTL STA DSTL
LDA ESTKH+2,X LDA ESTKH+2,X
STA DSTH STA DSTH
LDY ESTKL+1,X LDY ESTKL,X
BEQ + BEQ +
INC ESTKH+1,X INC ESTKH,X
LDY #$00 LDY #$00
+ LDA ESTKH+1,X + LDA ESTKH,X
BEQ SETMEX BEQ SETMEX
SETMLPL CLC SETMLPL CLC
LDA ESTKL,X LDA ESTKL+1,X
SETMLPH STA (DST),Y SETMLPH STA (DST),Y
DEC ESTKL+1,X DEC ESTKL,X
BNE + BNE +
DEC ESTKH+1,X DEC ESTKH,X
BEQ SETMEX BEQ SETMEX
+ INY + INY
BNE + BNE +
INC DSTH INC DSTH
+ BCS SETMLPL + BCS SETMLPL
SEC SEC
LDA ESTKH,X LDA ESTKH+1,X
BCS SETMLPH BCS SETMLPH
SETMEX INX SETMEX INX
INX INX
@@ -990,18 +990,18 @@ heap = *freemem
symtbl = allocheap($200) symtbl = allocheap($200)
lastsym = symtbl lastsym = symtbl
^lastsym = 0 ^lastsym = 0
stodci(@stdlibstr, heap) stodci(@syslibstr, heap)
addmod(heap, @version) addmod(heap, @version)
while *stdlibsym while *syslibsym
stodci(stdlibsym=>0, heap) stodci(syslibsym=>0, heap)
addsym(heap, stdlibsym=>2) addsym(heap, syslibsym=>2)
stdlibsym = stdlibsym + 4 syslibsym = syslibsym + 4
loop loop
// //
// Try to load autorun. // Try to load autorun.
// //
cmdptr = heap cmdptr = heap
memset(cmdptr, 128, 0) memset(cmdptr, 0, 128)
readfile(@autorun, cmdptr + 1) readfile(@autorun, cmdptr + 1)
while ^(cmdptr + ^cmdptr + 1) >= ' ' while ^(cmdptr + ^cmdptr + 1) >= ' '
^cmdptr = ^cmdptr + 1 ^cmdptr = ^cmdptr + 1

View File

@@ -33,7 +33,7 @@ predef loadmod, execmod, lookupstrmod
// //
// System variable. // System variable.
// //
word version = $0012 // 00.12 word version = $0080 // 00.80
word systemflags = 0 word systemflags = 0
word heap word heap
word xheap = $0800 word xheap = $0800
@@ -43,7 +43,7 @@ byte cmdln = "" // Overlay exported strings table
// //
// Standard Library exported functions. // Standard Library exported functions.
// //
byte stdlibstr = "STDLIB" byte syslibstr = "CMDSYS"
byte machidstr = "MACHID" byte machidstr = "MACHID"
byte sysstr = "SYSCALL" byte sysstr = "SYSCALL"
byte callstr = "CALL" byte callstr = "CALL"
@@ -91,7 +91,7 @@ word = @modadrstr, @lookupstrmod
word = @machidstr, MACHID word = @machidstr, MACHID
word = @argstr, @cmdln word = @argstr, @cmdln
word = 0 word = 0
word stdlibsym = @exports word syslibsym = @exports
// //
// String pool. // String pool.
// //
@@ -192,7 +192,7 @@ asm reboot
end end
// //
// SET MEMORY TO VALUE // SET MEMORY TO VALUE
// MEMSET(ADDR, SIZE, VALUE) // MEMSET(ADDR, VALUE, SIZE)
// With optimizations from Peter Ferrie // With optimizations from Peter Ferrie
// //
asm memset asm memset
@@ -200,25 +200,25 @@ asm memset
STA DSTL STA DSTL
LDA ESTKH+2,X LDA ESTKH+2,X
STA DSTH STA DSTH
LDY ESTKL+1,X LDY ESTKL,X
BEQ + BEQ +
INC ESTKH+1,X INC ESTKH,X
LDY #$00 LDY #$00
+ LDA ESTKH+1,X + LDA ESTKH,X
BEQ SETMEX BEQ SETMEX
SETMLPL CLC SETMLPL CLC
LDA ESTKL,X LDA ESTKL+1,X
SETMLPH STA (DST),Y SETMLPH STA (DST),Y
DEC ESTKL+1,X DEC ESTKL,X
BNE + BNE +
DEC ESTKH+1,X DEC ESTKH,X
BEQ SETMEX BEQ SETMEX
+ INY + INY
BNE + BNE +
INC DSTH INC DSTH
+ BCS SETMLPL + BCS SETMLPL
SEC SEC
LDA ESTKH,X LDA ESTKH+1,X
BCS SETMLPH BCS SETMLPH
SETMEX INX SETMEX INX
INX INX
@@ -1217,7 +1217,7 @@ def resetmemfiles
// //
// Set memory bitmap // Set memory bitmap
// //
memset($BF58, 24, 0) memset($BF58, 0, 24)
^$BF58 = $CF ^$BF58 = $CF
^$BF6F = $01 ^$BF6F = $01
end end
@@ -1273,19 +1273,19 @@ heap = *freemem
// //
// Init symbol table. // Init symbol table.
// //
stodci(@stdlibstr, heap) stodci(@syslibstr, heap)
addmod(heap, @version) addmod(heap, @version)
while *stdlibsym while *syslibsym
stodci(stdlibsym=>0, heap) stodci(syslibsym=>0, heap)
addsym(heap, stdlibsym=>2) addsym(heap, syslibsym=>2)
stdlibsym = stdlibsym + 4 syslibsym = syslibsym + 4
loop loop
// //
// Try to load autorun. // Try to load autorun.
// //
autorun = open(@autorun, iobuffer) autorun = open(@autorun, iobuffer)
if autorun > 0 if autorun > 0
cmdln = read(autorun, @stdlibstr, 128) cmdln = read(autorun, @syslibstr, 128)
close(autorun) close(autorun)
else else
// //

View File

@@ -874,7 +874,7 @@ void interp(code *ip)
} }
} }
char *stdlib_exp[] = { char *syslib_exp[] = {
"PUTC", "PUTC",
"PUTS", "PUTS",
"PUTSZ", "PUTSZ",
@@ -902,12 +902,12 @@ int main(int argc, char **argv)
/* /*
* Add default library. * Add default library.
*/ */
stodci("STDLIB", dci); stodci("CMDSYS", dci);
add_mod(dci, 0xFFFF); add_mod(dci, 0xFFFF);
for (i = 0; stdlib_exp[i]; i++) for (i = 0; syslib_exp[i]; i++)
{ {
mem_data[i] = i + 3; mem_data[i] = i + 3;
stodci(stdlib_exp[i], dci); stodci(syslib_exp[i], dci);
add_sym(dci, i); add_sym(dci, i);
} }
if (argc) if (argc)

View File

@@ -34,7 +34,7 @@ predef loadmod, execmod, lookupstrmod
// //
// System variables. // System variables.
// //
word version = $0012 // 00.12 word version = $0080 // 00.80
word systemflags = 0 word systemflags = 0
byte refcons = 0 byte refcons = 0
byte devcons = 0 byte devcons = 0
@@ -67,7 +67,7 @@ word cmdptr
// //
// Standard Library exported functions. // Standard Library exported functions.
// //
byte stdlibstr[] = "STDLIB" byte syslibstr[] = "CMDSYS"
byte machidstr[] = "MACHID" byte machidstr[] = "MACHID"
byte sysstr[] = "SYSCALL" byte sysstr[] = "SYSCALL"
byte callstr[] = "CALL" byte callstr[] = "CALL"
@@ -114,7 +114,7 @@ word = @modadrstr, @lookupstrmod
word = @machidstr, @machid word = @machidstr, @machid
word = @argstr, @cmdptr word = @argstr, @cmdptr
word = 0 word = 0
word stdlibsym = @exports word syslibsym = @exports
// //
// CALL SOS // CALL SOS
// SYSCALL(CMD, PARAMS) // SYSCALL(CMD, PARAMS)
@@ -179,7 +179,7 @@ JMPTMP JMP (TMP)
end end
// //
// SET MEMORY TO VALUE // SET MEMORY TO VALUE
// MEMSET(ADDR, SIZE, VALUE) // MEMSET(ADDR, VALUE, SIZE)
// With optimizations from Peter Ferrie // With optimizations from Peter Ferrie
// //
asm memset asm memset
@@ -187,25 +187,25 @@ asm memset
STA DSTL STA DSTL
LDA ESTKH+2,X LDA ESTKH+2,X
STA DSTH STA DSTH
LDY ESTKL+1,X LDY ESTKL,X
BEQ + BEQ +
INC ESTKH+1,X INC ESTKH,X
LDY #$00 LDY #$00
+ LDA ESTKH+1,X + LDA ESTKH,X
BEQ SETMEX BEQ SETMEX
SETMLPL CLC SETMLPL CLC
LDA ESTKL,X LDA ESTKL+1,X
SETMLPH STA (DST),Y SETMLPH STA (DST),Y
DEC ESTKL+1,X DEC ESTKL,X
BNE + BNE +
DEC ESTKH+1,X DEC ESTKH,X
BEQ SETMEX BEQ SETMEX
+ INY + INY
BNE + BNE +
INC DSTH INC DSTH
+ BCS SETMLPL + BCS SETMLPL
SEC SEC
LDA ESTKH,X LDA ESTKH+1,X
BCS SETMLPH BCS SETMLPH
SETMEX INX SETMEX INX
INX INX
@@ -1274,12 +1274,12 @@ init_cons
seg_find($00, @symtbl, @lastsym, $08, $11) seg_find($00, @symtbl, @lastsym, $08, $11)
lastsym = symtbl & $FF00 lastsym = symtbl & $FF00
xpokeb(symtbl.0, lastsym, 0) xpokeb(symtbl.0, lastsym, 0)
stodci(@stdlibstr, heap) stodci(@syslibstr, heap)
addmod(heap, @version) addmod(heap, @version)
while *stdlibsym while *syslibsym
stodci(stdlibsym=>0, heap) stodci(syslibsym=>0, heap)
addsym(heap, stdlibsym=>2) addsym(heap, syslibsym=>2)
stdlibsym = stdlibsym + 4 syslibsym = syslibsym + 4
loop loop
// //
// Try to load autorun. // Try to load autorun.