mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-08-06 11:25:07 +00:00
Fix function pointers in sandbox.
Cleanup plvm02.s source (no functional change)
This commit is contained in:
BIN
SANDBOX.PO
BIN
SANDBOX.PO
Binary file not shown.
@@ -87,8 +87,9 @@ export def main(range)
|
|||||||
wend
|
wend
|
||||||
putln
|
putln
|
||||||
end
|
end
|
||||||
|
ptr = @main
|
||||||
|
ptr(@array:6)
|
||||||
ptr = @array
|
ptr = @array
|
||||||
main(@array:6)
|
|
||||||
puti((ptr):6)
|
puti((ptr):6)
|
||||||
putln
|
putln
|
||||||
puti(ptr=>6)
|
puti(ptr=>6)
|
||||||
|
@@ -2976,7 +2976,7 @@ def parse_value(rvalue)
|
|||||||
type = type | BPTR_TYPE
|
type = type | BPTR_TYPE
|
||||||
deref = deref + 1
|
deref = deref + 1
|
||||||
fin
|
fin
|
||||||
break
|
break
|
||||||
is WPTR_TKN
|
is WPTR_TKN
|
||||||
if deref
|
if deref
|
||||||
push_op(token, 0)
|
push_op(token, 0)
|
||||||
@@ -2984,15 +2984,15 @@ def parse_value(rvalue)
|
|||||||
type = type | WPTR_TYPE
|
type = type | WPTR_TYPE
|
||||||
deref = deref + 1
|
deref = deref + 1
|
||||||
fin
|
fin
|
||||||
break
|
break
|
||||||
is AT_TKN
|
is AT_TKN
|
||||||
deref = deref - 1
|
deref = deref - 1
|
||||||
break
|
break
|
||||||
is SUB_TKN
|
is SUB_TKN
|
||||||
is COMP_TKN
|
is COMP_TKN
|
||||||
is LOGIC_NOT_TKN
|
is LOGIC_NOT_TKN
|
||||||
push_op(token, 0)
|
push_op(token, 0)
|
||||||
break
|
break
|
||||||
otherwise
|
otherwise
|
||||||
return 0
|
return 0
|
||||||
wend
|
wend
|
||||||
@@ -3005,18 +3005,18 @@ def parse_value(rvalue)
|
|||||||
is CHR_TKN
|
is CHR_TKN
|
||||||
value = constval
|
value = constval
|
||||||
type = type | CONST_TYPE
|
type = type | CONST_TYPE
|
||||||
break
|
break
|
||||||
is ID_TKN
|
is ID_TKN
|
||||||
idptr = id_lookup(tknptr, tknlen)
|
idptr = id_lookup(tknptr, tknlen)
|
||||||
if !idptr; return 0; fin
|
if !idptr; return 0; fin
|
||||||
if !(idptr->idtype); return 0; fin
|
if !(idptr->idtype); return 0; fin
|
||||||
type = type | idptr->idtype
|
type = type | idptr->idtype
|
||||||
value = idptr=>idval
|
value = idptr=>idval
|
||||||
break
|
break
|
||||||
is CLOSE_PAREN_TKN
|
is CLOSE_PAREN_TKN
|
||||||
// type = type | WORD_TYPE
|
// type = type | WORD_TYPE
|
||||||
emit_val = TRUE
|
emit_val = TRUE
|
||||||
break
|
break
|
||||||
otherwise
|
otherwise
|
||||||
return 0
|
return 0
|
||||||
wend
|
wend
|
||||||
@@ -3030,15 +3030,15 @@ def parse_value(rvalue)
|
|||||||
is NEG_TKN
|
is NEG_TKN
|
||||||
pop_op
|
pop_op
|
||||||
value = -value
|
value = -value
|
||||||
break
|
break
|
||||||
is COMP_TKN
|
is COMP_TKN
|
||||||
pop_op
|
pop_op
|
||||||
value = ~value
|
value = ~value
|
||||||
break
|
break
|
||||||
is LOGIC_NOT_TKN
|
is LOGIC_NOT_TKN
|
||||||
pop_op
|
pop_op
|
||||||
value = !value
|
value = !value
|
||||||
break
|
break
|
||||||
otherwise
|
otherwise
|
||||||
cparams = FALSE
|
cparams = FALSE
|
||||||
wend
|
wend
|
||||||
@@ -3122,7 +3122,7 @@ def parse_value(rvalue)
|
|||||||
token = DOT_TKN
|
token = DOT_TKN
|
||||||
else
|
else
|
||||||
token = COLON_TKN
|
token = COLON_TKN
|
||||||
fin
|
fin
|
||||||
//
|
//
|
||||||
// Fall through
|
// Fall through
|
||||||
//
|
//
|
||||||
@@ -3230,7 +3230,7 @@ def parse_value(rvalue)
|
|||||||
if type & LOCAL_TYPE
|
if type & LOCAL_TYPE
|
||||||
emit_llw(value + elem_offset)
|
emit_llw(value + elem_offset)
|
||||||
else
|
else
|
||||||
emit_law(value, elem_offset, type)
|
emit_law(value, elem_offset)
|
||||||
fin
|
fin
|
||||||
elsif type & PTR_TYPE
|
elsif type & PTR_TYPE
|
||||||
emit_lw
|
emit_lw
|
||||||
|
@@ -154,49 +154,9 @@ RAMDONE CLI
|
|||||||
STA LCDEFCMD,Y
|
STA LCDEFCMD,Y
|
||||||
DEY
|
DEY
|
||||||
BPL -
|
BPL -
|
||||||
;*
|
|
||||||
;* LOOK FOR STARTUP FILE
|
|
||||||
;*
|
|
||||||
; JSR PRODOS ; OPEN AUTORUN
|
|
||||||
; !BYTE $C8
|
|
||||||
; !WORD AUTOOPENPARMS
|
|
||||||
; BCS CMDEXEC
|
|
||||||
; LDA AUTOREFNUM
|
|
||||||
; STA AUTONLPARMS+1
|
|
||||||
; JSR PRODOS
|
|
||||||
; !BYTE $C9
|
|
||||||
; !WORD AUTONLPARMS
|
|
||||||
; BCS CMDEXEC
|
|
||||||
; LDA AUTOREFNUM
|
|
||||||
; STA AUTOREADPARMS+1
|
|
||||||
; JSR PRODOS
|
|
||||||
; !BYTE $CA
|
|
||||||
; !WORD AUTOREADPARMS
|
|
||||||
; BCS CMDEXEC
|
|
||||||
; LDX AUTOREADPARMS+6
|
|
||||||
; STX $01FF
|
|
||||||
;CMDEXEC JSR PRODOS
|
|
||||||
; !BYTE $CC
|
|
||||||
; !WORD AUTOCLOSEPARMS
|
|
||||||
JMP CMDENTRY
|
JMP CMDENTRY
|
||||||
GETPFXPARMS !BYTE 1
|
GETPFXPARMS !BYTE 1
|
||||||
!WORD STRBUF ; PATH STRING GOES HERE
|
!WORD STRBUF ; PATH STRING GOES HERE
|
||||||
;AUTORUN !BYTE 7,'A','U','T','O','R','U','N'
|
|
||||||
;AUTOOPENPARMS !BYTE 3
|
|
||||||
; !WORD AUTORUN
|
|
||||||
; !WORD $0800
|
|
||||||
;AUTOREFNUM !BYTE 0
|
|
||||||
;AUTONLPARMS !BYTE 3
|
|
||||||
; !BYTE 0
|
|
||||||
; !BYTE $7F
|
|
||||||
; !BYTE $0D
|
|
||||||
;AUTOREADPARMS !BYTE 4
|
|
||||||
; !BYTE 0
|
|
||||||
; !WORD $0200
|
|
||||||
; !WORD $0080
|
|
||||||
; !WORD 0
|
|
||||||
;AUTOCLOSEPARMS !BYTE 1
|
|
||||||
; !BYTE 0
|
|
||||||
;************************************************
|
;************************************************
|
||||||
;* *
|
;* *
|
||||||
;* LANGUAGE CARD RESIDENT PLASMA VM STARTS HERE *
|
;* LANGUAGE CARD RESIDENT PLASMA VM STARTS HERE *
|
||||||
|
Reference in New Issue
Block a user