9181 lines
122 KiB
ArmAsm
9181 lines
122 KiB
ArmAsm
_NST_STDLIB38ISLEAPYEAR:
|
|
FPADJ -12
|
|
LOADREG BP
|
|
STORE 4
|
|
DUP
|
|
STOREREG BP
|
|
STORE 0
|
|
LOAD.B 40 ; NEWYEAR
|
|
LOADC 4
|
|
LOADCP _MOD
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD.B 40 ; NEWYEAR
|
|
LOADC 100
|
|
LOADCP _MOD
|
|
CALL
|
|
LOADC 0
|
|
CMP NE
|
|
AND
|
|
LOAD.B 40 ; NEWYEAR
|
|
LOADC 400
|
|
LOADCP _MOD
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
STORE 8 ; ISLEAPYEAR
|
|
LOAD 8 ; ISLEAPYEAR
|
|
LOAD 4
|
|
STOREREG BP
|
|
FPADJ 12
|
|
RET
|
|
ADVANCETIME:
|
|
FPADJ -64
|
|
STORE 4 ; SECONDS
|
|
STORE 0 ; D
|
|
LOAD 4 ; SECONDS
|
|
LOADC 60
|
|
LOADCP _MOD
|
|
CALL
|
|
STORE 8 ; SECSREST
|
|
LOAD 4 ; SECONDS
|
|
LOADC 60
|
|
LOADCP _DIV
|
|
CALL
|
|
STORE 44 ; MINUTESDELTA
|
|
LOAD 44 ; MINUTESDELTA
|
|
LOADC 60
|
|
LOADCP _MOD
|
|
CALL
|
|
STORE 12 ; MINUTESREST
|
|
LOAD 0 ; D
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; SECSREST
|
|
ADD
|
|
STORE 20 ; NEWSECS
|
|
LOAD 20 ; NEWSECS
|
|
LOADC 60
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE0_STDLIB
|
|
LOAD 20 ; NEWSECS
|
|
LOADC 60
|
|
SUB
|
|
STORE 20 ; NEWSECS
|
|
LOAD 44 ; MINUTESDELTA
|
|
LOADC 1
|
|
ADD
|
|
STORE 44 ; MINUTESDELTA
|
|
LOAD 12 ; MINUTESREST
|
|
LOADC 1
|
|
ADD
|
|
STORE 12 ; MINUTESREST
|
|
_IF_ELSE0_STDLIB:
|
|
_IF_END0_STDLIB:
|
|
LOAD 0 ; D
|
|
LOADC 20
|
|
ADD
|
|
LOAD 20 ; NEWSECS
|
|
DUP
|
|
LOADC 0
|
|
LOADC 59
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 44 ; MINUTESDELTA
|
|
LOADC 60
|
|
LOADCP _DIV
|
|
CALL
|
|
STORE 48 ; HOURSDELTA
|
|
LOAD 48 ; HOURSDELTA
|
|
LOADC 24
|
|
LOADCP _MOD
|
|
CALL
|
|
STORE 16 ; HOURSREST
|
|
LOAD 0 ; D
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOAD 12 ; MINUTESREST
|
|
ADD
|
|
STORE 24 ; NEWMINUTES
|
|
LOAD 24 ; NEWMINUTES
|
|
LOADC 60
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE1_STDLIB
|
|
LOAD 24 ; NEWMINUTES
|
|
LOADC 60
|
|
SUB
|
|
STORE 24 ; NEWMINUTES
|
|
LOAD 48 ; HOURSDELTA
|
|
LOADC 1
|
|
ADD
|
|
STORE 48 ; HOURSDELTA
|
|
LOAD 16 ; HOURSREST
|
|
LOADC 1
|
|
ADD
|
|
STORE 16 ; HOURSREST
|
|
_IF_ELSE1_STDLIB:
|
|
_IF_END1_STDLIB:
|
|
LOAD 0 ; D
|
|
LOADC 16
|
|
ADD
|
|
LOAD 24 ; NEWMINUTES
|
|
DUP
|
|
LOADC 0
|
|
LOADC 59
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 48 ; HOURSDELTA
|
|
LOADC 24
|
|
LOADCP _DIV
|
|
CALL
|
|
STORE 52 ; DAYSDELTA
|
|
LOAD 0 ; D
|
|
INC 12
|
|
LOADI
|
|
LOAD 16 ; HOURSREST
|
|
ADD
|
|
STORE 28 ; NEWHOURS
|
|
LOAD 28 ; NEWHOURS
|
|
LOADC 24
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE2_STDLIB
|
|
LOAD 28 ; NEWHOURS
|
|
LOADC 24
|
|
SUB
|
|
STORE 28 ; NEWHOURS
|
|
LOAD 52 ; DAYSDELTA
|
|
LOADC 1
|
|
ADD
|
|
STORE 52 ; DAYSDELTA
|
|
_IF_ELSE2_STDLIB:
|
|
_IF_END2_STDLIB:
|
|
LOAD 0 ; D
|
|
INC 12
|
|
LOAD 28 ; NEWHOURS
|
|
DUP
|
|
LOADC 0
|
|
LOADC 23
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; D
|
|
INC 8
|
|
LOADI
|
|
LOAD 52 ; DAYSDELTA
|
|
ADD
|
|
STORE 32 ; NEWDAYS
|
|
LOAD 0 ; D
|
|
INC 4
|
|
LOADI
|
|
STORE 36 ; NEWMONTH
|
|
LOAD 0 ; D
|
|
LOADI
|
|
STORE 40 ; NEWYEAR
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB38ISLEAPYEAR
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE3_STDLIB
|
|
LOADC 1
|
|
STORE 56 ; MPDINDEX
|
|
.LBRANCH _IF_END3_STDLIB
|
|
_IF_ELSE3_STDLIB:
|
|
LOADC 0
|
|
STORE 56 ; MPDINDEX
|
|
_IF_END3_STDLIB:
|
|
LOADCP DATETIMEMTAB ; DATETIMEMTAB
|
|
LOAD 56 ; MPDINDEX
|
|
DUP
|
|
LOADC 2
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 48
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOAD 36 ; NEWMONTH
|
|
DEC 1
|
|
DUP
|
|
LOADC 12
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
ADD
|
|
LOADI
|
|
STORE 60 ; DAYSPERMONTH
|
|
_WHILE_START0_STDLIB:
|
|
LOAD 32 ; NEWDAYS
|
|
LOAD 60 ; DAYSPERMONTH
|
|
CMP GT
|
|
.LCBRANCHZ _WHILE_END0_STDLIB
|
|
LOAD 36 ; NEWMONTH
|
|
LOADC 1
|
|
ADD
|
|
STORE 36 ; NEWMONTH
|
|
LOAD 32 ; NEWDAYS
|
|
LOAD 60 ; DAYSPERMONTH
|
|
SUB
|
|
STORE 32 ; NEWDAYS
|
|
LOAD 36 ; NEWMONTH
|
|
LOADC 12
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE4_STDLIB
|
|
LOAD 40 ; NEWYEAR
|
|
LOADC 1
|
|
ADD
|
|
STORE 40 ; NEWYEAR
|
|
LOADC 1
|
|
STORE 36 ; NEWMONTH
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB38ISLEAPYEAR
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE5_STDLIB
|
|
LOADC 1
|
|
STORE 56 ; MPDINDEX
|
|
.LBRANCH _IF_END5_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE5_STDLIB:
|
|
LOADC 0
|
|
STORE 56 ; MPDINDEX
|
|
_IF_END5_STDLIB:
|
|
_IF_ELSE4_STDLIB:
|
|
_IF_END4_STDLIB:
|
|
LOADCP DATETIMEMTAB ; DATETIMEMTAB
|
|
LOAD 56 ; MPDINDEX
|
|
DUP
|
|
LOADC 2
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 48
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOAD 36 ; NEWMONTH
|
|
DEC 1
|
|
DUP
|
|
LOADC 12
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
ADD
|
|
LOADI
|
|
STORE 60 ; DAYSPERMONTH
|
|
.LBRANCH _WHILE_START0_STDLIB
|
|
_WHILE_END0_STDLIB:
|
|
LOAD 0 ; D
|
|
INC 8
|
|
LOAD 32 ; NEWDAYS
|
|
DUP
|
|
LOADC 1
|
|
LOADC 31
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; D
|
|
INC 4
|
|
LOAD 36 ; NEWMONTH
|
|
DUP
|
|
LOADC 1
|
|
LOADC 12
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; D
|
|
LOAD 40 ; NEWYEAR
|
|
STOREI
|
|
DROP
|
|
FPADJ 64
|
|
RET
|
|
GETTIME:
|
|
FPADJ -16
|
|
STORE 0 ; GETTIME
|
|
LOADCP SYSCLOCK ; SYSCLOCK
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE6_STDLIB
|
|
LOADCP SYSCLOCK ; SYSCLOCK
|
|
LOADC 2001
|
|
STOREI
|
|
DROP
|
|
LOADCP SYSCLOCK,4 ; SYSCLOCK
|
|
LOADC 1
|
|
DUP
|
|
LOADC 1
|
|
LOADC 12
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOADCP SYSCLOCK,8 ; SYSCLOCK
|
|
LOADC 1
|
|
DUP
|
|
LOADC 1
|
|
LOADC 31
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE6_STDLIB:
|
|
_IF_END6_STDLIB:
|
|
LOADCP GETTICKS
|
|
CALL
|
|
STORE 4 ; NOW
|
|
LOAD 4 ; NOW
|
|
LOADCP SYSLASTTICKS ; SYSLASTTICKS
|
|
LOADI
|
|
SUB
|
|
STORE 8 ; DELTA
|
|
LOADCP SYSLASTTICKS ; SYSLASTTICKS
|
|
LOAD 4 ; NOW
|
|
STOREI
|
|
DROP
|
|
LOAD 8 ; DELTA
|
|
LOADC 20
|
|
LOADCP _DIV
|
|
CALL
|
|
STORE 12 ; SECS
|
|
LOADCP SYSCLOCK ; SYSCLOCK
|
|
LOAD 12 ; SECS
|
|
LOADCP ADVANCETIME
|
|
CALL
|
|
LOAD 0 ; GETTIME
|
|
LOADCP SYSCLOCK ; SYSCLOCK
|
|
LOADC 6
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
LOAD 0 ; GETTIME
|
|
FPADJ 16
|
|
RET
|
|
TIMESTR:
|
|
FPADJ -44
|
|
STORE 28 ; TIMESTR
|
|
STORE 24 ; SHOWSECONDS
|
|
; D
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 6
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
LOADC 4
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 12 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 12 ; D
|
|
LOADC 10
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE7_STDLIB
|
|
LOAD 28 ; TIMESTR
|
|
LOADCP _C_S_0_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
_IF_ELSE7_STDLIB:
|
|
_IF_END7_STDLIB:
|
|
LOAD 28 ; TIMESTR
|
|
LOAD 28 ; TIMESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _C_S_1_STDLIB
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 16 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 16 ; D
|
|
LOADC 10
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE8_STDLIB
|
|
LOAD 28 ; TIMESTR
|
|
LOADC 48
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
_IF_ELSE8_STDLIB:
|
|
_IF_END8_STDLIB:
|
|
LOAD 28 ; TIMESTR
|
|
LOAD 28 ; TIMESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 24 ; SHOWSECONDS
|
|
.LCBRANCHZ _IF_ELSE9_STDLIB
|
|
LOAD 28 ; TIMESTR
|
|
LOADC 58
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
LOAD 20 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 20 ; D
|
|
LOADC 10
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE10_STDLIB
|
|
LOAD 28 ; TIMESTR
|
|
LOADC 48
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
_IF_ELSE10_STDLIB:
|
|
_IF_END10_STDLIB:
|
|
LOAD 28 ; TIMESTR
|
|
LOAD 28 ; TIMESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
_IF_ELSE9_STDLIB:
|
|
_IF_END9_STDLIB:
|
|
LOAD 28 ; TIMESTR
|
|
FPADJ 44
|
|
RET
|
|
.CPOOL
|
|
DATESTR:
|
|
FPADJ -40
|
|
STORE 24 ; DATESTR
|
|
; D
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 6
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
LOADC 4
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 0 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 24 ; DATESTR
|
|
LOAD 24 ; DATESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _C_S_2_STDLIB
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 4 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 4 ; D
|
|
LOADC 10
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE11_STDLIB
|
|
LOAD 24 ; DATESTR
|
|
LOADC 48
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
_IF_ELSE11_STDLIB:
|
|
_IF_END11_STDLIB:
|
|
LOAD 24 ; DATESTR
|
|
LOAD 24 ; DATESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 24 ; DATESTR
|
|
LOADC 45
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
LOAD 8 ; D
|
|
LOADC 0
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP INTSTR
|
|
CALL
|
|
LOAD 8 ; D
|
|
LOADC 10
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE12_STDLIB
|
|
LOAD 24 ; DATESTR
|
|
LOADC 48
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
_IF_ELSE12_STDLIB:
|
|
_IF_END12_STDLIB:
|
|
LOAD 24 ; DATESTR
|
|
LOAD 24 ; DATESTR
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; DIGITS
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 24 ; DATESTR
|
|
FPADJ 40
|
|
RET
|
|
GETTIMESTAMP:
|
|
FPADJ -12
|
|
STORE 0 ; D
|
|
LOAD 0 ; D
|
|
LOADI
|
|
LOADC 1970
|
|
SUB
|
|
LOADC 24
|
|
LOADCP _SHLM
|
|
CALL
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
LOAD 0 ; D
|
|
INC 4
|
|
LOADI
|
|
LOADC 20
|
|
LOADCP _SHLM
|
|
CALL
|
|
OR
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
LOAD 0 ; D
|
|
INC 8
|
|
LOADI
|
|
LOADC 15
|
|
LOADCP _SHLM
|
|
CALL
|
|
OR
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
LOAD 0 ; D
|
|
INC 12
|
|
LOADI
|
|
LOADC 10
|
|
LOADCP _SHLM
|
|
CALL
|
|
OR
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
LOAD 0 ; D
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 4
|
|
LOADCP _SHLM
|
|
CALL
|
|
OR
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
LOAD 0 ; D
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOADC 2
|
|
LOADCP _SHRM
|
|
CALL
|
|
OR
|
|
STORE 8 ; I
|
|
LOAD 8 ; I
|
|
STORE 4 ; GETTIMESTAMP
|
|
LOAD 4 ; GETTIMESTAMP
|
|
FPADJ 12
|
|
RET
|
|
GETDATETIME:
|
|
FPADJ -8
|
|
STORE 4 ; GETDATETIME
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
LOADC 20
|
|
ADD
|
|
LOAD 0 ; TS
|
|
LOADC 15
|
|
AND
|
|
LOADC 2
|
|
LOADCP _SHLM
|
|
CALL
|
|
DUP
|
|
LOADC 0
|
|
LOADC 59
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; TS
|
|
LOADC 4
|
|
LOADCP _SHRM
|
|
CALL
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
LOADC 16
|
|
ADD
|
|
LOAD 0 ; TS
|
|
LOADC 63
|
|
AND
|
|
DUP
|
|
LOADC 0
|
|
LOADC 59
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; TS
|
|
LOADC 6
|
|
LOADCP _SHRM
|
|
CALL
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
INC 12
|
|
LOAD 0 ; TS
|
|
LOADC 31
|
|
AND
|
|
DUP
|
|
LOADC 0
|
|
LOADC 23
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; TS
|
|
LOADC 5
|
|
LOADCP _SHRM
|
|
CALL
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
INC 8
|
|
LOAD 0 ; TS
|
|
LOADC 31
|
|
AND
|
|
DUP
|
|
LOADC 1
|
|
LOADC 31
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; TS
|
|
LOADC 5
|
|
LOADCP _SHRM
|
|
CALL
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
INC 4
|
|
LOAD 0 ; TS
|
|
LOADC 15
|
|
AND
|
|
DUP
|
|
LOADC 1
|
|
LOADC 12
|
|
LOADCP _RANGECHECK
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; TS
|
|
LOADC 4
|
|
LOADCP _SHRM
|
|
CALL
|
|
STORE 0 ; TS
|
|
LOAD 4 ; GETDATETIME
|
|
LOADC 1970
|
|
LOAD 0 ; TS
|
|
LOADC 255
|
|
AND
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; GETDATETIME
|
|
FPADJ 8
|
|
RET
|
|
.CPOOL
|
|
GETCURTIMESTAMP:
|
|
FPADJ -28
|
|
; NOW
|
|
LOADREG FP
|
|
INC 4
|
|
LOADREG FP
|
|
LOADC 24
|
|
SUB
|
|
FPADJ -24
|
|
LOADCP GETTIME
|
|
CALL
|
|
FPADJ 24
|
|
LOADC 6
|
|
FPADJ -24
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
FPADJ 24
|
|
; NOW
|
|
LOADREG FP
|
|
INC 4
|
|
LOADCP GETTIMESTAMP
|
|
CALL
|
|
STORE 0 ; GETCURTIMESTAMP
|
|
LOAD 0 ; GETCURTIMESTAMP
|
|
FPADJ 28
|
|
RET
|
|
COPY:
|
|
FPADJ -104
|
|
STORE 96 ; COPY
|
|
STORE 92 ; COUNT
|
|
STORE 88 ; INDEX
|
|
; S
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 96 ; COPY
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
; S
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 100 ; LEN
|
|
LOAD 88 ; INDEX
|
|
LOADC 1
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE13_STDLIB
|
|
LOADC 1
|
|
STORE 88 ; INDEX
|
|
_IF_ELSE13_STDLIB:
|
|
_IF_END13_STDLIB:
|
|
_WHILE_START1_STDLIB:
|
|
LOAD 92 ; COUNT
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 88 ; INDEX
|
|
LOAD 100 ; LEN
|
|
CMP LE
|
|
AND
|
|
.LCBRANCHZ _WHILE_END1_STDLIB
|
|
LOAD 96 ; COPY
|
|
LOAD 96 ; COPY
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; S
|
|
LOADREG FP
|
|
LOAD 88 ; INDEX
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADREG FP
|
|
LOADC 100
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -100
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 100
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -100
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 100
|
|
LOAD 88 ; INDEX
|
|
LOADC 1
|
|
ADD
|
|
STORE 88 ; INDEX
|
|
LOAD 92 ; COUNT
|
|
LOADC 1
|
|
SUB
|
|
STORE 92 ; COUNT
|
|
.LBRANCH _WHILE_START1_STDLIB
|
|
_WHILE_END1_STDLIB:
|
|
LOAD 96 ; COPY
|
|
FPADJ 104
|
|
RET
|
|
INSERT:
|
|
FPADJ -112
|
|
STORE 92 ; POSITION
|
|
STORE 88 ; DEST
|
|
; INS
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 92 ; POSITION
|
|
LOADC 1
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE14_STDLIB
|
|
LOADC 1
|
|
STORE 92 ; POSITION
|
|
_IF_ELSE14_STDLIB:
|
|
_IF_END14_STDLIB:
|
|
LOAD 92 ; POSITION
|
|
LOAD 88 ; DEST
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOADC 1
|
|
ADD
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE15_STDLIB
|
|
LOAD 88 ; DEST
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOADC 1
|
|
ADD
|
|
STORE 92 ; POSITION
|
|
_IF_ELSE15_STDLIB:
|
|
_IF_END15_STDLIB:
|
|
LOAD 88 ; DEST
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 104 ; FROM
|
|
LOAD 88 ; DEST
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOAD 92 ; POSITION
|
|
SUB
|
|
LOADC 1
|
|
ADD
|
|
STORE 100 ; COUNT
|
|
LOAD 104 ; FROM
|
|
; INS
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
ADD
|
|
STORE 108 ; TO_
|
|
LOAD 88 ; DEST
|
|
LOAD 88 ; DEST
|
|
LOADCP LENGTH
|
|
CALL
|
|
; INS
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
ADD
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
LOADC 1
|
|
STORE 96 ; I
|
|
LOAD 100 ; COUNT
|
|
_FOR_START0_STDLIB:
|
|
LOAD 96 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END0_STDLIB
|
|
LOAD 108 ; TO_
|
|
LOAD 88 ; DEST
|
|
LOADCP MAXLENGTH
|
|
CALL
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE16_STDLIB
|
|
LOAD 88 ; DEST
|
|
LOAD 108 ; TO_
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOAD 88 ; DEST
|
|
LOAD 104 ; FROM
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADCP _SETSTRINGCHAR
|
|
CALL
|
|
LOAD 108 ; TO_
|
|
LOADC 1
|
|
SUB
|
|
STORE 108 ; TO_
|
|
LOAD 104 ; FROM
|
|
LOADC 1
|
|
SUB
|
|
STORE 104 ; FROM
|
|
_IF_ELSE16_STDLIB:
|
|
_IF_END16_STDLIB:
|
|
LOAD 96 ; I
|
|
INC 1
|
|
STORE 96 ; I
|
|
.LBRANCH _FOR_START0_STDLIB
|
|
_FOR_END0_STDLIB:
|
|
DROP
|
|
LOAD 92 ; POSITION
|
|
STORE 108 ; TO_
|
|
; INS
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 100 ; COUNT
|
|
LOADC 1
|
|
STORE 96 ; I
|
|
LOAD 100 ; COUNT
|
|
_FOR_START1_STDLIB:
|
|
LOAD 96 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END1_STDLIB
|
|
LOAD 108 ; TO_
|
|
LOAD 88 ; DEST
|
|
LOADCP MAXLENGTH
|
|
CALL
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE17_STDLIB
|
|
LOAD 88 ; DEST
|
|
LOAD 108 ; TO_
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
; INS
|
|
LOADREG FP
|
|
LOAD 96 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADCP _SETSTRINGCHAR
|
|
CALL
|
|
LOAD 108 ; TO_
|
|
LOADC 1
|
|
ADD
|
|
STORE 108 ; TO_
|
|
_IF_ELSE17_STDLIB:
|
|
_IF_END17_STDLIB:
|
|
LOAD 96 ; I
|
|
INC 1
|
|
STORE 96 ; I
|
|
.LBRANCH _FOR_START1_STDLIB
|
|
.CPOOL
|
|
_FOR_END1_STDLIB:
|
|
DROP
|
|
FPADJ 112
|
|
RET
|
|
DELETE:
|
|
FPADJ -24
|
|
STORE 8 ; COUNT
|
|
STORE 4 ; FROM
|
|
STORE 0 ; S
|
|
LOAD 0 ; S
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 16 ; LEN
|
|
LOAD 4 ; FROM
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 4 ; FROM
|
|
LOAD 16 ; LEN
|
|
CMP LE
|
|
AND
|
|
LOAD 8 ; COUNT
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE18_STDLIB
|
|
LOAD 4 ; FROM
|
|
LOAD 8 ; COUNT
|
|
ADD
|
|
LOAD 16 ; LEN
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE19_STDLIB
|
|
LOAD 16 ; LEN
|
|
LOAD 8 ; COUNT
|
|
SUB
|
|
STORE 20 ; LAST
|
|
LOAD 4 ; FROM
|
|
STORE 12 ; I
|
|
LOAD 20 ; LAST
|
|
_FOR_START2_STDLIB:
|
|
LOAD 12 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END2_STDLIB
|
|
LOAD 0 ; S
|
|
LOAD 12 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOAD 0 ; S
|
|
LOAD 12 ; I
|
|
LOAD 8 ; COUNT
|
|
ADD
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADCP _SETSTRINGCHAR
|
|
CALL
|
|
LOAD 12 ; I
|
|
INC 1
|
|
STORE 12 ; I
|
|
.LBRANCH _FOR_START2_STDLIB
|
|
_FOR_END2_STDLIB:
|
|
DROP
|
|
.LBRANCH _IF_END19_STDLIB
|
|
_IF_ELSE19_STDLIB:
|
|
LOAD 4 ; FROM
|
|
LOADC 1
|
|
SUB
|
|
STORE 20 ; LAST
|
|
_IF_END19_STDLIB:
|
|
LOAD 0 ; S
|
|
LOAD 20 ; LAST
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
_IF_ELSE18_STDLIB:
|
|
_IF_END18_STDLIB:
|
|
FPADJ 24
|
|
RET
|
|
POS:
|
|
FPADJ -124
|
|
STORE 88 ; S
|
|
; SUBSTR
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 0
|
|
STORE 116 ; FOUND
|
|
; SUBSTR
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 96 ; SUBSTRLEN
|
|
LOAD 88 ; S
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 100 ; SLEN
|
|
LOADC 1
|
|
STORE 104 ; SEARCHPOS
|
|
LOADC 1
|
|
STORE 112 ; SUBPOS
|
|
LOAD 96 ; SUBSTRLEN
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 100 ; SLEN
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE20_STDLIB
|
|
_WHILE_START2_STDLIB:
|
|
LOAD 116 ; FOUND
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 104 ; SEARCHPOS
|
|
LOAD 100 ; SLEN
|
|
CMP LE
|
|
AND
|
|
.LCBRANCHZ _WHILE_END2_STDLIB
|
|
; SUBSTR
|
|
LOADREG FP
|
|
LOAD 112 ; SUBPOS
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOAD 88 ; S
|
|
LOAD 104 ; SEARCHPOS
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE21_STDLIB
|
|
LOAD 112 ; SUBPOS
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE22_STDLIB
|
|
LOAD 104 ; SEARCHPOS
|
|
LOADC 1
|
|
ADD
|
|
STORE 104 ; SEARCHPOS
|
|
_IF_ELSE22_STDLIB:
|
|
_IF_END22_STDLIB:
|
|
LOADC 1
|
|
STORE 112 ; SUBPOS
|
|
.LBRANCH _IF_END21_STDLIB
|
|
_IF_ELSE21_STDLIB:
|
|
LOAD 112 ; SUBPOS
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE23_STDLIB
|
|
LOAD 104 ; SEARCHPOS
|
|
STORE 92 ; POS
|
|
_IF_ELSE23_STDLIB:
|
|
_IF_END23_STDLIB:
|
|
LOAD 112 ; SUBPOS
|
|
LOAD 96 ; SUBSTRLEN
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE24_STDLIB
|
|
LOADC 1
|
|
STORE 116 ; FOUND
|
|
.LBRANCH _IF_END24_STDLIB
|
|
_IF_ELSE24_STDLIB:
|
|
LOAD 112 ; SUBPOS
|
|
LOADC 1
|
|
ADD
|
|
STORE 112 ; SUBPOS
|
|
LOAD 104 ; SEARCHPOS
|
|
LOADC 1
|
|
ADD
|
|
STORE 104 ; SEARCHPOS
|
|
_IF_END24_STDLIB:
|
|
_IF_END21_STDLIB:
|
|
.LBRANCH _WHILE_START2_STDLIB
|
|
_WHILE_END2_STDLIB:
|
|
_IF_ELSE20_STDLIB:
|
|
_IF_END20_STDLIB:
|
|
LOAD 116 ; FOUND
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE25_STDLIB
|
|
LOADC 0
|
|
STORE 92 ; POS
|
|
_IF_ELSE25_STDLIB:
|
|
_IF_END25_STDLIB:
|
|
LOAD 92 ; POS
|
|
FPADJ 124
|
|
RET
|
|
PWROFTEN:
|
|
FPADJ -20
|
|
STORE 0 ; EXP
|
|
LOAD 0 ; EXP
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE26_STDLIB
|
|
LOADC 1
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 12 ; RES
|
|
.LBRANCH _IF_END26_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE26_STDLIB:
|
|
LOAD 0 ; EXP
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE27_STDLIB
|
|
LOADC 10
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 12 ; RES
|
|
.LBRANCH _IF_END27_STDLIB
|
|
_IF_ELSE27_STDLIB:
|
|
LOADC 1
|
|
STORE 16 ; SOFAR
|
|
LOADC 10
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 12 ; RES
|
|
_WHILE_START3_STDLIB:
|
|
LOAD 16 ; SOFAR
|
|
LOADC 1
|
|
LOADCP _SHLM
|
|
CALL
|
|
LOAD 0 ; EXP
|
|
CMP LE
|
|
.LCBRANCHZ _WHILE_END3_STDLIB
|
|
LOAD 12 ; RES
|
|
LOAD 12 ; RES
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 12 ; RES
|
|
LOAD 16 ; SOFAR
|
|
LOADC 1
|
|
LOADCP _SHLM
|
|
CALL
|
|
STORE 16 ; SOFAR
|
|
.LBRANCH _WHILE_START3_STDLIB
|
|
_WHILE_END3_STDLIB:
|
|
LOAD 16 ; SOFAR
|
|
LOADC 1
|
|
ADD
|
|
STORE 8 ; I
|
|
LOAD 0 ; EXP
|
|
_FOR_START3_STDLIB:
|
|
LOAD 8 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END3_STDLIB
|
|
LOAD 12 ; RES
|
|
LOADC 10
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 12 ; RES
|
|
LOAD 8 ; I
|
|
INC 1
|
|
STORE 8 ; I
|
|
.LBRANCH _FOR_START3_STDLIB
|
|
_FOR_END3_STDLIB:
|
|
DROP
|
|
_IF_END27_STDLIB:
|
|
_IF_END26_STDLIB:
|
|
LOAD 12 ; RES
|
|
STORE 4 ; PWROFTEN
|
|
LOAD 4 ; PWROFTEN
|
|
FPADJ 20
|
|
RET
|
|
EXP:
|
|
FPADJ -28
|
|
STORE 0 ; EXPONENT
|
|
LOAD 0 ; EXPONENT
|
|
STORE 8 ; X
|
|
LOAD 8 ; X
|
|
STORE 16 ; FRC
|
|
LOADCP 1073741951
|
|
LOAD 8 ; X
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 12 ; P
|
|
LOADCP 1073741951
|
|
STORE 20 ; I
|
|
_REPEAT_START0_STDLIB:
|
|
LOAD 20 ; I
|
|
LOADCP 1073741951
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 20 ; I
|
|
LOAD 16 ; FRC
|
|
LOAD 8 ; X
|
|
LOAD 20 ; I
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 16 ; FRC
|
|
LOAD 12 ; P
|
|
STORE 24 ; L
|
|
LOAD 12 ; P
|
|
LOAD 16 ; FRC
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 12 ; P
|
|
LOAD 24 ; L
|
|
LOAD 12 ; P
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _REPEAT_START0_STDLIB
|
|
_REPEAT_END0_STDLIB:
|
|
LOAD 12 ; P
|
|
STORE 4 ; EXP
|
|
LOAD 4 ; EXP
|
|
FPADJ 28
|
|
RET
|
|
LN:
|
|
FPADJ -36
|
|
STORE 0 ; N
|
|
LOADC 0
|
|
STORE 8 ; A
|
|
LOAD 0 ; N
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE28_STDLIB
|
|
LOAD 0 ; N
|
|
LOADCP 1459366528
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
_WHILE_START4_STDLIB:
|
|
LOAD 20 ; D
|
|
LOADCP 1073741951
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _WHILE_END4_STDLIB
|
|
LOAD 8 ; A
|
|
LOADC 1
|
|
ADD
|
|
STORE 8 ; A
|
|
LOAD 20 ; D
|
|
STORE 0 ; N
|
|
LOAD 0 ; N
|
|
LOADCP 1459366528
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
.LBRANCH _WHILE_START4_STDLIB
|
|
_WHILE_END4_STDLIB:
|
|
LOAD 0 ; N
|
|
LOADCP 1459366528
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
_WHILE_START5_STDLIB:
|
|
LOAD 20 ; D
|
|
LOADCP 1073741951
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _WHILE_END5_STDLIB
|
|
LOAD 8 ; A
|
|
LOADC 1
|
|
SUB
|
|
STORE 8 ; A
|
|
LOAD 20 ; D
|
|
STORE 0 ; N
|
|
LOAD 0 ; N
|
|
LOADCP 1459366528
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
.LBRANCH _WHILE_START5_STDLIB
|
|
_WHILE_END5_STDLIB:
|
|
LOADCP 1073741951
|
|
LOAD 0 ; N
|
|
LOADC 1
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
LOAD 20 ; D
|
|
LOAD 20 ; D
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOADCP 1073741951
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 20 ; D
|
|
LOAD 20 ; D
|
|
LOAD 20 ; D
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 24 ; E
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 16 ; C
|
|
LOADC 1
|
|
STORE 12 ; B
|
|
LOADCP 1073741951
|
|
STORE 28 ; F
|
|
LOAD 16 ; C
|
|
LOADCP 1073741951
|
|
LOAD 12 ; B
|
|
LOAD 28 ; F
|
|
SWAP
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
SWAP
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 32 ; CN
|
|
_WHILE_START6_STDLIB:
|
|
LOAD 16 ; C
|
|
LOADCP 1407374958
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 32 ; CN
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _WHILE_END6_STDLIB
|
|
LOAD 32 ; CN
|
|
STORE 16 ; C
|
|
LOAD 12 ; B
|
|
LOADC 2
|
|
ADD
|
|
STORE 12 ; B
|
|
LOAD 28 ; F
|
|
LOAD 24 ; E
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 28 ; F
|
|
LOAD 16 ; C
|
|
LOADCP 1073741951
|
|
LOAD 12 ; B
|
|
LOAD 28 ; F
|
|
SWAP
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
SWAP
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 32 ; CN
|
|
.LBRANCH _WHILE_START6_STDLIB
|
|
.CPOOL
|
|
_WHILE_END6_STDLIB:
|
|
LOAD 32 ; CN
|
|
LOADCP 1073741952
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOAD 20 ; D
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 16 ; C
|
|
.LBRANCH _IF_END28_STDLIB
|
|
_IF_ELSE28_STDLIB:
|
|
LOADCP MATHERROR ; MATHERROR
|
|
LOADCP RUNTIMEERROR
|
|
CALL
|
|
_IF_END28_STDLIB:
|
|
LOAD 8 ; A
|
|
LOAD 16 ; C
|
|
SWAP
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
SWAP
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 4 ; LN
|
|
LOAD 4 ; LN
|
|
FPADJ 36
|
|
RET
|
|
SQRT:
|
|
FPADJ -28
|
|
STORE 0 ; N
|
|
LOAD 0 ; N
|
|
LOADC 0
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE29_STDLIB
|
|
LOADCP MATHERROR ; MATHERROR
|
|
LOADCP RUNTIMEERROR
|
|
CALL
|
|
.LBRANCH _IF_END29_STDLIB
|
|
_IF_ELSE29_STDLIB:
|
|
LOAD 0 ; N
|
|
LOADC 0
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE30_STDLIB
|
|
LOADC 0
|
|
STORE 4 ; SQRT
|
|
.LBRANCH _IF_END30_STDLIB
|
|
_IF_ELSE30_STDLIB:
|
|
LOAD 0 ; N
|
|
LOADCP 1073741952
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 12 ; GUESS
|
|
LOAD 0 ; N
|
|
LOADCP 100000
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 8 ; ERROR
|
|
LOADC 0
|
|
STORE 20 ; DIFF
|
|
_REPEAT_START1_STDLIB:
|
|
LOAD 20 ; DIFF
|
|
STORE 24 ; LASTDIFF
|
|
LOAD 12 ; GUESS
|
|
LOAD 0 ; N
|
|
LOAD 12 ; GUESS
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOADC -1
|
|
LOADCP SHIFTFLOAT32
|
|
CALL
|
|
STORE 16 ; NEWGUESS
|
|
LOAD 16 ; NEWGUESS
|
|
LOAD 12 ; GUESS
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOADCP $7FFFFFFF
|
|
AND
|
|
STORE 20 ; DIFF
|
|
LOAD 16 ; NEWGUESS
|
|
STORE 12 ; GUESS
|
|
LOAD 20 ; DIFF
|
|
LOAD 8 ; ERROR
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
LOAD 12 ; GUESS
|
|
LOADC 0
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
LOAD 20 ; DIFF
|
|
LOAD 24 ; LASTDIFF
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START1_STDLIB
|
|
_REPEAT_END1_STDLIB:
|
|
LOAD 12 ; GUESS
|
|
STORE 4 ; SQRT
|
|
_IF_END30_STDLIB:
|
|
_IF_END29_STDLIB:
|
|
LOAD 4 ; SQRT
|
|
FPADJ 28
|
|
RET
|
|
FLOOR:
|
|
FPADJ -8
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE31_STDLIB
|
|
LOAD 0 ; X
|
|
LOADCP 2147483518
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
_IF_ELSE31_STDLIB:
|
|
_IF_END31_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADCP _TRUNCFLOAT32
|
|
CALL
|
|
STORE 4 ; FLOOR
|
|
LOAD 4 ; FLOOR
|
|
FPADJ 8
|
|
RET
|
|
ROUND:
|
|
FPADJ -8
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADCP 1073741950
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOADCP _TRUNCFLOAT32
|
|
CALL
|
|
STORE 4 ; ROUND
|
|
LOAD 4 ; ROUND
|
|
FPADJ 8
|
|
RET
|
|
_NST_STDLIB56SIN_TAYLOR:
|
|
FPADJ -28
|
|
LOADREG BP
|
|
STORE 4
|
|
DUP
|
|
STOREREG BP
|
|
STORE 0
|
|
STORE 8 ; X
|
|
LOAD 8 ; X
|
|
LOAD 8 ; X
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 16 ; X2
|
|
LOAD 16 ; X2
|
|
LOAD 8 ; X
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 20 ; X3
|
|
LOAD 20 ; X3
|
|
LOAD 16 ; X2
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 24 ; X5
|
|
LOAD 8 ; X
|
|
LOAD 20 ; X3
|
|
LOADCP 1610612865
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 24 ; X5
|
|
LOADCP 2013266053
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 12 ; SIN_TAYLOR
|
|
LOAD 12 ; SIN_TAYLOR
|
|
LOAD 4
|
|
STOREREG BP
|
|
FPADJ 28
|
|
RET
|
|
SIN:
|
|
FPADJ -24
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE32_STDLIB
|
|
LOAD 0 ; X
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
LOADC 1
|
|
STORE 20 ; INVERT
|
|
.LBRANCH _IF_END32_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE32_STDLIB:
|
|
LOADC 0
|
|
STORE 20 ; INVERT
|
|
_IF_END32_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADCP 1367130494
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP FLOOR
|
|
CALL
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 8 ; K
|
|
LOAD 0 ; X
|
|
LOAD 8 ; K
|
|
LOADCP 1686629759
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
LOAD 8 ; K
|
|
LOADCP _TRUNCFLOAT32
|
|
CALL
|
|
LOADC 4
|
|
LOADCP _MOD
|
|
CALL
|
|
STORE 16 ; QUADRANT
|
|
LOAD 16 ; QUADRANT
|
|
_CASE_0_0_0_STDLIB:
|
|
DUP
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCH _CASE_0_0_1_STDLIB
|
|
_CASE_0_0M_STDLIB:
|
|
LOAD 12 ; Y
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB56SIN_TAYLOR
|
|
CALL
|
|
STORE 4 ; SIN
|
|
.LBRANCH _CASE_0_STDLIB_END
|
|
_CASE_0_0_1_STDLIB:
|
|
_CASE_0_1_0_STDLIB:
|
|
DUP
|
|
LOADC 1
|
|
CMP NE
|
|
.LCBRANCH _CASE_0_1_1_STDLIB
|
|
_CASE_0_1M_STDLIB:
|
|
LOADCP 1686629759
|
|
LOAD 12 ; Y
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB56SIN_TAYLOR
|
|
CALL
|
|
STORE 4 ; SIN
|
|
.LBRANCH _CASE_0_STDLIB_END
|
|
_CASE_0_1_1_STDLIB:
|
|
_CASE_0_2_0_STDLIB:
|
|
DUP
|
|
LOADC 2
|
|
CMP NE
|
|
.LCBRANCH _CASE_0_2_1_STDLIB
|
|
_CASE_0_2M_STDLIB:
|
|
LOAD 12 ; Y
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB56SIN_TAYLOR
|
|
CALL
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 4 ; SIN
|
|
.LBRANCH _CASE_0_STDLIB_END
|
|
_CASE_0_2_1_STDLIB:
|
|
_CASE_0_3_0_STDLIB:
|
|
DUP
|
|
LOADC 3
|
|
CMP NE
|
|
.LCBRANCH _CASE_0_3_1_STDLIB
|
|
_CASE_0_3M_STDLIB:
|
|
LOADCP 1686629759
|
|
LOAD 12 ; Y
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB56SIN_TAYLOR
|
|
CALL
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 4 ; SIN
|
|
.LBRANCH _CASE_0_STDLIB_END
|
|
_CASE_0_3_1_STDLIB:
|
|
_CASE_0_4_STDLIB:
|
|
_CASE_0_STDLIB_END:
|
|
DROP
|
|
LOAD 20 ; INVERT
|
|
.LCBRANCHZ _IF_ELSE33_STDLIB
|
|
LOAD 4 ; SIN
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 4 ; SIN
|
|
_IF_ELSE33_STDLIB:
|
|
_IF_END33_STDLIB:
|
|
LOAD 4 ; SIN
|
|
FPADJ 24
|
|
RET
|
|
COS:
|
|
FPADJ -8
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADCP 1686629759
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOADCP SIN
|
|
CALL
|
|
STORE 4 ; COS
|
|
LOAD 4 ; COS
|
|
FPADJ 8
|
|
RET
|
|
ARCTAN:
|
|
FPADJ -20
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE34_STDLIB
|
|
LOAD 0 ; X
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
LOADC 1
|
|
STORE 16 ; NEGATE
|
|
.LBRANCH _IF_END34_STDLIB
|
|
_IF_ELSE34_STDLIB:
|
|
LOADC 0
|
|
STORE 16 ; NEGATE
|
|
_IF_END34_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADCP 1149555328
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE35_STDLIB
|
|
LOADCP 1686629759
|
|
STORE 8 ; Y
|
|
LOADCP 1073741951
|
|
LOAD 0 ; X
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
.LBRANCH _IF_END35_STDLIB
|
|
_IF_ELSE35_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADCP 1779033725
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE36_STDLIB
|
|
LOADCP 1686629758
|
|
STORE 8 ; Y
|
|
LOAD 0 ; X
|
|
LOADCP 1073741951
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 0 ; X
|
|
LOADCP 1073741951
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
.LBRANCH _IF_END36_STDLIB
|
|
_IF_ELSE36_STDLIB:
|
|
LOADC 0
|
|
STORE 8 ; Y
|
|
_IF_END36_STDLIB:
|
|
_IF_END35_STDLIB:
|
|
LOAD 0 ; X
|
|
LOAD 0 ; X
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 12 ; Z
|
|
LOAD 8 ; Y
|
|
LOADCP 1383622779
|
|
LOAD 12 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1192084092
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 12 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1716072316
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 12 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1431639165
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 12 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOAD 0 ; X
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 0 ; X
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 8 ; Y
|
|
LOAD 16 ; NEGATE
|
|
.LCBRANCHZ _IF_ELSE37_STDLIB
|
|
LOAD 8 ; Y
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 8 ; Y
|
|
_IF_ELSE37_STDLIB:
|
|
_IF_END37_STDLIB:
|
|
LOAD 8 ; Y
|
|
STORE 4 ; ARCTAN
|
|
LOAD 4 ; ARCTAN
|
|
FPADJ 20
|
|
RET
|
|
.CPOOL
|
|
TANCOT:
|
|
FPADJ -32
|
|
STORE 4 ; DOCOT
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE38_STDLIB
|
|
LOAD 0 ; X
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
LOADC 1
|
|
STORE 28 ; NEGATE
|
|
.LBRANCH _IF_END38_STDLIB
|
|
_IF_ELSE38_STDLIB:
|
|
LOADC 0
|
|
STORE 28 ; NEGATE
|
|
_IF_END38_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADCP 1073741964
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE39_STDLIB
|
|
LOADCP MATHERROR ; MATHERROR
|
|
LOADCP RUNTIMEERROR
|
|
CALL
|
|
_IF_ELSE39_STDLIB:
|
|
_IF_END39_STDLIB:
|
|
LOADCP 1367130495
|
|
LOAD 0 ; X
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _TRUNCFLOAT32
|
|
CALL
|
|
STORE 24 ; J
|
|
LOAD 24 ; J
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
LOAD 24 ; J
|
|
LOADC 1
|
|
AND
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE40_STDLIB
|
|
LOAD 24 ; J
|
|
LOADC 1
|
|
ADD
|
|
STORE 24 ; J
|
|
LOAD 12 ; Y
|
|
LOADCP 1073741951
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
_IF_ELSE40_STDLIB:
|
|
_IF_END40_STDLIB:
|
|
LOAD 0 ; X
|
|
LOAD 12 ; Y
|
|
LOADCP 1686110334
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 12 ; Y
|
|
LOADCP 2127560562
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOAD 12 ; Y
|
|
LOADCP 1360049254
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
STORE 16 ; Z
|
|
LOAD 16 ; Z
|
|
LOAD 16 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 20 ; ZZ
|
|
LOAD 0 ; X
|
|
LOADCP 1759218545
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE41_STDLIB
|
|
LOADCP 1289919864
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1715195510
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1678826105
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1835197562
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1145794172
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOADCP 1431648125
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
LOAD 20 ; ZZ
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOAD 16 ; Z
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOAD 16 ; Z
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
.LBRANCH _IF_END41_STDLIB
|
|
_IF_ELSE41_STDLIB:
|
|
LOAD 16 ; Z
|
|
STORE 12 ; Y
|
|
_IF_END41_STDLIB:
|
|
LOAD 24 ; J
|
|
LOADC 2
|
|
AND
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE42_STDLIB
|
|
LOAD 4 ; DOCOT
|
|
.LCBRANCHZ _IF_ELSE43_STDLIB
|
|
LOAD 12 ; Y
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
.LBRANCH _IF_END43_STDLIB
|
|
_IF_ELSE43_STDLIB:
|
|
LOADCP -1073741697
|
|
LOAD 12 ; Y
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
_IF_END43_STDLIB:
|
|
.LBRANCH _IF_END42_STDLIB
|
|
_IF_ELSE42_STDLIB:
|
|
LOAD 4 ; DOCOT
|
|
.LCBRANCHZ _IF_ELSE44_STDLIB
|
|
LOADCP 1073741951
|
|
LOAD 12 ; Y
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
_IF_ELSE44_STDLIB:
|
|
_IF_END44_STDLIB:
|
|
_IF_END42_STDLIB:
|
|
LOAD 28 ; NEGATE
|
|
.LCBRANCHZ _IF_ELSE45_STDLIB
|
|
LOAD 12 ; Y
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 12 ; Y
|
|
_IF_ELSE45_STDLIB:
|
|
_IF_END45_STDLIB:
|
|
LOAD 12 ; Y
|
|
STORE 8 ; TANCOT
|
|
LOAD 8 ; TANCOT
|
|
FPADJ 32
|
|
RET
|
|
TAN:
|
|
FPADJ -8
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP TANCOT
|
|
CALL
|
|
STORE 4 ; TAN
|
|
LOAD 4 ; TAN
|
|
FPADJ 8
|
|
RET
|
|
COTAN:
|
|
FPADJ -8
|
|
STORE 0 ; X
|
|
LOAD 0 ; X
|
|
LOADC 1
|
|
LOADCP TANCOT
|
|
CALL
|
|
STORE 4 ; COTAN
|
|
LOAD 4 ; COTAN
|
|
FPADJ 8
|
|
RET
|
|
.CPOOL
|
|
FILLCHAR:
|
|
FPADJ -28
|
|
STORE 12 ; THECHAR
|
|
STORE 8 ; COUNT
|
|
STORE 4 ; STARTPOS
|
|
STORE 0 ; S
|
|
LOAD 0 ; S
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 20 ; ENDPOS
|
|
LOAD 0 ; S
|
|
LOAD 20 ; ENDPOS
|
|
LOAD 8 ; COUNT
|
|
ADD
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
LOAD 4 ; STARTPOS
|
|
LOAD 8 ; COUNT
|
|
ADD
|
|
STORE 24 ; P1
|
|
LOAD 20 ; ENDPOS
|
|
STORE 16 ; I
|
|
LOAD 4 ; STARTPOS
|
|
_FOR_START4_STDLIB:
|
|
LOAD 16 ; I
|
|
OVER
|
|
CMP LT
|
|
.LCBRANCH _FOR_END4_STDLIB
|
|
LOAD 0 ; S
|
|
LOAD 16 ; I
|
|
LOAD 8 ; COUNT
|
|
ADD
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOAD 0 ; S
|
|
LOAD 16 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADCP _SETSTRINGCHAR
|
|
CALL
|
|
LOAD 16 ; I
|
|
DEC 1
|
|
STORE 16 ; I
|
|
.LBRANCH _FOR_START4_STDLIB
|
|
_FOR_END4_STDLIB:
|
|
DROP
|
|
LOAD 24 ; P1
|
|
LOADC 1
|
|
SUB
|
|
STORE 24 ; P1
|
|
LOAD 4 ; STARTPOS
|
|
STORE 16 ; I
|
|
LOAD 24 ; P1
|
|
_FOR_START5_STDLIB:
|
|
LOAD 16 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END5_STDLIB
|
|
LOAD 0 ; S
|
|
LOAD 16 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOAD 12 ; THECHAR
|
|
LOADCP _SETSTRINGCHAR
|
|
CALL
|
|
LOAD 16 ; I
|
|
INC 1
|
|
STORE 16 ; I
|
|
.LBRANCH _FOR_START5_STDLIB
|
|
_FOR_END5_STDLIB:
|
|
DROP
|
|
FPADJ 28
|
|
RET
|
|
INTSTR:
|
|
FPADJ -44
|
|
STORE 8 ; RBUF
|
|
STORE 4 ; FIELDWIDTH
|
|
STORE 0 ; V
|
|
LOADC 12
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOADC 0
|
|
STORE 40 ; ISNEGATIVE
|
|
LOAD 0 ; V
|
|
LOADCP -2147483648
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE46_STDLIB
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP _C_S_4_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOADC 1
|
|
STORE 40 ; ISNEGATIVE
|
|
.LBRANCH _IF_END46_STDLIB
|
|
_IF_ELSE46_STDLIB:
|
|
LOAD 0 ; V
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE47_STDLIB
|
|
LOADC 1
|
|
STORE 40 ; ISNEGATIVE
|
|
LOAD 0 ; V
|
|
NOT
|
|
INC 1
|
|
STORE 0 ; V
|
|
_IF_ELSE47_STDLIB:
|
|
_IF_END47_STDLIB:
|
|
_REPEAT_START2_STDLIB:
|
|
LOAD 0 ; V
|
|
LOADC 10
|
|
LOADCP _MOD
|
|
CALL
|
|
STORE 32 ; DIGIT
|
|
LOAD 0 ; V
|
|
LOADC 10
|
|
LOADCP _DIV
|
|
CALL
|
|
STORE 0 ; V
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOAD 32 ; DIGIT
|
|
LOADC 48
|
|
ADD
|
|
LOADREG FP
|
|
LOADC 104
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -104
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -104
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOAD 0 ; V
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _REPEAT_START2_STDLIB
|
|
_REPEAT_END2_STDLIB:
|
|
_IF_END46_STDLIB:
|
|
LOAD 8 ; RBUF
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOAD 40 ; ISNEGATIVE
|
|
.LCBRANCHZ _IF_ELSE48_STDLIB
|
|
LOAD 8 ; RBUF
|
|
LOAD 8 ; RBUF
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _C_S_2_STDLIB
|
|
FPADJ -88
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
_IF_ELSE48_STDLIB:
|
|
_IF_END48_STDLIB:
|
|
LOAD 4 ; FIELDWIDTH
|
|
LOAD 8 ; RBUF
|
|
LOADCP LENGTH
|
|
CALL
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE49_STDLIB
|
|
LOAD 8 ; RBUF
|
|
LOADC 1
|
|
LOAD 4 ; FIELDWIDTH
|
|
LOAD 8 ; RBUF
|
|
LOADCP LENGTH
|
|
CALL
|
|
SUB
|
|
LOADC 32
|
|
LOADCP FILLCHAR
|
|
CALL
|
|
_IF_ELSE49_STDLIB:
|
|
_IF_END49_STDLIB:
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 36 ; I
|
|
LOADC 1
|
|
_FOR_START6_STDLIB:
|
|
LOAD 36 ; I
|
|
OVER
|
|
CMP LT
|
|
.LCBRANCH _FOR_END6_STDLIB
|
|
LOAD 8 ; RBUF
|
|
LOAD 8 ; RBUF
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -88
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 88
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
; BUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOAD 36 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADREG FP
|
|
LOADC 100
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -100
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 100
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -100
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 100
|
|
LOAD 36 ; I
|
|
DEC 1
|
|
STORE 36 ; I
|
|
.LBRANCH _FOR_START6_STDLIB
|
|
.CPOOL
|
|
_FOR_END6_STDLIB:
|
|
DROP
|
|
FPADJ 44
|
|
RET
|
|
REALSTR:
|
|
FPADJ -32
|
|
STORE 12 ; S
|
|
STORE 8 ; D
|
|
STORE 4 ; W
|
|
STORE 0 ; X
|
|
LOAD 4 ; W
|
|
LOADC 0
|
|
CMP LT
|
|
LOAD 8 ; D
|
|
LOADC 0
|
|
CMP LT
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE50_STDLIB
|
|
LOADC 0
|
|
STORE 4 ; W
|
|
LOADC 0
|
|
STORE 8 ; D
|
|
_IF_ELSE50_STDLIB:
|
|
_IF_END50_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE51_STDLIB
|
|
LOAD 0 ; X
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 0 ; X
|
|
LOAD 12 ; S
|
|
LOADCP _C_S_2_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
.LBRANCH _IF_END51_STDLIB
|
|
_IF_ELSE51_STDLIB:
|
|
LOAD 12 ; S
|
|
LOADCP _C_S_5_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
_IF_END51_STDLIB:
|
|
LOADC 0
|
|
STORE 24 ; EXPX
|
|
LOAD 0 ; X
|
|
STORE 28 ; NORMX
|
|
LOAD 0 ; X
|
|
LOADCP 1073741951
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE52_STDLIB
|
|
_WHILE_START7_STDLIB:
|
|
LOAD 28 ; NORMX
|
|
LOADCP 1342177410
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _WHILE_END7_STDLIB
|
|
LOAD 24 ; EXPX
|
|
LOADC 1
|
|
ADD
|
|
STORE 24 ; EXPX
|
|
LOAD 0 ; X
|
|
LOAD 24 ; EXPX
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
.LBRANCH _WHILE_START7_STDLIB
|
|
_WHILE_END7_STDLIB:
|
|
.LBRANCH _IF_END52_STDLIB
|
|
_IF_ELSE52_STDLIB:
|
|
LOAD 0 ; X
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE53_STDLIB
|
|
_REPEAT_START3_STDLIB:
|
|
LOAD 24 ; EXPX
|
|
LOADC 1
|
|
SUB
|
|
STORE 24 ; EXPX
|
|
LOAD 0 ; X
|
|
LOAD 24 ; EXPX
|
|
NOT
|
|
INC 1
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
LOAD 28 ; NORMX
|
|
LOADC 1
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _REPEAT_START3_STDLIB
|
|
_REPEAT_END3_STDLIB:
|
|
_IF_ELSE53_STDLIB:
|
|
_IF_END53_STDLIB:
|
|
_IF_END52_STDLIB:
|
|
LOAD 8 ; D
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 8 ; D
|
|
LOAD 24 ; EXPX
|
|
ADD
|
|
LOADC 1
|
|
ADD
|
|
LOADC 7
|
|
CMP GT
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE54_STDLIB
|
|
LOAD 28 ; NORMX
|
|
LOADC 5
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADC 7
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
.LBRANCH _IF_END54_STDLIB
|
|
_IF_ELSE54_STDLIB:
|
|
LOAD 8 ; D
|
|
LOAD 24 ; EXPX
|
|
ADD
|
|
LOADC 1
|
|
ADD
|
|
LOADC 0
|
|
LOADCP _CMPINTFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE55_STDLIB
|
|
LOAD 28 ; NORMX
|
|
LOADC 5
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOAD 8 ; D
|
|
LOAD 24 ; EXPX
|
|
ADD
|
|
LOADC 1
|
|
ADD
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
_IF_ELSE55_STDLIB:
|
|
_IF_END55_STDLIB:
|
|
_IF_END54_STDLIB:
|
|
LOAD 28 ; NORMX
|
|
LOADCP 1342177410
|
|
LOADCP _CMPFLOAT32
|
|
CALL
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE56_STDLIB
|
|
LOAD 24 ; EXPX
|
|
LOADC 1
|
|
ADD
|
|
STORE 24 ; EXPX
|
|
LOAD 28 ; NORMX
|
|
LOADCP 1342177410
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
_IF_ELSE56_STDLIB:
|
|
_IF_END56_STDLIB:
|
|
LOADC 1
|
|
STORE 16 ; J
|
|
LOADC 7
|
|
_FOR_START7_STDLIB:
|
|
LOAD 16 ; J
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END7_STDLIB
|
|
LOAD 28 ; NORMX
|
|
LOADCP _TRUNCFLOAT32
|
|
CALL
|
|
STORE 20 ; TRUNCX
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOAD 20 ; TRUNCX
|
|
LOADC 48
|
|
ADD
|
|
LOADREG FP
|
|
LOADC 104
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -104
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -104
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOAD 28 ; NORMX
|
|
LOAD 20 ; TRUNCX
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _SUBFLOAT32
|
|
CALL
|
|
LOADC 1
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 28 ; NORMX
|
|
LOAD 16 ; J
|
|
INC 1
|
|
STORE 16 ; J
|
|
.LBRANCH _FOR_START7_STDLIB
|
|
.CPOOL
|
|
_FOR_END7_STDLIB:
|
|
DROP
|
|
LOAD 8 ; D
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 24 ; EXPX
|
|
LOADC 6
|
|
CMP GE
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE57_STDLIB
|
|
LOADC 46
|
|
LOADREG FP
|
|
DEC 12
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
LOAD 12 ; S
|
|
LOADC 3
|
|
FPADJ -12
|
|
LOADCP INSERT
|
|
CALL
|
|
FPADJ 12
|
|
LOAD 24 ; EXPX
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE58_STDLIB
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOADCP _C_S_6_STDLIB
|
|
FPADJ -92
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -92
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOAD 24 ; EXPX
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE59_STDLIB
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOADCP _C_S_2_STDLIB
|
|
FPADJ -92
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -92
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOAD 24 ; EXPX
|
|
NOT
|
|
INC 1
|
|
STORE 24 ; EXPX
|
|
_IF_ELSE59_STDLIB:
|
|
_IF_END59_STDLIB:
|
|
LOAD 24 ; EXPX
|
|
LOADC 9
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE60_STDLIB
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOAD 24 ; EXPX
|
|
LOADC 10
|
|
FPADJ -92
|
|
LOADCP _DIV
|
|
CALL
|
|
FPADJ 92
|
|
LOADC 48
|
|
ADD
|
|
LOADREG FP
|
|
LOADC 104
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -104
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -104
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 104
|
|
_IF_ELSE60_STDLIB:
|
|
_IF_END60_STDLIB:
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOAD 24 ; EXPX
|
|
LOADC 10
|
|
FPADJ -92
|
|
LOADCP _MOD
|
|
CALL
|
|
FPADJ 92
|
|
LOADC 48
|
|
ADD
|
|
LOADREG FP
|
|
LOADC 104
|
|
SUB
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
FPADJ -104
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 104
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -104
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 104
|
|
_IF_ELSE58_STDLIB:
|
|
_IF_END58_STDLIB:
|
|
.LBRANCH _IF_END57_STDLIB
|
|
_IF_ELSE57_STDLIB:
|
|
LOAD 24 ; EXPX
|
|
LOADC 0
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE61_STDLIB
|
|
LOADC 46
|
|
LOADREG FP
|
|
DEC 12
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
LOAD 12 ; S
|
|
LOADC 3
|
|
LOAD 24 ; EXPX
|
|
ADD
|
|
FPADJ -12
|
|
LOADCP INSERT
|
|
CALL
|
|
FPADJ 12
|
|
LOADC 1
|
|
STORE 16 ; J
|
|
LOAD 8 ; D
|
|
LOADC 5
|
|
LOAD 24 ; EXPX
|
|
SUB
|
|
SUB
|
|
_FOR_START8_STDLIB:
|
|
LOAD 16 ; J
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END8_STDLIB
|
|
LOAD 12 ; S
|
|
LOAD 12 ; S
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
SWAP
|
|
LOADC 80
|
|
FPADJ -92
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
LOADCP _C_S_5_STDLIB
|
|
FPADJ -92
|
|
LOADCP _APPENDSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOADREG FP
|
|
LOADC 92
|
|
SUB
|
|
FPADJ -92
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 92
|
|
LOAD 16 ; J
|
|
INC 1
|
|
STORE 16 ; J
|
|
.LBRANCH _FOR_START8_STDLIB
|
|
.CPOOL
|
|
_FOR_END8_STDLIB:
|
|
DROP
|
|
LOAD 12 ; S
|
|
LOADC 3
|
|
LOAD 24 ; EXPX
|
|
ADD
|
|
LOAD 8 ; D
|
|
ADD
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
.LBRANCH _IF_END61_STDLIB
|
|
_IF_ELSE61_STDLIB:
|
|
LOADCP _C_S_7_STDLIB
|
|
LOAD 12 ; S
|
|
LOADC 2
|
|
LOADCP INSERT
|
|
CALL
|
|
LOADC 1
|
|
STORE 16 ; J
|
|
LOAD 24 ; EXPX
|
|
NOT
|
|
INC 1
|
|
LOADC 1
|
|
SUB
|
|
_FOR_START9_STDLIB:
|
|
LOAD 16 ; J
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END9_STDLIB
|
|
LOADC 48
|
|
LOADREG FP
|
|
DEC 12
|
|
SWAP
|
|
OVER
|
|
LOADCP _CHARTOSTRING
|
|
CALL
|
|
LOAD 12 ; S
|
|
LOADC 4
|
|
FPADJ -12
|
|
LOADCP INSERT
|
|
CALL
|
|
FPADJ 12
|
|
LOAD 16 ; J
|
|
INC 1
|
|
STORE 16 ; J
|
|
.LBRANCH _FOR_START9_STDLIB
|
|
_FOR_END9_STDLIB:
|
|
DROP
|
|
LOAD 12 ; S
|
|
LOADC 3
|
|
LOAD 8 ; D
|
|
ADD
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
_IF_END61_STDLIB:
|
|
_IF_END57_STDLIB:
|
|
LOAD 4 ; W
|
|
LOAD 12 ; S
|
|
LOADCP LENGTH
|
|
CALL
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE62_STDLIB
|
|
LOAD 12 ; S
|
|
LOADC 1
|
|
LOAD 4 ; W
|
|
LOAD 12 ; S
|
|
LOADCP LENGTH
|
|
CALL
|
|
SUB
|
|
LOADC 32
|
|
LOADCP FILLCHAR
|
|
CALL
|
|
_IF_ELSE62_STDLIB:
|
|
_IF_END62_STDLIB:
|
|
FPADJ 32
|
|
RET
|
|
ISDIGIT:
|
|
FPADJ -8
|
|
STORE 0 ; ACHAR
|
|
LOAD 0 ; ACHAR
|
|
LOADC 48
|
|
CMP GE
|
|
LOAD 0 ; ACHAR
|
|
LOADC 57
|
|
CMP LE
|
|
AND
|
|
STORE 4 ; ISDIGIT
|
|
LOAD 4 ; ISDIGIT
|
|
FPADJ 8
|
|
RET
|
|
ISWHITE:
|
|
FPADJ -8
|
|
STORE 0 ; ACHAR
|
|
LOAD 0 ; ACHAR
|
|
LOADCP _C_A_5_STDLIB
|
|
LOADC 4
|
|
LOADCP _ISINTINARRAY
|
|
CALL
|
|
STORE 4 ; ISWHITE
|
|
LOAD 4 ; ISWHITE
|
|
FPADJ 8
|
|
RET
|
|
SKIPWHITE:
|
|
FPADJ -16
|
|
STORE 4 ; I
|
|
STORE 0 ; S
|
|
LOAD 0 ; S
|
|
DUP
|
|
LOADI
|
|
SWAP
|
|
INC 8
|
|
_FOR_START10_STDLIB:
|
|
OVER
|
|
.LCBRANCHZ _FOR_END10_STDLIB
|
|
DUP
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 12 ; C
|
|
LOAD 12 ; C
|
|
LOADCP _C_A_6_STDLIB
|
|
LOADC 4
|
|
LOADCP _ISINTINARRAY
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE63_STDLIB
|
|
.LBRANCH _FOR_END10_STDLIB
|
|
.LBRANCH _IF_END63_STDLIB
|
|
_IF_ELSE63_STDLIB:
|
|
LOAD 4 ; I
|
|
LOAD 4 ; I
|
|
LOADI
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
_IF_END63_STDLIB:
|
|
INC 1
|
|
SWAP
|
|
DEC 1
|
|
SWAP
|
|
.LBRANCH _FOR_START10_STDLIB
|
|
_FOR_END10_STDLIB:
|
|
DROP
|
|
DROP
|
|
FPADJ 16
|
|
RET
|
|
INTVAL:
|
|
FPADJ -124
|
|
STORE 92 ; CODE
|
|
STORE 88 ; VALUE
|
|
; S
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 1
|
|
STORE 96 ; I
|
|
LOADC 0
|
|
STORE 100 ; V
|
|
; S
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 104 ; L
|
|
LOADC 0
|
|
STORE 116 ; NEGATE
|
|
LOADC 0
|
|
STORE 120 ; VALID
|
|
; S
|
|
LOADREG FP
|
|
; I
|
|
LOADREG FP
|
|
LOADC 96
|
|
ADD
|
|
LOADCP SKIPWHITE
|
|
CALL
|
|
LOAD 92 ; CODE
|
|
LOAD 104 ; L
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
; S
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOAD 96 ; I
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE64_STDLIB
|
|
; S
|
|
LOADREG FP
|
|
LOAD 96 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 112 ; DIGIT
|
|
LOAD 112 ; DIGIT
|
|
LOADC 45
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE65_STDLIB
|
|
LOADC 1
|
|
STORE 116 ; NEGATE
|
|
LOAD 96 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE 96 ; I
|
|
.LBRANCH _IF_END65_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE65_STDLIB:
|
|
LOAD 112 ; DIGIT
|
|
LOADC 43
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE66_STDLIB
|
|
LOAD 96 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE 96 ; I
|
|
_IF_ELSE66_STDLIB:
|
|
_IF_END66_STDLIB:
|
|
_IF_END65_STDLIB:
|
|
_WHILE_START8_STDLIB:
|
|
LOAD 96 ; I
|
|
LOAD 104 ; L
|
|
CMP LE
|
|
.LCBRANCHZ _WHILE_END8_STDLIB
|
|
; S
|
|
LOADREG FP
|
|
LOAD 96 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 112 ; DIGIT
|
|
LOAD 112 ; DIGIT
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
STORE 120 ; VALID
|
|
LOAD 120 ; VALID
|
|
.LCBRANCHZ _IF_ELSE67_STDLIB
|
|
LOAD 112 ; DIGIT
|
|
LOADC 48
|
|
SUB
|
|
STORE 108 ; D
|
|
LOAD 100 ; V
|
|
LOADC 10
|
|
LOADCP _MUL
|
|
CALL
|
|
LOAD 108 ; D
|
|
ADD
|
|
STORE 100 ; V
|
|
.LBRANCH _IF_END67_STDLIB
|
|
_IF_ELSE67_STDLIB:
|
|
LOAD 92 ; CODE
|
|
LOAD 96 ; I
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _WHILE_END8_STDLIB
|
|
_IF_END67_STDLIB:
|
|
LOAD 96 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE 96 ; I
|
|
.LBRANCH _WHILE_START8_STDLIB
|
|
_WHILE_END8_STDLIB:
|
|
_IF_ELSE64_STDLIB:
|
|
_IF_END64_STDLIB:
|
|
LOAD 120 ; VALID
|
|
LOAD 96 ; I
|
|
LOAD 104 ; L
|
|
LOADC 1
|
|
ADD
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE68_STDLIB
|
|
LOAD 116 ; NEGATE
|
|
.LCBRANCHZ _IF_ELSE69_STDLIB
|
|
LOAD 88 ; VALUE
|
|
LOAD 100 ; V
|
|
NOT
|
|
INC 1
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END69_STDLIB
|
|
_IF_ELSE69_STDLIB:
|
|
LOAD 88 ; VALUE
|
|
LOAD 100 ; V
|
|
STOREI
|
|
DROP
|
|
_IF_END69_STDLIB:
|
|
LOAD 92 ; CODE
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE68_STDLIB:
|
|
_IF_END68_STDLIB:
|
|
FPADJ 124
|
|
RET
|
|
_NST_STDLIB70NEXTCHAR:
|
|
FPADJ -12
|
|
LOADREG BP
|
|
STORE 4
|
|
DUP
|
|
STOREREG BP
|
|
STORE 0
|
|
LOAD.B 116 ; I
|
|
; S
|
|
LOADREG BP
|
|
LOADCP LENGTH
|
|
CALL
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE70_STDLIB
|
|
; S
|
|
LOADREG BP
|
|
LOAD.B 116 ; I
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 8 ; NEXTCHAR
|
|
LOAD.B 116 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE.B 116 ; I
|
|
LOADC 0
|
|
STORE.B 120 ; FEOF
|
|
.LBRANCH _IF_END70_STDLIB
|
|
_IF_ELSE70_STDLIB:
|
|
LOADC 0
|
|
STORE 8 ; NEXTCHAR
|
|
LOADC 1
|
|
STORE.B 120 ; FEOF
|
|
_IF_END70_STDLIB:
|
|
LOAD 8 ; NEXTCHAR
|
|
LOAD 4
|
|
STOREREG BP
|
|
FPADJ 12
|
|
RET
|
|
_NST_STDLIB71SREADINT:
|
|
FPADJ -28
|
|
LOADREG BP
|
|
STORE 4
|
|
DUP
|
|
STOREREG BP
|
|
STORE 0
|
|
STORE 8 ; E
|
|
LOADC 4
|
|
; DIGITS
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 8 ; E
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
; DIGITS
|
|
LOADREG FP
|
|
INC 12
|
|
; S
|
|
LOADREG BP
|
|
LOAD.B 116 ; I
|
|
LOADC 4
|
|
LOADC 80
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP COPY
|
|
CALL
|
|
FPADJ 88
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
; DIGITS
|
|
LOADREG FP
|
|
INC 12
|
|
LOAD 8 ; E
|
|
; STATUS
|
|
LOADREG FP
|
|
LOADC 24
|
|
ADD
|
|
LOADCP INTVAL
|
|
CALL
|
|
LOAD 24 ; STATUS
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE71_STDLIB
|
|
LOAD.B 116 ; I
|
|
LOAD 24 ; STATUS
|
|
ADD
|
|
STORE.B 116 ; I
|
|
LOADC 0
|
|
STORE.B 104 ; XVALID
|
|
.LBRANCH _IF_END71_STDLIB
|
|
_IF_ELSE71_STDLIB:
|
|
LOAD.B 116 ; I
|
|
; DIGITS
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP LENGTH
|
|
CALL
|
|
ADD
|
|
STORE.B 116 ; I
|
|
_IF_END71_STDLIB:
|
|
LOAD 4
|
|
STOREREG BP
|
|
FPADJ 28
|
|
RET
|
|
REALVAL:
|
|
FPADJ -128
|
|
STORE 92 ; CODE
|
|
STORE 88 ; V
|
|
; S
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 1
|
|
STORE 116 ; I
|
|
LOADC 0
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
LOADC 0
|
|
STORE 100 ; NEG
|
|
LOADC 0
|
|
STORE 104 ; XVALID
|
|
; S
|
|
LOADREG FP
|
|
; I
|
|
LOADREG FP
|
|
LOADC 116
|
|
ADD
|
|
LOADCP SKIPWHITE
|
|
CALL
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB70NEXTCHAR
|
|
CALL
|
|
STORE 96 ; CH
|
|
LOAD 96 ; CH
|
|
LOADC 43
|
|
CMP EQ
|
|
LOAD 96 ; CH
|
|
LOADC 45
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE72_STDLIB
|
|
LOAD 96 ; CH
|
|
LOADC 45
|
|
CMP EQ
|
|
STORE 100 ; NEG
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB70NEXTCHAR
|
|
CALL
|
|
STORE 96 ; CH
|
|
_IF_ELSE72_STDLIB:
|
|
_IF_END72_STDLIB:
|
|
_WHILE_START9_STDLIB:
|
|
LOAD 96 ; CH
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
LOAD 120 ; FEOF
|
|
LOADC 0
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _WHILE_END9_STDLIB
|
|
LOADC 1
|
|
STORE 104 ; XVALID
|
|
LOAD 112 ; X
|
|
LOADC 10
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
LOAD 96 ; CH
|
|
LOADC 48
|
|
SUB
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB70NEXTCHAR
|
|
CALL
|
|
STORE 96 ; CH
|
|
.LBRANCH _WHILE_START9_STDLIB
|
|
.CPOOL
|
|
_WHILE_END9_STDLIB:
|
|
LOAD 120 ; FEOF
|
|
.LCBRANCHZ _IF_ELSE73_STDLIB
|
|
.LBRANCH _L69EXT_STDLIB
|
|
_IF_ELSE73_STDLIB:
|
|
_IF_END73_STDLIB:
|
|
LOADC -1
|
|
STORE 108 ; IPOT
|
|
LOAD 96 ; CH
|
|
LOADC 46
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE74_STDLIB
|
|
LOADC 0
|
|
STORE 108 ; IPOT
|
|
_REPEAT_START4_STDLIB:
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB70NEXTCHAR
|
|
CALL
|
|
STORE 96 ; CH
|
|
LOAD 96 ; CH
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE75_STDLIB
|
|
LOADC 1
|
|
STORE 104 ; XVALID
|
|
LOAD 108 ; IPOT
|
|
LOADC 1
|
|
ADD
|
|
STORE 108 ; IPOT
|
|
LOAD 96 ; CH
|
|
LOADC 48
|
|
SUB
|
|
LOADCP _INTTOFLOAT32
|
|
CALL
|
|
LOAD 108 ; IPOT
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 124 ; DIGITVAL
|
|
LOAD 112 ; X
|
|
LOAD 124 ; DIGITVAL
|
|
LOADCP _ADDFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
_IF_ELSE75_STDLIB:
|
|
_IF_END75_STDLIB:
|
|
LOAD 120 ; FEOF
|
|
LOAD 96 ; CH
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START4_STDLIB
|
|
_REPEAT_END4_STDLIB:
|
|
LOAD 120 ; FEOF
|
|
.LCBRANCHZ _IF_ELSE76_STDLIB
|
|
.LBRANCH _L69EXT_STDLIB
|
|
_IF_ELSE76_STDLIB:
|
|
_IF_END76_STDLIB:
|
|
_IF_ELSE74_STDLIB:
|
|
_IF_END74_STDLIB:
|
|
LOAD 96 ; CH
|
|
LOADC 101
|
|
CMP EQ
|
|
LOAD 96 ; CH
|
|
LOADC 69
|
|
CMP EQ
|
|
OR
|
|
LOAD 104 ; XVALID
|
|
LOAD 108 ; IPOT
|
|
LOADC 0
|
|
CMP LT
|
|
OR
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE77_STDLIB
|
|
; IPOT
|
|
LOADREG FP
|
|
LOADC 108
|
|
ADD
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB71SREADINT
|
|
CALL
|
|
LOAD 120 ; FEOF
|
|
.LCBRANCHZ _IF_ELSE78_STDLIB
|
|
.LBRANCH _L69EXT_STDLIB
|
|
_IF_ELSE78_STDLIB:
|
|
_IF_END78_STDLIB:
|
|
LOAD 108 ; IPOT
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE79_STDLIB
|
|
LOAD 112 ; X
|
|
LOAD 108 ; IPOT
|
|
LOADCP ABS
|
|
CALL
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _DIVFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
.LBRANCH _IF_END79_STDLIB
|
|
_IF_ELSE79_STDLIB:
|
|
LOAD 112 ; X
|
|
LOAD 108 ; IPOT
|
|
LOADCP PWROFTEN
|
|
CALL
|
|
LOADCP _MULFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
_IF_END79_STDLIB:
|
|
_IF_ELSE77_STDLIB:
|
|
_IF_END77_STDLIB:
|
|
_L69EXT_STDLIB:
|
|
LOAD 116 ; I
|
|
; S
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE80_STDLIB
|
|
LOADC 0
|
|
STORE 104 ; XVALID
|
|
_IF_ELSE80_STDLIB:
|
|
_IF_END80_STDLIB:
|
|
LOAD 104 ; XVALID
|
|
.LCBRANCHZ _IF_ELSE81_STDLIB
|
|
LOAD 100 ; NEG
|
|
.LCBRANCHZ _IF_ELSE82_STDLIB
|
|
LOAD 112 ; X
|
|
LOADCP _NEGFLOAT32
|
|
CALL
|
|
STORE 112 ; X
|
|
_IF_ELSE82_STDLIB:
|
|
_IF_END82_STDLIB:
|
|
LOAD 88 ; V
|
|
LOAD 112 ; X
|
|
STOREI
|
|
DROP
|
|
LOAD 92 ; CODE
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END81_STDLIB
|
|
_IF_ELSE81_STDLIB:
|
|
LOAD 92 ; CODE
|
|
LOAD 116 ; I
|
|
LOADC 1
|
|
SUB
|
|
STOREI
|
|
DROP
|
|
_IF_END81_STDLIB:
|
|
FPADJ 128
|
|
RET
|
|
CHECKERROR:
|
|
FPADJ -4
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE83_STDLIB
|
|
LOAD 0 ; FIL
|
|
INC 8
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE84_STDLIB
|
|
LOADCP IOERRORDESC ; IOERRORDESC
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADI
|
|
DUP
|
|
LOADC 12
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 28
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 20
|
|
OVER
|
|
LOADCP _INITSTRING
|
|
CALL
|
|
LOADCP RUNTIMEERROR
|
|
CALL
|
|
.LBRANCH _IF_END84_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE84_STDLIB:
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
INC 8
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_END84_STDLIB:
|
|
_IF_ELSE83_STDLIB:
|
|
_IF_END83_STDLIB:
|
|
FPADJ 4
|
|
RET
|
|
HANDLEBACKSPACE:
|
|
FPADJ -24
|
|
STORE 8 ; BYTESREMOVED
|
|
STORE 4 ; BUF
|
|
STORE 0 ; AFILE
|
|
LOAD 8 ; BYTESREMOVED
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; BUF
|
|
LOADCP LENGTH
|
|
CALL
|
|
STORE 12 ; LEN
|
|
LOAD 12 ; LEN
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE85_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE86_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 8
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 32
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 8
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
_IF_ELSE86_STDLIB:
|
|
_IF_END86_STDLIB:
|
|
_REPEAT_START5_STDLIB:
|
|
LOAD 4 ; BUF
|
|
LOAD 12 ; LEN
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 16 ; REMOVEDCHAR
|
|
LOAD 8 ; BYTESREMOVED
|
|
LOAD 8 ; BYTESREMOVED
|
|
LOADI
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; LEN
|
|
LOADC 1
|
|
SUB
|
|
STORE 12 ; LEN
|
|
LOAD 16 ; REMOVEDCHAR
|
|
LOADC 192
|
|
AND
|
|
STORE 20 ; HIGHBITS
|
|
LOAD 20 ; HIGHBITS
|
|
LOADC 128
|
|
CMP NE
|
|
LOAD 12 ; LEN
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START5_STDLIB
|
|
_REPEAT_END5_STDLIB:
|
|
LOAD 4 ; BUF
|
|
LOAD 12 ; LEN
|
|
LOADCP _SETSTRINGLENGTH
|
|
CALL
|
|
_IF_ELSE85_STDLIB:
|
|
_IF_END85_STDLIB:
|
|
FPADJ 24
|
|
RET
|
|
_NST_STDLIB75ISSEPARATOR:
|
|
FPADJ -16
|
|
LOADREG BP
|
|
STORE 4
|
|
DUP
|
|
STOREREG BP
|
|
STORE 0
|
|
STORE 8 ; ACHAR
|
|
LOAD.B 4 ; MODE
|
|
_CASE_1_0_0_STDLIB:
|
|
DUP
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCH _CASE_1_0_1_STDLIB
|
|
_CASE_1_0M_STDLIB:
|
|
LOAD 8 ; ACHAR
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
LOAD 8 ; ACHAR
|
|
LOADC 45
|
|
CMP EQ
|
|
OR
|
|
LOADC 0
|
|
CMP EQ
|
|
STORE 12 ; ISSEPARATOR
|
|
.LBRANCH _CASE_1_STDLIB_END
|
|
_CASE_1_0_1_STDLIB:
|
|
_CASE_1_1_0_STDLIB:
|
|
DUP
|
|
LOADC 1
|
|
CMP NE
|
|
.LCBRANCH _CASE_1_1_1_STDLIB
|
|
_CASE_1_1M_STDLIB:
|
|
LOAD 8 ; ACHAR
|
|
LOADCP ISDIGIT
|
|
CALL
|
|
LOAD 8 ; ACHAR
|
|
LOADCP _C_A_7_STDLIB
|
|
LOADC 5
|
|
LOADCP _ISINTINARRAY
|
|
CALL
|
|
OR
|
|
LOADC 0
|
|
CMP EQ
|
|
STORE 12 ; ISSEPARATOR
|
|
.LBRANCH _CASE_1_STDLIB_END
|
|
_CASE_1_1_1_STDLIB:
|
|
_CASE_1_2_0_STDLIB:
|
|
DUP
|
|
LOADC 2
|
|
CMP NE
|
|
.LCBRANCH _CASE_1_2_1_STDLIB
|
|
_CASE_1_2M_STDLIB:
|
|
LOAD 8 ; ACHAR
|
|
LOADC 13
|
|
CMP EQ
|
|
LOAD 8 ; ACHAR
|
|
LOADC 10
|
|
CMP EQ
|
|
OR
|
|
STORE 12 ; ISSEPARATOR
|
|
.LBRANCH _CASE_1_STDLIB_END
|
|
_CASE_1_2_1_STDLIB:
|
|
_CASE_1_3_STDLIB:
|
|
_CASE_1_STDLIB_END:
|
|
DROP
|
|
LOAD 12 ; ISSEPARATOR
|
|
LOAD 4
|
|
STOREREG BP
|
|
FPADJ 16
|
|
RET
|
|
FSCANBUF:
|
|
FPADJ -40
|
|
STORE 8 ; BUF
|
|
STORE 4 ; MODE
|
|
STORE 0 ; AFILE
|
|
LOAD 8 ; BUF
|
|
LOADCP MAXLENGTH
|
|
CALL
|
|
STORE 16 ; MAXBYTES
|
|
LOADC 0
|
|
STORE 12 ; BYTESREAD
|
|
LOADC 0
|
|
STORE 24 ; DONE
|
|
LOADC 0
|
|
STORE 36 ; SKIPCHAR
|
|
LOAD 8 ; BUF
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
STORE 32 ; ISCHANNEL
|
|
_REPEAT_START6_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADCP EOF
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE87_STDLIB
|
|
LOADC 1
|
|
STORE 24 ; DONE
|
|
.LBRANCH _IF_END87_STDLIB
|
|
_IF_ELSE87_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADCP FREADCHAR
|
|
CALL
|
|
STORE 20 ; ACHAR
|
|
LOAD 32 ; ISCHANNEL
|
|
.LCBRANCHZ _IF_ELSE88_STDLIB
|
|
LOAD 20 ; ACHAR
|
|
LOADC 127
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE89_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; AFILE
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
OR
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE90_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOAD 8 ; BUF
|
|
; BYTESREMOVED
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP HANDLEBACKSPACE
|
|
CALL
|
|
LOAD 12 ; BYTESREAD
|
|
LOAD 28 ; BYTESREMOVED
|
|
SUB
|
|
STORE 12 ; BYTESREAD
|
|
_IF_ELSE90_STDLIB:
|
|
_IF_END90_STDLIB:
|
|
LOADC 1
|
|
STORE 36 ; SKIPCHAR
|
|
.LBRANCH _IF_END89_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE89_STDLIB:
|
|
LOAD 20 ; ACHAR
|
|
LOADC 4
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE91_STDLIB
|
|
LOADC 1
|
|
STORE 36 ; SKIPCHAR
|
|
.LBRANCH _IF_END91_STDLIB
|
|
_IF_ELSE91_STDLIB:
|
|
LOADC 0
|
|
STORE 36 ; SKIPCHAR
|
|
_IF_END91_STDLIB:
|
|
_IF_END89_STDLIB:
|
|
_IF_ELSE88_STDLIB:
|
|
_IF_END88_STDLIB:
|
|
LOAD 36 ; SKIPCHAR
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE92_STDLIB
|
|
LOAD 20 ; ACHAR
|
|
LOADREG FP
|
|
LOADCP _NST_STDLIB75ISSEPARATOR
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE93_STDLIB
|
|
LOADC 1
|
|
STORE 24 ; DONE
|
|
LOAD 0 ; AFILE
|
|
LOAD 20 ; ACHAR
|
|
LOADCP PUSHBACK
|
|
CALL
|
|
.LBRANCH _IF_END93_STDLIB
|
|
_IF_ELSE93_STDLIB:
|
|
LOAD 8 ; BUF
|
|
LOAD 20 ; ACHAR
|
|
LOADCP APPENDCHAR
|
|
CALL
|
|
LOAD 12 ; BYTESREAD
|
|
LOADC 1
|
|
ADD
|
|
STORE 12 ; BYTESREAD
|
|
_IF_END93_STDLIB:
|
|
_IF_ELSE92_STDLIB:
|
|
_IF_END92_STDLIB:
|
|
_IF_END87_STDLIB:
|
|
LOAD 12 ; BYTESREAD
|
|
LOAD 16 ; MAXBYTES
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE94_STDLIB
|
|
LOADC 1
|
|
STORE 24 ; DONE
|
|
_IF_ELSE94_STDLIB:
|
|
_IF_END94_STDLIB:
|
|
LOAD 24 ; DONE
|
|
.LCBRANCHZ _REPEAT_START6_STDLIB
|
|
_REPEAT_END6_STDLIB:
|
|
FPADJ 40
|
|
RET
|
|
FSKIPWHITE:
|
|
FPADJ -8
|
|
STORE 0 ; F
|
|
_REPEAT_START7_STDLIB:
|
|
LOAD 0 ; F
|
|
LOADCP FREADCHAR
|
|
CALL
|
|
STORE 4 ; C
|
|
LOAD 0 ; F
|
|
LOADCP EOF
|
|
CALL
|
|
LOAD 4 ; C
|
|
LOADCP ISWHITE
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START7_STDLIB
|
|
_REPEAT_END7_STDLIB:
|
|
LOAD 0 ; F
|
|
LOAD 4 ; C
|
|
LOADCP PUSHBACK
|
|
CALL
|
|
FPADJ 8
|
|
RET
|
|
FREADINT:
|
|
FPADJ -44
|
|
STORE 4 ; F
|
|
STORE 0 ; V
|
|
LOADC 24
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADC -1
|
|
STORE 40 ; ERRPOS
|
|
LOAD 4 ; F
|
|
LOADCP FSKIPWHITE
|
|
CALL
|
|
LOAD 4 ; F
|
|
LOADC 0
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOADCP FSCANBUF
|
|
CALL
|
|
LOAD 4 ; F
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE95_STDLIB
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOAD 0 ; V
|
|
; ERRPOS
|
|
LOADREG FP
|
|
LOADC 40
|
|
ADD
|
|
LOADCP INTVAL
|
|
CALL
|
|
_IF_ELSE95_STDLIB:
|
|
_IF_END95_STDLIB:
|
|
LOAD 40 ; ERRPOS
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE96_STDLIB
|
|
LOAD 4 ; F
|
|
LOADC 10
|
|
LOADCP FILEERROR
|
|
CALL
|
|
LOAD 4 ; F
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
_IF_ELSE96_STDLIB:
|
|
_IF_END96_STDLIB:
|
|
FPADJ 44
|
|
RET
|
|
FREADREAL:
|
|
FPADJ -60
|
|
STORE 4 ; F
|
|
STORE 0 ; V
|
|
LOADC 40
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 4 ; F
|
|
LOADCP FSKIPWHITE
|
|
CALL
|
|
LOAD 4 ; F
|
|
LOADC 1
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOADCP FSCANBUF
|
|
CALL
|
|
LOAD 4 ; F
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE97_STDLIB
|
|
; BUF
|
|
LOADREG FP
|
|
INC 8
|
|
LOAD 0 ; V
|
|
; ERRPOS
|
|
LOADREG FP
|
|
LOADC 56
|
|
ADD
|
|
LOADCP REALVAL
|
|
CALL
|
|
_IF_ELSE97_STDLIB:
|
|
_IF_END97_STDLIB:
|
|
LOAD 56 ; ERRPOS
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE98_STDLIB
|
|
LOAD 4 ; F
|
|
LOADC 10
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE98_STDLIB:
|
|
_IF_END98_STDLIB:
|
|
FPADJ 60
|
|
RET
|
|
FREADSTRING:
|
|
FPADJ -8
|
|
STORE 4 ; F
|
|
STORE 0 ; S
|
|
LOAD 4 ; F
|
|
LOADC 2
|
|
LOAD 0 ; S
|
|
LOADCP FSCANBUF
|
|
CALL
|
|
FPADJ 8
|
|
RET
|
|
SKIPEOLN:
|
|
FPADJ -8
|
|
STORE 0 ; AFILE
|
|
_REPEAT_START8_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADCP FREADCHAR
|
|
CALL
|
|
STORE 4 ; ACHAR
|
|
LOAD 4 ; ACHAR
|
|
LOADC 13
|
|
CMP EQ
|
|
LOAD 0 ; AFILE
|
|
LOADCP EOF
|
|
CALL
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START8_STDLIB
|
|
_REPEAT_END8_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE99_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADCP EOF
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE100_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADCP FREADCHAR
|
|
CALL
|
|
STORE 4 ; ACHAR
|
|
LOAD 4 ; ACHAR
|
|
LOADC 10
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE101_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOAD 4 ; ACHAR
|
|
LOADCP PUSHBACK
|
|
CALL
|
|
_IF_ELSE101_STDLIB:
|
|
_IF_END101_STDLIB:
|
|
_IF_ELSE100_STDLIB:
|
|
_IF_END100_STDLIB:
|
|
_IF_ELSE99_STDLIB:
|
|
_IF_END99_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
.CPOOL
|
|
SETDEFAULTVOLUME:
|
|
FPADJ -44
|
|
; VOLNAME
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; VOLNAME
|
|
LOADREG FP
|
|
LOADCP FINDVOLUME
|
|
CALL
|
|
STORE 40 ; VOLID
|
|
LOAD 40 ; VOLID
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE102_STDLIB
|
|
LOADCP DEFAULTVOLUME ; DEFAULTVOLUME
|
|
; VOLNAME
|
|
LOADREG FP
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOAD 40 ; VOLID
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE102_STDLIB:
|
|
_IF_END102_STDLIB:
|
|
FPADJ 44
|
|
RET
|
|
ADDPARTITIONS:
|
|
FPADJ -20
|
|
STORE 8 ; ISLAST
|
|
STORE 4 ; PARTBLK
|
|
STORE 0 ; DEVID
|
|
LOADC 0
|
|
STORE 12 ; PARTNO
|
|
LOADC 0
|
|
STORE 12 ; PARTNO
|
|
LOADC 7
|
|
_FOR_START11_STDLIB:
|
|
LOAD 12 ; PARTNO
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END11_STDLIB
|
|
LOAD 4 ; PARTBLK
|
|
LOAD 12 ; PARTNO
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
SHL 2
|
|
SHL 2
|
|
ADD
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
STORE 16 ; FLAGS
|
|
LOADC 2
|
|
LOAD 16 ; FLAGS
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE103_STDLIB
|
|
LOAD 8 ; ISLAST
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE103_STDLIB:
|
|
_IF_END103_STDLIB:
|
|
LOADC 0
|
|
LOAD 16 ; FLAGS
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE104_STDLIB
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADI
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADI
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOAD 4 ; PARTBLK
|
|
LOAD 12 ; PARTNO
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
SHL 2
|
|
SHL 2
|
|
ADD
|
|
LOADC 16
|
|
FPADJ -4
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 64
|
|
ADD
|
|
LOAD 0 ; DEVID
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 68
|
|
ADD
|
|
LOAD 12 ; PARTNO
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 72
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 76
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOADC -1
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 88
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE104_STDLIB:
|
|
_IF_END104_STDLIB:
|
|
LOAD 12 ; PARTNO
|
|
INC 1
|
|
STORE 12 ; PARTNO
|
|
.LBRANCH _FOR_START11_STDLIB
|
|
_FOR_END11_STDLIB:
|
|
DROP
|
|
FPADJ 20
|
|
RET
|
|
READPARTITIONS:
|
|
LOADREG FP
|
|
LOADC 528
|
|
SUB
|
|
STOREREG FP
|
|
STORE 0 ; DEVID
|
|
; PARTBLK
|
|
LOADREG FP
|
|
INC 8
|
|
LOADC 512
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC 0
|
|
STORE 4 ; BLKNO
|
|
LOADC 0
|
|
STORE 520 ; ISLAST
|
|
LOADC 0
|
|
STORE 524 ; ERROR
|
|
LOADC 0
|
|
STORE 4 ; BLKNO
|
|
LOADC 7
|
|
_FOR_START12_STDLIB:
|
|
LOAD 4 ; BLKNO
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END12_STDLIB
|
|
LOAD 4 ; BLKNO
|
|
; PARTBLK
|
|
LOADREG FP
|
|
INC 8
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 524
|
|
ADD
|
|
LOAD 0 ; DEVID
|
|
LOADCP READPARTBLK
|
|
CALL
|
|
LOAD 524 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE105_STDLIB
|
|
LOAD 0 ; DEVID
|
|
; PARTBLK
|
|
LOADREG FP
|
|
INC 8
|
|
; ISLAST
|
|
LOADREG FP
|
|
LOADC 520
|
|
ADD
|
|
LOADCP ADDPARTITIONS
|
|
CALL
|
|
.LBRANCH _IF_END105_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE105_STDLIB:
|
|
LOADCP _C_S_8_STDLIB
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
LOAD 4 ; BLKNO
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITEINT
|
|
CALL
|
|
LOADCP NEWLINESTR
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
_IF_END105_STDLIB:
|
|
LOAD 520 ; ISLAST
|
|
LOAD 524 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE106_STDLIB
|
|
.LBRANCH _FOR_END12_STDLIB
|
|
_IF_ELSE106_STDLIB:
|
|
_IF_END106_STDLIB:
|
|
LOAD 4 ; BLKNO
|
|
INC 1
|
|
STORE 4 ; BLKNO
|
|
.LBRANCH _FOR_START12_STDLIB
|
|
_FOR_END12_STDLIB:
|
|
DROP
|
|
LOADREG FP
|
|
LOADC 528
|
|
ADD
|
|
STOREREG FP
|
|
RET
|
|
READDEVICE:
|
|
FPADJ -16
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; BUF
|
|
STORE 4 ; BLOCKNO
|
|
STORE 0 ; DEVICEID
|
|
LOAD 4 ; BLOCKNO
|
|
LOAD 8 ; BUF
|
|
LOAD 12 ; ERROR
|
|
LOAD 0 ; DEVICEID
|
|
LOADCP READBLOCK
|
|
CALL
|
|
FPADJ 16
|
|
RET
|
|
WRITEDEVICE:
|
|
FPADJ -16
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; BUF
|
|
STORE 4 ; BLOCKNO
|
|
STORE 0 ; DEVICEID
|
|
LOAD 4 ; BLOCKNO
|
|
LOAD 8 ; BUF
|
|
LOAD 12 ; ERROR
|
|
LOAD 0 ; DEVICEID
|
|
LOADCP WRITEBLOCK
|
|
CALL
|
|
FPADJ 16
|
|
RET
|
|
GETPHYSBLOCKNO:
|
|
FPADJ -12
|
|
STORE 4 ; BLOCKNO
|
|
STORE 0 ; VOLUMEID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; BLOCKNO
|
|
ADD
|
|
STORE 8 ; GETPHYSBLOCKNO
|
|
LOAD 8 ; GETPHYSBLOCKNO
|
|
FPADJ 12
|
|
RET
|
|
READVOLUMEBLKS:
|
|
FPADJ -32
|
|
STORE 16 ; ERROR
|
|
STORE 12 ; BLKCOUNT
|
|
STORE 8 ; BLKNO
|
|
STORE 4 ; DESTBUF
|
|
STORE 0 ; VOLUMEID
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 8 ; BLKNO
|
|
LOADCP GETPHYSBLOCKNO
|
|
CALL
|
|
STORE 20 ; DEVICEBLK
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
STORE 24 ; DEVICEID
|
|
LOADC 0
|
|
STORE 28 ; I
|
|
_WHILE_START10_STDLIB:
|
|
LOAD 12 ; BLKCOUNT
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _WHILE_END10_STDLIB
|
|
LOAD 24 ; DEVICEID
|
|
LOAD 20 ; DEVICEBLK
|
|
; DESTBUF
|
|
LOADREG FP
|
|
INC 4
|
|
LOADI
|
|
LOAD 28 ; I
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
BROT
|
|
LOADC -$100
|
|
AND
|
|
SHL
|
|
ADD
|
|
LOAD 16 ; ERROR
|
|
LOADCP READDEVICE
|
|
CALL
|
|
LOAD 12 ; BLKCOUNT
|
|
LOADC 1
|
|
SUB
|
|
STORE 12 ; BLKCOUNT
|
|
LOAD 20 ; DEVICEBLK
|
|
LOADC 1
|
|
ADD
|
|
STORE 20 ; DEVICEBLK
|
|
LOAD 28 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE 28 ; I
|
|
.LBRANCH _WHILE_START10_STDLIB
|
|
_WHILE_END10_STDLIB:
|
|
FPADJ 32
|
|
RET
|
|
WRITEVOLUMEBLKS:
|
|
FPADJ -32
|
|
STORE 16 ; ERROR
|
|
STORE 12 ; BLKCOUNT
|
|
STORE 8 ; BLKNO
|
|
STORE 4 ; SRCBUF
|
|
STORE 0 ; VOLUMEID
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 8 ; BLKNO
|
|
LOADCP GETPHYSBLOCKNO
|
|
CALL
|
|
STORE 20 ; DEVICEBLK
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
STORE 24 ; DEVICEID
|
|
LOADC 0
|
|
STORE 28 ; I
|
|
_WHILE_START11_STDLIB:
|
|
LOAD 12 ; BLKCOUNT
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _WHILE_END11_STDLIB
|
|
LOAD 24 ; DEVICEID
|
|
LOAD 20 ; DEVICEBLK
|
|
; SRCBUF
|
|
LOADREG FP
|
|
INC 4
|
|
LOADI
|
|
LOAD 28 ; I
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
BROT
|
|
LOADC -$100
|
|
AND
|
|
SHL
|
|
ADD
|
|
LOAD 16 ; ERROR
|
|
LOADCP WRITEDEVICE
|
|
CALL
|
|
LOAD 12 ; BLKCOUNT
|
|
LOADC 1
|
|
SUB
|
|
STORE 12 ; BLKCOUNT
|
|
LOAD 20 ; DEVICEBLK
|
|
LOADC 1
|
|
ADD
|
|
STORE 20 ; DEVICEBLK
|
|
LOAD 28 ; I
|
|
LOADC 1
|
|
ADD
|
|
STORE 28 ; I
|
|
.LBRANCH _WHILE_START11_STDLIB
|
|
.CPOOL
|
|
_WHILE_END11_STDLIB:
|
|
FPADJ 32
|
|
RET
|
|
FINDVOLUME:
|
|
FPADJ -96
|
|
; NAME
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADCP INITDEVICES
|
|
CALL
|
|
LOADC 0
|
|
STORE 88 ; FINDVOLUME
|
|
LOADC 1
|
|
STORE 92 ; VOLIDX
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADI
|
|
_FOR_START13_STDLIB:
|
|
LOAD 92 ; VOLIDX
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END13_STDLIB
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 92 ; VOLIDX
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
; NAME
|
|
LOADREG FP
|
|
LOADCP _CMPSTRING
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE107_STDLIB
|
|
LOAD 92 ; VOLIDX
|
|
STORE 88 ; FINDVOLUME
|
|
.LBRANCH _FOR_END13_STDLIB
|
|
_IF_ELSE107_STDLIB:
|
|
_IF_END107_STDLIB:
|
|
LOAD 92 ; VOLIDX
|
|
INC 1
|
|
STORE 92 ; VOLIDX
|
|
.LBRANCH _FOR_START13_STDLIB
|
|
_FOR_END13_STDLIB:
|
|
DROP
|
|
LOAD 88 ; FINDVOLUME
|
|
FPADJ 96
|
|
RET
|
|
FLUSHDIRCACHE:
|
|
FPADJ -8
|
|
STORE 4 ; ERROR
|
|
STORE 0 ; VOLUMEID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP GE
|
|
AND
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 88
|
|
ADD
|
|
LOADI
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE108_STDLIB
|
|
LOAD 0 ; VOLUMEID
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOADI
|
|
FPADJ -4
|
|
LOADCP GETPHYSBLOCKNO
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; ERROR
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
FPADJ -4
|
|
LOADCP WRITEDIRBLK
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 88
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE108_STDLIB:
|
|
_IF_END108_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
OPENVOLUMEID:
|
|
FPADJ -4
|
|
STORE 0 ; VOLID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE109_STDLIB
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADC 512
|
|
FPADJ -4
|
|
LOADCP _MEM_ALLOC
|
|
CALL
|
|
FPADJ 4
|
|
DUP
|
|
LOADC 512
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
FPADJ -4
|
|
LOADCP _CHECK_ALLOC
|
|
CALL
|
|
FPADJ 4
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE109_STDLIB:
|
|
_IF_END109_STDLIB:
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
FPADJ 4
|
|
RET
|
|
CLOSEVOLUMEID:
|
|
FPADJ -8
|
|
STORE 0 ; VOLID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
SUB
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 92
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE110_STDLIB
|
|
LOAD 0 ; VOLID
|
|
; ERROR
|
|
LOADREG FP
|
|
INC 4
|
|
FPADJ -4
|
|
LOADCP FLUSHDIRCACHE
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOADC -1
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
FPADJ -4
|
|
LOADCP _MEM_FREE
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE110_STDLIB:
|
|
_IF_END110_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
.CPOOL
|
|
LOADDIRBLOCK:
|
|
FPADJ -12
|
|
STORE 8 ; ERROR
|
|
STORE 4 ; DIRBLKNO
|
|
STORE 0 ; VOLUMEID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; DIRBLKNO
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE111_STDLIB
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 8 ; ERROR
|
|
FPADJ -4
|
|
LOADCP FLUSHDIRCACHE
|
|
CALL
|
|
FPADJ 4
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 4 ; DIRBLKNO
|
|
FPADJ -4
|
|
LOADCP GETPHYSBLOCKNO
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; ERROR
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
FPADJ -4
|
|
LOADCP READDIRBLK
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 84
|
|
ADD
|
|
LOAD 4 ; DIRBLKNO
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE111_STDLIB:
|
|
_IF_END111_STDLIB:
|
|
FPADJ 12
|
|
RET
|
|
GETDIRSLOT:
|
|
FPADJ -24
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; RESULT
|
|
STORE 4 ; SLOTNO
|
|
STORE 0 ; VOLUMEID
|
|
LOAD 12 ; ERROR
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; SLOTNO
|
|
LOADC 8
|
|
FPADJ -4
|
|
LOADCP _DIV
|
|
CALL
|
|
FPADJ 4
|
|
STORE 16 ; DIRBLKNO
|
|
LOAD 4 ; SLOTNO
|
|
LOADC 8
|
|
FPADJ -4
|
|
LOADCP _MOD
|
|
CALL
|
|
FPADJ 4
|
|
STORE 20 ; SLOTOFFSET
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 16 ; DIRBLKNO
|
|
LOAD 12 ; ERROR
|
|
FPADJ -4
|
|
LOADCP LOADDIRBLOCK
|
|
CALL
|
|
FPADJ 4
|
|
LOAD 8 ; RESULT
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOAD 20 ; SLOTOFFSET
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
SHL 2
|
|
SHL 2
|
|
ADD
|
|
LOADC 16
|
|
FPADJ -4
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
FPADJ 4
|
|
FPADJ 24
|
|
RET
|
|
PUTDIRSLOT:
|
|
FPADJ -24
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; SLOTNO
|
|
STORE 0 ; VOLUMEID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLUMEID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; SLOTNO
|
|
LOADC 8
|
|
FPADJ -4
|
|
LOADCP _DIV
|
|
CALL
|
|
FPADJ 4
|
|
STORE 16 ; DIRBLKNO
|
|
LOAD 4 ; SLOTNO
|
|
LOADC 8
|
|
FPADJ -4
|
|
LOADCP _MOD
|
|
CALL
|
|
FPADJ 4
|
|
STORE 20 ; SLOTOFFSET
|
|
LOAD 0 ; VOLUMEID
|
|
LOAD 16 ; DIRBLKNO
|
|
LOAD 12 ; ERROR
|
|
FPADJ -4
|
|
LOADCP LOADDIRBLOCK
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 80
|
|
ADD
|
|
LOADI
|
|
LOAD 20 ; SLOTOFFSET
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
SHL 2
|
|
SHL 2
|
|
SHL 2
|
|
ADD
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 16
|
|
FPADJ -4
|
|
LOADCP _COPYWORDS
|
|
CALL
|
|
FPADJ 4
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 88
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
FPADJ 24
|
|
RET
|
|
FINDDIRSLOT:
|
|
FPADJ -88
|
|
STORE 4 ; ERROR
|
|
STORE 0 ; VOLID
|
|
; DIRSLOT
|
|
LOADREG FP
|
|
LOADC 20
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC -1
|
|
STORE 8 ; FINDDIRSLOT
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
STORE 16 ; MAXSLOTS
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 72
|
|
ADD
|
|
LOADI
|
|
STORE 12 ; SLOTNO
|
|
LOADC 0
|
|
STORE 84 ; DONE
|
|
_REPEAT_START9_STDLIB:
|
|
LOAD 0 ; VOLID
|
|
LOAD 12 ; SLOTNO
|
|
; DIRSLOT
|
|
LOADREG FP
|
|
LOADC 20
|
|
ADD
|
|
LOAD 4 ; ERROR
|
|
FPADJ -4
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
FPADJ 4
|
|
LOADC 0
|
|
LOAD 60 ; DIRSLOT
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE112_STDLIB
|
|
LOAD 12 ; SLOTNO
|
|
STORE 8 ; FINDDIRSLOT
|
|
LOADC 1
|
|
STORE 84 ; DONE
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 76
|
|
ADD
|
|
LOAD 12 ; SLOTNO
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE112_STDLIB:
|
|
_IF_END112_STDLIB:
|
|
LOAD 12 ; SLOTNO
|
|
LOADC 1
|
|
ADD
|
|
STORE 12 ; SLOTNO
|
|
LOAD 84 ; DONE
|
|
LOAD 12 ; SLOTNO
|
|
LOAD 16 ; MAXSLOTS
|
|
CMP GE
|
|
OR
|
|
LOAD 4 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START9_STDLIB
|
|
_REPEAT_END9_STDLIB:
|
|
LOAD 8 ; FINDDIRSLOT
|
|
FPADJ 88
|
|
RET
|
|
.CPOOL
|
|
READBUF:
|
|
FPADJ -12
|
|
STORE 4 ; ERROR
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOADC 512
|
|
LOADCP _MOD
|
|
CALL
|
|
SUB
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
LOADC 512
|
|
LOADCP _DIV
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 48
|
|
ADD
|
|
LOADI
|
|
LOADCP _MUL
|
|
CALL
|
|
ADD
|
|
STORE 8 ; BLKNO
|
|
LOAD 0 ; FIL
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; BLKNO
|
|
LOAD 0 ; FIL
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; ERROR
|
|
LOADCP READVOLUMEBLKS
|
|
CALL
|
|
FPADJ 12
|
|
RET
|
|
FILEERROR:
|
|
FPADJ -8
|
|
STORE 4 ; ERROR
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOAD 4 ; ERROR
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
INC 8
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
FPADJ 8
|
|
RET
|
|
IORESULT:
|
|
FPADJ -8
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADI
|
|
STORE 4 ; IORESULT
|
|
LOAD 0 ; FIL
|
|
INC 8
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; IORESULT
|
|
FPADJ 8
|
|
RET
|
|
ERRORSTR:
|
|
FPADJ -8
|
|
STORE 4 ; ERRORSTR
|
|
STORE 0 ; ERR
|
|
LOAD 0 ; ERR
|
|
LOADC 11
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE113_STDLIB
|
|
LOAD 4 ; ERRORSTR
|
|
LOADCP IOERRORDESC ; IOERRORDESC
|
|
LOAD 0 ; ERR
|
|
DUP
|
|
LOADC 12
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 28
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
.LBRANCH _IF_END113_STDLIB
|
|
_IF_ELSE113_STDLIB:
|
|
LOAD 4 ; ERRORSTR
|
|
LOADCP _C_S_9_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
_IF_END113_STDLIB:
|
|
LOAD 4 ; ERRORSTR
|
|
FPADJ 8
|
|
RET
|
|
EOF:
|
|
FPADJ -8
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE114_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
CMP GE
|
|
STORE 4 ; EOF
|
|
.LBRANCH _IF_END114_STDLIB
|
|
_IF_ELSE114_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
STORE 4 ; EOF
|
|
_IF_END114_STDLIB:
|
|
LOAD 4 ; EOF
|
|
FPADJ 8
|
|
RET
|
|
EOLN:
|
|
FPADJ -8
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADCP EOF
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
INC 12
|
|
LOADI
|
|
OR
|
|
STORE 4 ; EOLN
|
|
LOAD 4 ; EOLN
|
|
FPADJ 8
|
|
RET
|
|
READFS:
|
|
FPADJ -32
|
|
STORE 8 ; LEN
|
|
STORE 4 ; DESTBUF
|
|
STORE 0 ; FIL
|
|
LOADC 0
|
|
STORE 28 ; ERROR
|
|
LOADC 0
|
|
STORE 20 ; DESTPOS
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; LEN
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE115_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
SUB
|
|
STORE 8 ; LEN
|
|
_IF_ELSE115_STDLIB:
|
|
_IF_END115_STDLIB:
|
|
_WHILE_START12_STDLIB:
|
|
LOAD 8 ; LEN
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 28 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _WHILE_END12_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE116_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
SUB
|
|
STORE 12 ; BUFLEFT
|
|
LOAD 8 ; LEN
|
|
LOAD 12 ; BUFLEFT
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE117_STDLIB
|
|
LOAD 12 ; BUFLEFT
|
|
STORE 16 ; PARTIAL
|
|
.LBRANCH _IF_END117_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE117_STDLIB:
|
|
LOAD 8 ; LEN
|
|
STORE 16 ; PARTIAL
|
|
_IF_END117_STDLIB:
|
|
LOAD 4 ; DESTBUF
|
|
LOAD 20 ; DESTPOS
|
|
LOAD 0 ; FIL
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 16 ; PARTIAL
|
|
LOADCP COPYBUF
|
|
CALL
|
|
LOAD 8 ; LEN
|
|
LOAD 16 ; PARTIAL
|
|
SUB
|
|
STORE 8 ; LEN
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 16 ; PARTIAL
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 16 ; PARTIAL
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 20 ; DESTPOS
|
|
LOAD 16 ; PARTIAL
|
|
ADD
|
|
STORE 20 ; DESTPOS
|
|
.LBRANCH _IF_END116_STDLIB
|
|
_IF_ELSE116_STDLIB:
|
|
LOAD 0 ; FIL
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 28
|
|
ADD
|
|
LOADCP READBUF
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_END116_STDLIB:
|
|
.LBRANCH _WHILE_START12_STDLIB
|
|
_WHILE_END12_STDLIB:
|
|
LOAD 28 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE118_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 28 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE118_STDLIB:
|
|
_IF_END118_STDLIB:
|
|
FPADJ 32
|
|
RET
|
|
FLUSHFILE:
|
|
FPADJ -12
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
LOADC 512
|
|
LOADCP _DIV
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 48
|
|
ADD
|
|
LOADI
|
|
LOADCP _MUL
|
|
CALL
|
|
ADD
|
|
STORE 4 ; BLKNO
|
|
LOAD 0 ; FIL
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; BLKNO
|
|
LOAD 0 ; FIL
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
; ERROR
|
|
LOADREG FP
|
|
INC 8
|
|
LOADCP WRITEVOLUMEBLKS
|
|
CALL
|
|
LOAD 8 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE119_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 8 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE119_STDLIB:
|
|
_IF_END119_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 68
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
FPADJ 12
|
|
RET
|
|
SEEK:
|
|
FPADJ -16
|
|
STORE 4 ; POSITION
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE120_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 6
|
|
LOADCP FILEERROR
|
|
CALL
|
|
.LBRANCH _IF_END120_STDLIB
|
|
_IF_ELSE120_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 68
|
|
ADD
|
|
LOADI
|
|
.LCBRANCHZ _IF_ELSE121_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADCP FLUSHFILE
|
|
CALL
|
|
_IF_ELSE121_STDLIB:
|
|
_IF_END121_STDLIB:
|
|
LOAD 4 ; POSITION
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
CMP GT
|
|
LOAD 0 ; FIL
|
|
LOADI
|
|
LOADC 4
|
|
CMP EQ
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE122_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 6
|
|
LOADCP FILEERROR
|
|
CALL
|
|
.LBRANCH _IF_END122_STDLIB
|
|
_IF_ELSE122_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOAD 4 ; POSITION
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOAD 4 ; POSITION
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
LOADCP _MOD
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; POSITION
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
CMP LT
|
|
LOAD 4 ; POSITION
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
ADD
|
|
CMP GE
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE123_STDLIB
|
|
LOAD 0 ; FIL
|
|
; ERROR
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP READBUF
|
|
CALL
|
|
LOAD 12 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE124_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 12 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE124_STDLIB:
|
|
_IF_END124_STDLIB:
|
|
_IF_ELSE123_STDLIB:
|
|
_IF_END123_STDLIB:
|
|
_IF_END122_STDLIB:
|
|
_IF_END120_STDLIB:
|
|
FPADJ 16
|
|
RET
|
|
.CPOOL
|
|
FILEPOS:
|
|
FPADJ -8
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE125_STDLIB
|
|
LOADC 0
|
|
STORE 4 ; FILEPOS
|
|
.LBRANCH _IF_END125_STDLIB
|
|
_IF_ELSE125_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
STORE 4 ; FILEPOS
|
|
_IF_END125_STDLIB:
|
|
LOAD 4 ; FILEPOS
|
|
FPADJ 8
|
|
RET
|
|
FILESIZE:
|
|
FPADJ -8
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE126_STDLIB
|
|
LOADC -1
|
|
STORE 4 ; FILESIZE
|
|
.LBRANCH _IF_END126_STDLIB
|
|
_IF_ELSE126_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
STORE 4 ; FILESIZE
|
|
_IF_END126_STDLIB:
|
|
LOAD 4 ; FILESIZE
|
|
FPADJ 8
|
|
RET
|
|
EXTENDFILE:
|
|
FPADJ -88
|
|
STORE 4 ; NEWSIZE
|
|
STORE 0 ; FIL
|
|
; ENTRY
|
|
LOADREG FP
|
|
INC 12
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOAD 4 ; NEWSIZE
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE127_STDLIB
|
|
LOAD 4 ; NEWSIZE
|
|
LOAD 0 ; FIL
|
|
LOADC 48
|
|
ADD
|
|
LOADI
|
|
LOADC 512
|
|
LOADCP _MUL
|
|
CALL
|
|
LOADCP _DIV
|
|
CALL
|
|
LOADC 1
|
|
ADD
|
|
STORE 8 ; NEWEXTENTS
|
|
LOAD 8 ; NEWEXTENTS
|
|
LOAD 0 ; FIL
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE128_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; NEWEXTENTS
|
|
ADD
|
|
LOADC 1
|
|
SUB
|
|
STORE 76 ; ENDSLOT
|
|
LOAD 0 ; FIL
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
ADD
|
|
STORE 80 ; I
|
|
LOAD 76 ; ENDSLOT
|
|
_FOR_START14_STDLIB:
|
|
LOAD 80 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END14_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 80 ; I
|
|
; ENTRY
|
|
LOADREG FP
|
|
INC 12
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
LOADC 0
|
|
LOAD 52 ; ENTRY
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE129_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 7
|
|
LOADCP FILEERROR
|
|
CALL
|
|
.LBRANCH _FOR_END14_STDLIB
|
|
.LBRANCH _IF_END129_STDLIB
|
|
_IF_ELSE129_STDLIB:
|
|
LOAD 52 ; ENTRY
|
|
LOADC 0
|
|
LOADC 0
|
|
LOADCP _SETBIT
|
|
CALL
|
|
LOADC 3
|
|
LOADCP _SETBIT
|
|
CALL
|
|
NOT
|
|
AND
|
|
LOADC 0
|
|
LOADC 5
|
|
LOADCP _SETBIT
|
|
CALL
|
|
OR
|
|
STORE 52 ; ENTRY
|
|
LOAD 0 ; FIL
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 80 ; I
|
|
; ENTRY
|
|
LOADREG FP
|
|
INC 12
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADCP PUTDIRSLOT
|
|
CALL
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE130_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 84 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE130_STDLIB:
|
|
_IF_END130_STDLIB:
|
|
_IF_END129_STDLIB:
|
|
LOAD 80 ; I
|
|
INC 1
|
|
STORE 80 ; I
|
|
.LBRANCH _FOR_START14_STDLIB
|
|
_FOR_END14_STDLIB:
|
|
DROP
|
|
_IF_ELSE128_STDLIB:
|
|
_IF_END128_STDLIB:
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE131_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOAD 4 ; NEWSIZE
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 40
|
|
ADD
|
|
LOAD 8 ; NEWEXTENTS
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE131_STDLIB:
|
|
_IF_END131_STDLIB:
|
|
_IF_ELSE127_STDLIB:
|
|
_IF_END127_STDLIB:
|
|
FPADJ 88
|
|
RET
|
|
.CPOOL
|
|
WRITEFS:
|
|
FPADJ -36
|
|
STORE 8 ; LEN
|
|
STORE 4 ; SRCBUF
|
|
STORE 0 ; FIL
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
SUB
|
|
STORE 12 ; BUFLEFT
|
|
LOAD 8 ; LEN
|
|
STORE 16 ; SRCLEFT
|
|
LOADC 0
|
|
STORE 20 ; SRCPOS
|
|
LOADC 0
|
|
STORE 32 ; ERROR
|
|
LOAD 0 ; FIL
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE132_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 8
|
|
LOADCP FILEERROR
|
|
CALL
|
|
.LBRANCH _L105ERREXIT_STDLIB
|
|
_IF_ELSE132_STDLIB:
|
|
_IF_END132_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 8 ; LEN
|
|
ADD
|
|
STORE 28 ; NEWPOS
|
|
LOAD 28 ; NEWPOS
|
|
LOAD 0 ; FIL
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE133_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 28 ; NEWPOS
|
|
LOADCP EXTENDFILE
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE134_STDLIB
|
|
.LBRANCH _L105ERREXIT_STDLIB
|
|
_IF_ELSE134_STDLIB:
|
|
_IF_END134_STDLIB:
|
|
_IF_ELSE133_STDLIB:
|
|
_IF_END133_STDLIB:
|
|
_WHILE_START13_STDLIB:
|
|
LOAD 16 ; SRCLEFT
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 32 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _WHILE_END13_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 52
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 68
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 16 ; SRCLEFT
|
|
LOAD 12 ; BUFLEFT
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE135_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; SRCBUF
|
|
LOAD 20 ; SRCPOS
|
|
LOAD 12 ; BUFLEFT
|
|
LOADCP COPYBUF
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 12 ; BUFLEFT
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 16 ; SRCLEFT
|
|
LOAD 12 ; BUFLEFT
|
|
SUB
|
|
STORE 16 ; SRCLEFT
|
|
LOAD 20 ; SRCPOS
|
|
LOAD 12 ; BUFLEFT
|
|
ADD
|
|
STORE 20 ; SRCPOS
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
STORE 12 ; BUFLEFT
|
|
.LBRANCH _IF_END135_STDLIB
|
|
_IF_ELSE135_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 4 ; SRCBUF
|
|
LOAD 20 ; SRCPOS
|
|
LOAD 16 ; SRCLEFT
|
|
LOADCP COPYBUF
|
|
CALL
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 60
|
|
ADD
|
|
LOADI
|
|
LOAD 16 ; SRCLEFT
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 16 ; SRCLEFT
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; BUFLEFT
|
|
LOAD 16 ; SRCLEFT
|
|
SUB
|
|
STORE 12 ; BUFLEFT
|
|
LOADC 0
|
|
STORE 16 ; SRCLEFT
|
|
_IF_END135_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
ADD
|
|
CMP GE
|
|
.LCBRANCHZ _IF_ELSE136_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOADCP FLUSHFILE
|
|
CALL
|
|
LOAD 16 ; SRCLEFT
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE137_STDLIB
|
|
LOAD 0 ; FIL
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 32
|
|
ADD
|
|
LOADCP READBUF
|
|
CALL
|
|
.LBRANCH _IF_END137_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE137_STDLIB:
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOAD 0 ; FIL
|
|
LOADC 32
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; FIL
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
_IF_END137_STDLIB:
|
|
_IF_ELSE136_STDLIB:
|
|
_IF_END136_STDLIB:
|
|
LOAD 32 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE138_STDLIB
|
|
LOAD 0 ; FIL
|
|
LOAD 32 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE138_STDLIB:
|
|
_IF_END138_STDLIB:
|
|
.LBRANCH _WHILE_START13_STDLIB
|
|
_WHILE_END13_STDLIB:
|
|
_L105ERREXIT_STDLIB:
|
|
FPADJ 36
|
|
RET
|
|
FINDFILE:
|
|
FPADJ -36
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; NAME
|
|
STORE 0 ; VOLID
|
|
LOADC -1
|
|
STORE 16 ; FINDFILE
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
STORE 24 ; MAXSLOTS
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 72
|
|
ADD
|
|
LOADI
|
|
STORE 20 ; SLOTNO
|
|
LOADC 0
|
|
STORE 28 ; DONE
|
|
LOADC 0
|
|
STORE 32 ; FOUND
|
|
_REPEAT_START10_STDLIB:
|
|
LOAD 0 ; VOLID
|
|
LOAD 20 ; SLOTNO
|
|
LOAD 8 ; DIRSLOT
|
|
LOAD 12 ; ERROR
|
|
FPADJ -4
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
FPADJ 4
|
|
LOADC 2
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
LOADC 0
|
|
CMP EQ
|
|
LOADC 4
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
AND
|
|
LOAD 4 ; NAME
|
|
LOAD 8 ; DIRSLOT
|
|
FPADJ -4
|
|
LOADCP _CMPSTRING
|
|
CALL
|
|
FPADJ 4
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE139_STDLIB
|
|
LOAD 20 ; SLOTNO
|
|
STORE 16 ; FINDFILE
|
|
LOADC 1
|
|
STORE 28 ; DONE
|
|
LOADC 1
|
|
STORE 32 ; FOUND
|
|
_IF_ELSE139_STDLIB:
|
|
_IF_END139_STDLIB:
|
|
LOADC 3
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE140_STDLIB
|
|
LOADC 1
|
|
STORE 28 ; DONE
|
|
_IF_ELSE140_STDLIB:
|
|
_IF_END140_STDLIB:
|
|
LOAD 20 ; SLOTNO
|
|
LOADC 1
|
|
ADD
|
|
STORE 20 ; SLOTNO
|
|
LOAD 28 ; DONE
|
|
LOAD 20 ; SLOTNO
|
|
LOAD 24 ; MAXSLOTS
|
|
CMP GE
|
|
OR
|
|
LOAD 12 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START10_STDLIB
|
|
_REPEAT_END10_STDLIB:
|
|
LOAD 12 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 32 ; FOUND
|
|
LOADC 0
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE141_STDLIB
|
|
LOAD 12 ; ERROR
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE141_STDLIB:
|
|
_IF_END141_STDLIB:
|
|
LOAD 16 ; FINDFILE
|
|
FPADJ 36
|
|
RET
|
|
OPENFILE:
|
|
FPADJ -24
|
|
STORE 16 ; MODE
|
|
STORE 12 ; AFILE
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; SLOTNO
|
|
STORE 0 ; VOLID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 52
|
|
ADD
|
|
LOADI
|
|
STORE 20 ; EXTENTSIZE
|
|
LOAD 12 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOAD 16 ; MODE
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 56
|
|
ADD
|
|
LOADC 4095
|
|
INC 1
|
|
LOADCP _MEM_ALLOC
|
|
CALL
|
|
LOADCP _CHECK_ALLOC
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 60
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 64
|
|
ADD
|
|
LOADC 4095
|
|
INC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 68
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 52
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
INC 4
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
INC 8
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 20
|
|
ADD
|
|
LOAD 0 ; VOLID
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 24
|
|
ADD
|
|
LOAD 4 ; SLOTNO
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 28
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 32
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 36
|
|
ADD
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 40
|
|
ADD
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
LOAD 20 ; EXTENTSIZE
|
|
LOADCP _DIV
|
|
CALL
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 44
|
|
ADD
|
|
LOADC 8
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 48
|
|
ADD
|
|
LOAD 20 ; EXTENTSIZE
|
|
LOADC 512
|
|
LOADCP _DIV
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 12 ; AFILE
|
|
LOADC 0
|
|
LOADCP SEEK
|
|
CALL
|
|
FPADJ 24
|
|
RET
|
|
.CPOOL
|
|
UPDATEDIRSLOT:
|
|
FPADJ -72
|
|
STORE 0 ; AFILE
|
|
; DIRS
|
|
LOADREG FP
|
|
INC 4
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; AFILE
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
; DIRS
|
|
LOADREG FP
|
|
INC 4
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 68
|
|
ADD
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
LOAD 68 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE142_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
STORE 48 ; DIRS
|
|
LOADCP GETCURTIMESTAMP
|
|
CALL
|
|
STORE 56 ; DIRS
|
|
LOAD 0 ; AFILE
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOAD 0 ; AFILE
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
; DIRS
|
|
LOADREG FP
|
|
INC 4
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 68
|
|
ADD
|
|
LOADCP PUTDIRSLOT
|
|
CALL
|
|
_IF_ELSE142_STDLIB:
|
|
_IF_END142_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOAD 68 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
FPADJ 72
|
|
RET
|
|
CLOSE:
|
|
FPADJ -4
|
|
STORE 0 ; AFILE
|
|
LOAD 0 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE143_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 68
|
|
ADD
|
|
LOADI
|
|
.LCBRANCHZ _IF_ELSE144_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADCP FLUSHFILE
|
|
CALL
|
|
_IF_ELSE144_STDLIB:
|
|
_IF_END144_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
INC 4
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE145_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADC 5
|
|
LOADCP FILEERROR
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOADCP _MEM_FREE
|
|
CALL
|
|
LOAD 0 ; AFILE
|
|
LOADC 56
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; AFILE
|
|
LOADC 52
|
|
ADD
|
|
LOADI
|
|
.LCBRANCHZ _IF_ELSE146_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOADCP UPDATEDIRSLOT
|
|
CALL
|
|
_IF_ELSE146_STDLIB:
|
|
_IF_END146_STDLIB:
|
|
_IF_ELSE145_STDLIB:
|
|
_IF_END145_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADC 20
|
|
ADD
|
|
LOADI
|
|
LOADCP CLOSEVOLUMEID
|
|
CALL
|
|
_IF_ELSE143_STDLIB:
|
|
_IF_END143_STDLIB:
|
|
FPADJ 4
|
|
RET
|
|
DELETEFILE:
|
|
FPADJ -16
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; SLOTNO
|
|
STORE 0 ; VOLID
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
LOADC 4
|
|
LOADCP _SETBIT
|
|
CALL
|
|
NOT
|
|
AND
|
|
LOADC 0
|
|
LOADC 2
|
|
LOADCP _SETBIT
|
|
CALL
|
|
OR
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; VOLID
|
|
LOAD 4 ; SLOTNO
|
|
LOAD 8 ; DIRSLOT
|
|
LOAD 12 ; ERROR
|
|
LOADCP PUTDIRSLOT
|
|
CALL
|
|
FPADJ 16
|
|
RET
|
|
CREATEFILE:
|
|
FPADJ -144
|
|
STORE 56 ; ERROR
|
|
STORE 52 ; DIRSLOT
|
|
STORE 48 ; SLOTNO
|
|
STORE 44 ; OVERWRITE
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
SWAP
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
STORE 0 ; VOLID
|
|
; OLDDIRSLOT
|
|
LOADREG FP
|
|
LOADC 72
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC 0
|
|
STORE 60 ; GENERATION
|
|
LOAD 0 ; VOLID
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
; OLDDIRSLOT
|
|
LOADREG FP
|
|
LOADC 72
|
|
ADD
|
|
LOAD 56 ; ERROR
|
|
LOADCP FINDFILE
|
|
CALL
|
|
STORE 68 ; OLDSLOTNO
|
|
LOAD 44 ; OVERWRITE
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 68 ; OLDSLOTNO
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE147_STDLIB
|
|
LOAD 56 ; ERROR
|
|
LOADC 4
|
|
STOREI
|
|
DROP
|
|
LOAD 48 ; SLOTNO
|
|
LOADC -1
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END147_STDLIB
|
|
_IF_ELSE147_STDLIB:
|
|
LOADCP GETCURTIMESTAMP
|
|
CALL
|
|
STORE 140 ; NOWTS
|
|
LOAD 44 ; OVERWRITE
|
|
LOAD 68 ; OLDSLOTNO
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE148_STDLIB
|
|
LOAD 128 ; OLDDIRSLOT
|
|
LOADC 1
|
|
ADD
|
|
STORE 60 ; GENERATION
|
|
LOAD 120 ; OLDDIRSLOT
|
|
STORE 136 ; CREATETS
|
|
.LBRANCH _IF_END148_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE148_STDLIB:
|
|
LOAD 140 ; NOWTS
|
|
STORE 136 ; CREATETS
|
|
_IF_END148_STDLIB:
|
|
LOAD 48 ; SLOTNO
|
|
LOAD 0 ; VOLID
|
|
LOAD 56 ; ERROR
|
|
LOADCP FINDDIRSLOT
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 48 ; SLOTNO
|
|
LOADI
|
|
LOADC 0
|
|
CMP LE
|
|
.LCBRANCHZ _IF_ELSE149_STDLIB
|
|
LOAD 56 ; ERROR
|
|
LOADC 7
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END149_STDLIB
|
|
_IF_ELSE149_STDLIB:
|
|
LOAD 48 ; SLOTNO
|
|
LOADI
|
|
LOADC 0
|
|
CMP GT
|
|
LOAD 56 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE150_STDLIB
|
|
LOAD 0 ; VOLID
|
|
LOAD 48 ; SLOTNO
|
|
LOADI
|
|
LOAD 52 ; DIRSLOT
|
|
LOAD 56 ; ERROR
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
LOAD 52 ; DIRSLOT
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADC 0
|
|
LOADC 4
|
|
LOADCP _SETBIT
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 44
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 56
|
|
ADD
|
|
LOAD 60 ; GENERATION
|
|
STOREI
|
|
DROP
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 60
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 52
|
|
ADD
|
|
LOAD 140 ; NOWTS
|
|
STOREI
|
|
DROP
|
|
LOAD 52 ; DIRSLOT
|
|
LOADC 48
|
|
ADD
|
|
LOAD 136 ; CREATETS
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; VOLID
|
|
LOAD 48 ; SLOTNO
|
|
LOADI
|
|
LOAD 52 ; DIRSLOT
|
|
LOAD 56 ; ERROR
|
|
LOADCP PUTDIRSLOT
|
|
CALL
|
|
LOAD 44 ; OVERWRITE
|
|
LOAD 68 ; OLDSLOTNO
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE151_STDLIB
|
|
LOAD 0 ; VOLID
|
|
LOAD 68 ; OLDSLOTNO
|
|
; OLDDIRSLOT
|
|
LOADREG FP
|
|
LOADC 72
|
|
ADD
|
|
LOAD 56 ; ERROR
|
|
LOADCP DELETEFILE
|
|
CALL
|
|
_IF_ELSE151_STDLIB:
|
|
_IF_END151_STDLIB:
|
|
_IF_ELSE150_STDLIB:
|
|
_IF_END150_STDLIB:
|
|
_IF_END149_STDLIB:
|
|
_IF_END147_STDLIB:
|
|
FPADJ 144
|
|
RET
|
|
INITDEVICES:
|
|
LOADCP CARDCHANGED
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE152_STDLIB
|
|
LOADCP DEVICESINITIALIZED ; DEVICESINITIALIZED
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE152_STDLIB:
|
|
_IF_END152_STDLIB:
|
|
LOADCP DEVICESINITIALIZED ; DEVICESINITIALIZED
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE153_STDLIB
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADCP INITSDCARD
|
|
CALL
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOADC 0
|
|
LOADCP READPARTITIONS
|
|
CALL
|
|
LOADCP DEVICESINITIALIZED ; DEVICESINITIALIZED
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOADCP DEFAULTVOLUME ; DEFAULTVOLUME
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE154_STDLIB
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOADCP DEFAULTVOLUME ; DEFAULTVOLUME
|
|
LOADCP FINDVOLUME
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE154_STDLIB:
|
|
_IF_END154_STDLIB:
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
LOADCP VOLUMECOUNT ; VOLUMECOUNT
|
|
LOADI
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE155_STDLIB
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE155_STDLIB:
|
|
_IF_END155_STDLIB:
|
|
_IF_ELSE153_STDLIB:
|
|
_IF_END153_STDLIB:
|
|
RET
|
|
READDIRNEXT:
|
|
FPADJ -24
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; INDEX
|
|
STORE 0 ; VOLID
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 56
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
SUB
|
|
STORE 16 ; LASTSLOT
|
|
LOADC 0
|
|
STORE 20 ; FOUND
|
|
_REPEAT_START11_STDLIB:
|
|
LOAD 0 ; VOLID
|
|
LOAD 4 ; INDEX
|
|
LOADI
|
|
LOAD 8 ; DIRSLOT
|
|
LOAD 12 ; ERROR
|
|
LOADCP GETDIRSLOT
|
|
CALL
|
|
LOAD 4 ; INDEX
|
|
LOAD 4 ; INDEX
|
|
LOADI
|
|
LOADC 1
|
|
ADD
|
|
STOREI
|
|
DROP
|
|
LOADC 4
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
STORE 20 ; FOUND
|
|
LOAD 20 ; FOUND
|
|
LOADC 3
|
|
LOAD 8 ; DIRSLOT
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
OR
|
|
LOAD 4 ; INDEX
|
|
LOADI
|
|
LOAD 16 ; LASTSLOT
|
|
CMP EQ
|
|
OR
|
|
LOAD 12 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
OR
|
|
.LCBRANCHZ _REPEAT_START11_STDLIB
|
|
_REPEAT_END11_STDLIB:
|
|
LOAD 20 ; FOUND
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE156_STDLIB
|
|
LOAD 4 ; INDEX
|
|
LOADC -1
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE156_STDLIB:
|
|
_IF_END156_STDLIB:
|
|
FPADJ 24
|
|
RET
|
|
.CPOOL
|
|
READDIRFIRST:
|
|
FPADJ -16
|
|
STORE 12 ; ERROR
|
|
STORE 8 ; DIRSLOT
|
|
STORE 4 ; INDEX
|
|
STORE 0 ; VOLID
|
|
LOADCP INITDEVICES
|
|
CALL
|
|
LOAD 4 ; INDEX
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 0 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 72
|
|
ADD
|
|
LOADI
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; VOLID
|
|
LOAD 4 ; INDEX
|
|
LOAD 8 ; DIRSLOT
|
|
LOAD 12 ; ERROR
|
|
LOADCP READDIRNEXT
|
|
CALL
|
|
FPADJ 16
|
|
RET
|
|
CHARPOS:
|
|
FPADJ -20
|
|
STORE 4 ; S
|
|
STORE 0 ; SEARCHCHAR
|
|
LOADC 0
|
|
STORE 8 ; CHARPOS
|
|
LOADC 1
|
|
STORE 16 ; P
|
|
LOAD 4 ; S
|
|
DUP
|
|
LOADI
|
|
SWAP
|
|
INC 8
|
|
_FOR_START15_STDLIB:
|
|
OVER
|
|
.LCBRANCHZ _FOR_END15_STDLIB
|
|
DUP
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 12 ; C
|
|
LOAD 12 ; C
|
|
LOAD 0 ; SEARCHCHAR
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE157_STDLIB
|
|
LOAD 16 ; P
|
|
STORE 8 ; CHARPOS
|
|
.LBRANCH _FOR_END15_STDLIB
|
|
_IF_ELSE157_STDLIB:
|
|
_IF_END157_STDLIB:
|
|
LOAD 16 ; P
|
|
LOADC 1
|
|
ADD
|
|
STORE 16 ; P
|
|
INC 1
|
|
SWAP
|
|
DEC 1
|
|
SWAP
|
|
.LBRANCH _FOR_START15_STDLIB
|
|
_FOR_END15_STDLIB:
|
|
DROP
|
|
DROP
|
|
LOAD 8 ; CHARPOS
|
|
FPADJ 20
|
|
RET
|
|
OPENVOLPATH:
|
|
FPADJ -144
|
|
STORE 92 ; ERROR
|
|
STORE 88 ; DIRS
|
|
STORE 84 ; SLOTNO
|
|
STORE 80 ; FNAME
|
|
STORE 76 ; VOLID
|
|
; PATH
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 32
|
|
; VOLNAME
|
|
LOADREG FP
|
|
LOADC 104
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADCP INITDEVICES
|
|
CALL
|
|
LOAD 84 ; SLOTNO
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 92 ; ERROR
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 76 ; VOLID
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
; PATH
|
|
LOADREG FP
|
|
LOADC 1
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADC 35
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE158_STDLIB
|
|
LOADC 58
|
|
; PATH
|
|
LOADREG FP
|
|
LOADCP CHARPOS
|
|
CALL
|
|
STORE 100 ; SEPARATORPOS
|
|
LOAD 100 ; SEPARATORPOS
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE159_STDLIB
|
|
; VOLNAME
|
|
LOADREG FP
|
|
LOADC 104
|
|
ADD
|
|
; PATH
|
|
LOADREG FP
|
|
LOADC 2
|
|
LOAD 100 ; SEPARATORPOS
|
|
LOADC 2
|
|
SUB
|
|
LOADC 80
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP COPY
|
|
CALL
|
|
FPADJ 88
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 80 ; FNAME
|
|
; PATH
|
|
LOADREG FP
|
|
LOAD 100 ; SEPARATORPOS
|
|
LOADC 1
|
|
ADD
|
|
; PATH
|
|
LOADREG FP
|
|
LOADCP LENGTH
|
|
CALL
|
|
LOAD 100 ; SEPARATORPOS
|
|
SUB
|
|
LOADC 80
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADREG FP
|
|
LOADC 88
|
|
SUB
|
|
FPADJ -88
|
|
LOADCP COPY
|
|
CALL
|
|
FPADJ 88
|
|
FPADJ -88
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
FPADJ 88
|
|
LOAD 76 ; VOLID
|
|
; VOLNAME
|
|
LOADREG FP
|
|
LOADC 104
|
|
ADD
|
|
LOADCP FINDVOLUME
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE159_STDLIB:
|
|
_IF_END159_STDLIB:
|
|
.LBRANCH _IF_END158_STDLIB
|
|
_IF_ELSE158_STDLIB:
|
|
LOAD 76 ; VOLID
|
|
LOADCP DEFAULTVOLUMEID ; DEFAULTVOLUMEID
|
|
LOADI
|
|
STOREI
|
|
DROP
|
|
LOAD 80 ; FNAME
|
|
; PATH
|
|
LOADREG FP
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
_IF_END158_STDLIB:
|
|
LOAD 76 ; VOLID
|
|
LOADI
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE160_STDLIB
|
|
LOAD 76 ; VOLID
|
|
LOADI
|
|
LOADCP OPENVOLUMEID
|
|
CALL
|
|
LOAD 84 ; SLOTNO
|
|
LOAD 76 ; VOLID
|
|
LOADI
|
|
LOAD 80 ; FNAME
|
|
LOAD 88 ; DIRS
|
|
LOAD 92 ; ERROR
|
|
LOADCP FINDFILE
|
|
CALL
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END160_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE160_STDLIB:
|
|
LOAD 92 ; ERROR
|
|
LOADC 2
|
|
STOREI
|
|
DROP
|
|
_IF_END160_STDLIB:
|
|
FPADJ 144
|
|
RET
|
|
RENAME:
|
|
FPADJ -264
|
|
STORE 80 ; ERROR
|
|
; NEWNAME
|
|
LOADREG FP
|
|
LOADC 40
|
|
ADD
|
|
SWAP
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; OLDNAME
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; OLDDIRS
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
; NEWDIRS
|
|
LOADREG FP
|
|
LOADC 148
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC 32
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 224
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOADC 0
|
|
STORE 212 ; VOLID
|
|
; NEWNAME
|
|
LOADREG FP
|
|
LOADC 40
|
|
ADD
|
|
LOADC 1
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADCP _C_A_8_STDLIB
|
|
LOADC 2
|
|
LOADCP _ISINTINARRAY
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE161_STDLIB
|
|
LOAD 80 ; ERROR
|
|
LOADC 3
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END161_STDLIB
|
|
_IF_ELSE161_STDLIB:
|
|
; OLDNAME
|
|
LOADREG FP
|
|
; VOLID
|
|
LOADREG FP
|
|
LOADC 212
|
|
ADD
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 224
|
|
ADD
|
|
; OLDSLOTNO
|
|
LOADREG FP
|
|
LOADC 216
|
|
ADD
|
|
; OLDDIRS
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOAD 80 ; ERROR
|
|
LOADCP OPENVOLPATH
|
|
CALL
|
|
LOAD 80 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE162_STDLIB
|
|
LOAD 212 ; VOLID
|
|
; NEWNAME
|
|
LOADREG FP
|
|
LOADC 40
|
|
ADD
|
|
; NEWDIRS
|
|
LOADREG FP
|
|
LOADC 148
|
|
ADD
|
|
LOAD 80 ; ERROR
|
|
LOADCP FINDFILE
|
|
CALL
|
|
STORE 220 ; NEWSLOTNO
|
|
LOAD 80 ; ERROR
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE163_STDLIB
|
|
LOAD 80 ; ERROR
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
; OLDDIRS
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
; NEWNAME
|
|
LOADREG FP
|
|
LOADC 40
|
|
ADD
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 212 ; VOLID
|
|
LOAD 216 ; OLDSLOTNO
|
|
; OLDDIRS
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOAD 80 ; ERROR
|
|
LOADCP PUTDIRSLOT
|
|
CALL
|
|
.LBRANCH _IF_END163_STDLIB
|
|
_IF_ELSE163_STDLIB:
|
|
LOAD 80 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE164_STDLIB
|
|
LOAD 80 ; ERROR
|
|
LOADC 4
|
|
STOREI
|
|
DROP
|
|
_IF_ELSE164_STDLIB:
|
|
_IF_END164_STDLIB:
|
|
_IF_END163_STDLIB:
|
|
_IF_ELSE162_STDLIB:
|
|
_IF_END162_STDLIB:
|
|
LOAD 212 ; VOLID
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE165_STDLIB
|
|
LOAD 212 ; VOLID
|
|
LOADCP CLOSEVOLUMEID
|
|
CALL
|
|
_IF_ELSE165_STDLIB:
|
|
_IF_END165_STDLIB:
|
|
_IF_END161_STDLIB:
|
|
FPADJ 264
|
|
RET
|
|
ERASE:
|
|
FPADJ -192
|
|
STORE 76 ; ERROR
|
|
; NAME
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 80
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC 32
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 152
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 76 ; ERROR
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
; NAME
|
|
LOADREG FP
|
|
LOADC 1
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADC 37
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE166_STDLIB
|
|
LOAD 76 ; ERROR
|
|
LOADC 3
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END166_STDLIB
|
|
_IF_ELSE166_STDLIB:
|
|
; NAME
|
|
LOADREG FP
|
|
; VOLID
|
|
LOADREG FP
|
|
LOADC 144
|
|
ADD
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 152
|
|
ADD
|
|
; SLOTNO
|
|
LOADREG FP
|
|
LOADC 148
|
|
ADD
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 80
|
|
ADD
|
|
LOAD 76 ; ERROR
|
|
LOADCP OPENVOLPATH
|
|
CALL
|
|
LOAD 76 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE167_STDLIB
|
|
LOADC 6
|
|
LOAD 120 ; DIRS
|
|
LOADCP _TESTBIT
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE168_STDLIB
|
|
LOAD 76 ; ERROR
|
|
LOADC 8
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END168_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE168_STDLIB:
|
|
LOAD 144 ; VOLID
|
|
LOAD 148 ; SLOTNO
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 80
|
|
ADD
|
|
LOAD 76 ; ERROR
|
|
LOADCP DELETEFILE
|
|
CALL
|
|
_IF_END168_STDLIB:
|
|
_IF_ELSE167_STDLIB:
|
|
_IF_END167_STDLIB:
|
|
LOAD 144 ; VOLID
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE169_STDLIB
|
|
LOAD 144 ; VOLID
|
|
LOADCP CLOSEVOLUMEID
|
|
CALL
|
|
_IF_ELSE169_STDLIB:
|
|
_IF_END169_STDLIB:
|
|
_IF_END166_STDLIB:
|
|
FPADJ 192
|
|
RET
|
|
WRITECHANNEL:
|
|
FPADJ -8
|
|
STORE 4 ; ACHAR
|
|
STORE 0 ; F
|
|
LOAD 4 ; ACHAR
|
|
LOADCP CONOUT
|
|
CALL
|
|
FPADJ 8
|
|
RET
|
|
WRITECHANNELW:
|
|
FPADJ -8
|
|
STORE 4 ; WORD
|
|
STORE 0 ; F
|
|
LOAD 4 ; WORD
|
|
LOADCP CONOUTW
|
|
CALL
|
|
FPADJ 8
|
|
RET
|
|
ECHOCHANNEL:
|
|
FPADJ -8
|
|
STORE 4 ; ACHAR
|
|
STORE 0 ; F
|
|
LOAD 0 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE170_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 40
|
|
ADD
|
|
LOADI
|
|
.LCBRANCHZ _IF_ELSE171_STDLIB
|
|
LOAD 0 ; F
|
|
LOAD 4 ; ACHAR
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
.LBRANCH _IF_END171_STDLIB
|
|
_IF_ELSE171_STDLIB:
|
|
LOAD 4 ; ACHAR
|
|
LOADC 8
|
|
CMP NE
|
|
LOAD 4 ; ACHAR
|
|
LOADC 9
|
|
CMP NE
|
|
AND
|
|
LOAD 4 ; ACHAR
|
|
LOADC 4
|
|
CMP NE
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE172_STDLIB
|
|
LOAD 0 ; F
|
|
LOAD 4 ; ACHAR
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
LOAD 4 ; ACHAR
|
|
LOADC 13
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE173_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 10
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
_IF_ELSE173_STDLIB:
|
|
_IF_END173_STDLIB:
|
|
_IF_ELSE172_STDLIB:
|
|
_IF_END172_STDLIB:
|
|
_IF_END171_STDLIB:
|
|
_IF_ELSE170_STDLIB:
|
|
_IF_END170_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
READCHANNEL:
|
|
FPADJ -12
|
|
STORE 0 ; F
|
|
LOAD 0 ; F
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE174_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 24
|
|
ADD
|
|
LOADI
|
|
STORE 8 ; ACHAR
|
|
LOAD 0 ; F
|
|
LOADC 28
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END174_STDLIB
|
|
_IF_ELSE174_STDLIB:
|
|
LOADCP CONIN
|
|
CALL
|
|
STORE 8 ; ACHAR
|
|
LOAD 0 ; F
|
|
LOAD 8 ; ACHAR
|
|
LOADCP ECHOCHANNEL
|
|
CALL
|
|
_IF_END174_STDLIB:
|
|
LOAD 0 ; F
|
|
LOADC 32
|
|
ADD
|
|
LOAD 8 ; ACHAR
|
|
LOADC 4
|
|
CMP EQ
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; F
|
|
LOADC 44
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 8 ; ACHAR
|
|
LOADC 3
|
|
CMP EQ
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE175_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 11
|
|
LOADCP FILEERROR
|
|
CALL
|
|
LOAD 0 ; F
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
_IF_ELSE175_STDLIB:
|
|
_IF_END175_STDLIB:
|
|
LOAD 8 ; ACHAR
|
|
STORE 4 ; READCHANNEL
|
|
LOAD 4 ; READCHANNEL
|
|
FPADJ 12
|
|
RET
|
|
FREADCHAR:
|
|
FPADJ -12
|
|
STORE 0 ; F
|
|
LOAD 0 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE176_STDLIB
|
|
LOAD 0 ; F
|
|
LOADCP READCHANNEL
|
|
CALL
|
|
STORE 4 ; FREADCHAR
|
|
.LBRANCH _IF_END176_STDLIB
|
|
_IF_ELSE176_STDLIB:
|
|
LOAD 0 ; F
|
|
LOADCP READFSCHAR
|
|
CALL
|
|
STORE 4 ; FREADCHAR
|
|
_IF_END176_STDLIB:
|
|
LOAD 0 ; F
|
|
INC 12
|
|
LOAD 4 ; FREADCHAR
|
|
LOADC 13
|
|
CMP EQ
|
|
LOAD 4 ; FREADCHAR
|
|
LOADC 10
|
|
CMP EQ
|
|
OR
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; FREADCHAR
|
|
FPADJ 12
|
|
RET
|
|
FWRITECHAR:
|
|
FPADJ -8
|
|
STORE 4 ; F
|
|
STORE 0 ; ACHAR
|
|
LOAD 4 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE177_STDLIB
|
|
LOAD 4 ; F
|
|
LOAD 0 ; ACHAR
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
.LBRANCH _IF_END177_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE177_STDLIB:
|
|
LOAD 4 ; F
|
|
LOAD 0 ; ACHAR
|
|
LOADCP WRITEFSCHAR
|
|
CALL
|
|
_IF_END177_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
FWRITESTRING:
|
|
FPADJ -24
|
|
STORE 8 ; W
|
|
STORE 4 ; F
|
|
STORE 0 ; ASTRING
|
|
LOAD 8 ; W
|
|
LOAD 0 ; ASTRING
|
|
LOADCP LENGTH
|
|
CALL
|
|
SUB
|
|
STORE 16 ; MISSING
|
|
LOAD 16 ; MISSING
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _IF_ELSE178_STDLIB
|
|
LOADC 1
|
|
STORE 20 ; I
|
|
LOAD 16 ; MISSING
|
|
_FOR_START16_STDLIB:
|
|
LOAD 20 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END16_STDLIB
|
|
LOADC 32
|
|
LOAD 4 ; F
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOAD 20 ; I
|
|
INC 1
|
|
STORE 20 ; I
|
|
.LBRANCH _FOR_START16_STDLIB
|
|
_FOR_END16_STDLIB:
|
|
DROP
|
|
_IF_ELSE178_STDLIB:
|
|
_IF_END178_STDLIB:
|
|
LOAD 4 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE179_STDLIB
|
|
LOAD 0 ; ASTRING
|
|
DUP
|
|
LOADI
|
|
SWAP
|
|
INC 8
|
|
_FOR_START17_STDLIB:
|
|
OVER
|
|
.LCBRANCHZ _FOR_END17_STDLIB
|
|
DUP
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
STORE 12 ; CH
|
|
LOAD 4 ; F
|
|
LOAD 12 ; CH
|
|
LOADCP WRITECHANNEL
|
|
CALL
|
|
INC 1
|
|
SWAP
|
|
DEC 1
|
|
SWAP
|
|
.LBRANCH _FOR_START17_STDLIB
|
|
_FOR_END17_STDLIB:
|
|
DROP
|
|
DROP
|
|
.LBRANCH _IF_END179_STDLIB
|
|
_IF_ELSE179_STDLIB:
|
|
LOAD 4 ; F
|
|
LOAD 0 ; ASTRING
|
|
LOADCP WRITEFSSTRING
|
|
CALL
|
|
_IF_END179_STDLIB:
|
|
FPADJ 24
|
|
RET
|
|
FWRITEINT:
|
|
FPADJ -32
|
|
STORE 8 ; W
|
|
STORE 4 ; F
|
|
STORE 0 ; V
|
|
LOADC 12
|
|
; RBUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 0 ; V
|
|
LOADC 0
|
|
; RBUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP INTSTR
|
|
CALL
|
|
; RBUF
|
|
LOADREG FP
|
|
INC 12
|
|
LOAD 4 ; F
|
|
LOAD 8 ; W
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
FPADJ 32
|
|
RET
|
|
FWRITEREAL:
|
|
FPADJ -72
|
|
STORE 12 ; D
|
|
STORE 8 ; W
|
|
STORE 4 ; F
|
|
STORE 0 ; V
|
|
LOADC 48
|
|
; RBUF
|
|
LOADREG FP
|
|
LOADC 16
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
LOAD 0 ; V
|
|
LOAD 8 ; W
|
|
LOAD 12 ; D
|
|
; RBUF
|
|
LOADREG FP
|
|
LOADC 16
|
|
ADD
|
|
LOADCP REALSTR
|
|
CALL
|
|
; RBUF
|
|
LOADREG FP
|
|
LOADC 16
|
|
ADD
|
|
LOAD 4 ; F
|
|
LOAD 8 ; W
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
FPADJ 72
|
|
RET
|
|
FWRITEWORDS:
|
|
FPADJ -12
|
|
STORE 8 ; SIZE
|
|
STORE 4 ; F
|
|
STORE 0 ; WORDS
|
|
LOAD 4 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE180_STDLIB
|
|
LOAD 4 ; F
|
|
LOAD 0 ; WORDS
|
|
LOAD 8 ; SIZE
|
|
LOADCP WRITEFS
|
|
CALL
|
|
.LBRANCH _IF_END180_STDLIB
|
|
_IF_ELSE180_STDLIB:
|
|
LOAD 4 ; F
|
|
LOAD 0 ; WORDS
|
|
LOAD 8 ; SIZE
|
|
LOADC 2
|
|
LOADCP _SHRM
|
|
CALL
|
|
LOADCP WRITECHANWORDS
|
|
CALL
|
|
_IF_END180_STDLIB:
|
|
FPADJ 12
|
|
RET
|
|
FREADWORDS:
|
|
FPADJ -20
|
|
STORE 8 ; SIZE
|
|
STORE 4 ; F
|
|
STORE 0 ; WORDS
|
|
LOAD 4 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE181_STDLIB
|
|
LOAD 4 ; F
|
|
LOAD 0 ; WORDS
|
|
LOAD 8 ; SIZE
|
|
LOADCP READFS
|
|
CALL
|
|
.LBRANCH _IF_END181_STDLIB
|
|
_IF_ELSE181_STDLIB:
|
|
LOAD 4 ; F
|
|
LOAD 0 ; WORDS
|
|
LOAD 8 ; SIZE
|
|
LOADC 2
|
|
LOADCP _SHRM
|
|
CALL
|
|
LOADCP READCHANWORDS
|
|
CALL
|
|
_IF_END181_STDLIB:
|
|
FPADJ 20
|
|
RET
|
|
PUSHBACK:
|
|
FPADJ -8
|
|
STORE 4 ; ACHAR
|
|
STORE 0 ; AFILE
|
|
LOAD 0 ; AFILE
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE182_STDLIB
|
|
LOAD 0 ; AFILE
|
|
LOAD 0 ; AFILE
|
|
LOADC 28
|
|
ADD
|
|
LOADI
|
|
LOADC 1
|
|
SUB
|
|
LOADCP SEEK
|
|
CALL
|
|
.LBRANCH _IF_END182_STDLIB
|
|
.CPOOL
|
|
_IF_ELSE182_STDLIB:
|
|
LOAD 0 ; AFILE
|
|
LOADC 24
|
|
ADD
|
|
LOAD 4 ; ACHAR
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; AFILE
|
|
LOADC 28
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
_IF_END182_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
OPENCHANNEL:
|
|
FPADJ -52
|
|
STORE 48 ; ERROR
|
|
STORE 44 ; MODE
|
|
STORE 40 ; F
|
|
; NAME
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 32
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 40 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOAD 44 ; MODE
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 28
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 32
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 40
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 44
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
; NAME
|
|
LOADREG FP
|
|
LOADCP _C_S_10_STDLIB
|
|
LOADCP _CMPSTRING
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE183_STDLIB
|
|
LOAD 40 ; F
|
|
LOADC 20
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END183_STDLIB
|
|
_IF_ELSE183_STDLIB:
|
|
; NAME
|
|
LOADREG FP
|
|
LOADCP _C_S_11_STDLIB
|
|
LOADCP _CMPSTRING
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE184_STDLIB
|
|
LOAD 40 ; F
|
|
LOADC 20
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 40
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END184_STDLIB
|
|
_IF_ELSE184_STDLIB:
|
|
; NAME
|
|
LOADREG FP
|
|
LOADCP _C_S_12_STDLIB
|
|
LOADCP _CMPSTRING
|
|
CALL
|
|
.LCBRANCHZ _IF_ELSE185_STDLIB
|
|
LOAD 40 ; F
|
|
LOADC 20
|
|
ADD
|
|
LOADC 0
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 40
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
LOAD 40 ; F
|
|
LOADC 44
|
|
ADD
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END185_STDLIB
|
|
_IF_ELSE185_STDLIB:
|
|
LOAD 48 ; ERROR
|
|
LOADC 1
|
|
STOREI
|
|
DROP
|
|
_IF_END185_STDLIB:
|
|
_IF_END184_STDLIB:
|
|
_IF_END183_STDLIB:
|
|
FPADJ 52
|
|
RET
|
|
OPEN:
|
|
FPADJ -212
|
|
STORE 80 ; MODE
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
STORE 0 ; F
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 88
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOADC 32
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 172
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
LOADC 1
|
|
LOADCP _INDEXSTRING
|
|
CALL
|
|
LOADI.S1.X2Y
|
|
BSEL
|
|
LOADC 37
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE186_STDLIB
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
LOAD 0 ; F
|
|
LOAD 80 ; MODE
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADCP OPENCHANNEL
|
|
CALL
|
|
.LBRANCH _IF_END186_STDLIB
|
|
_IF_ELSE186_STDLIB:
|
|
LOADC 0
|
|
STORE 156 ; VOLID
|
|
LOAD 80 ; MODE
|
|
LOADC 1
|
|
CMP EQ
|
|
STORE 160 ; EXCLUSIVE
|
|
LOAD 80 ; MODE
|
|
LOADC 3
|
|
CMP EQ
|
|
STORE 164 ; OVERWRITE
|
|
LOAD 80 ; MODE
|
|
LOADC 1
|
|
CMP EQ
|
|
LOAD 80 ; MODE
|
|
LOADC 3
|
|
CMP EQ
|
|
OR
|
|
LOAD 80 ; MODE
|
|
LOADC 4
|
|
CMP EQ
|
|
OR
|
|
STORE 168 ; CREATEMISSING
|
|
; NAME
|
|
LOADREG FP
|
|
INC 4
|
|
; VOLID
|
|
LOADREG FP
|
|
LOADC 156
|
|
ADD
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 172
|
|
ADD
|
|
; SLOTNO
|
|
LOADREG FP
|
|
LOADC 152
|
|
ADD
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 88
|
|
ADD
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADCP OPENVOLPATH
|
|
CALL
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 160 ; EXCLUSIVE
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE187_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 4
|
|
LOADCP FILEERROR
|
|
CALL
|
|
LOADC 4
|
|
STORE 84 ; ERROR
|
|
_IF_ELSE187_STDLIB:
|
|
_IF_END187_STDLIB:
|
|
LOAD 84 ; ERROR
|
|
LOADC 1
|
|
CMP EQ
|
|
LOAD 168 ; CREATEMISSING
|
|
AND
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
LOAD 164 ; OVERWRITE
|
|
AND
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE188_STDLIB
|
|
LOAD 156 ; VOLID
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 172
|
|
ADD
|
|
LOAD 164 ; OVERWRITE
|
|
; SLOTNO
|
|
LOADREG FP
|
|
LOADC 152
|
|
ADD
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 88
|
|
ADD
|
|
; ERROR
|
|
LOADREG FP
|
|
LOADC 84
|
|
ADD
|
|
LOADCP CREATEFILE
|
|
CALL
|
|
_IF_ELSE188_STDLIB:
|
|
_IF_END188_STDLIB:
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE189_STDLIB
|
|
LOAD 156 ; VOLID
|
|
LOAD 152 ; SLOTNO
|
|
; DIRS
|
|
LOADREG FP
|
|
LOADC 88
|
|
ADD
|
|
LOAD 0 ; F
|
|
LOAD 80 ; MODE
|
|
LOADCP OPENFILE
|
|
CALL
|
|
LOAD 80 ; MODE
|
|
LOADC 4
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE190_STDLIB
|
|
LOAD 0 ; F
|
|
LOAD 0 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
LOADCP SEEK
|
|
CALL
|
|
_IF_ELSE190_STDLIB:
|
|
_IF_END190_STDLIB:
|
|
_IF_ELSE189_STDLIB:
|
|
_IF_END189_STDLIB:
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
LOAD 156 ; VOLID
|
|
LOADC 0
|
|
CMP GT
|
|
AND
|
|
.LCBRANCHZ _IF_ELSE191_STDLIB
|
|
LOAD 156 ; VOLID
|
|
LOADCP CLOSEVOLUMEID
|
|
CALL
|
|
_IF_ELSE191_STDLIB:
|
|
_IF_END191_STDLIB:
|
|
LOAD 84 ; ERROR
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE192_STDLIB
|
|
LOAD 0 ; F
|
|
LOAD 84 ; ERROR
|
|
LOADCP FILEERROR
|
|
CALL
|
|
_IF_ELSE192_STDLIB:
|
|
_IF_END192_STDLIB:
|
|
_IF_END186_STDLIB:
|
|
FPADJ 212
|
|
RET
|
|
.CPOOL
|
|
NOECHO:
|
|
FPADJ -12
|
|
STORE 8 ; OLD
|
|
STORE 4 ; NOECHO
|
|
STORE 0 ; F
|
|
LOAD 0 ; F
|
|
LOADC 16
|
|
ADD
|
|
LOADI
|
|
LOADC 0
|
|
CMP NE
|
|
.LCBRANCHZ _IF_ELSE193_STDLIB
|
|
LOAD 0 ; F
|
|
LOADC 9
|
|
LOADCP FILEERROR
|
|
CALL
|
|
.LBRANCH _IF_END193_STDLIB
|
|
_IF_ELSE193_STDLIB:
|
|
LOAD 8 ; OLD
|
|
LOAD 0 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOADI
|
|
STOREI
|
|
DROP
|
|
LOAD 0 ; F
|
|
LOADC 36
|
|
ADD
|
|
LOAD 4 ; NOECHO
|
|
STOREI
|
|
DROP
|
|
_IF_END193_STDLIB:
|
|
FPADJ 12
|
|
RET
|
|
RANDOM:
|
|
FPADJ -8
|
|
LOADCP RANDOM_STATE ; RANDOM_STATE
|
|
LOADI
|
|
STORE 4 ; X
|
|
LOAD 4 ; X
|
|
LOAD 4 ; X
|
|
LOADC 13
|
|
LOADCP _SHLM
|
|
CALL
|
|
XOR
|
|
STORE 4 ; X
|
|
LOAD 4 ; X
|
|
LOAD 4 ; X
|
|
LOADC 17
|
|
LOADCP _SHRM
|
|
CALL
|
|
XOR
|
|
STORE 4 ; X
|
|
LOAD 4 ; X
|
|
LOAD 4 ; X
|
|
LOADC 5
|
|
LOADCP _SHLM
|
|
CALL
|
|
XOR
|
|
STORE 4 ; X
|
|
LOADCP RANDOM_STATE ; RANDOM_STATE
|
|
LOAD 4 ; X
|
|
STOREI
|
|
DROP
|
|
LOAD 4 ; X
|
|
LOADC 0
|
|
CMP LT
|
|
.LCBRANCHZ _IF_ELSE194_STDLIB
|
|
LOAD 4 ; X
|
|
LOADCP ABS
|
|
CALL
|
|
STORE 4 ; X
|
|
_IF_ELSE194_STDLIB:
|
|
_IF_END194_STDLIB:
|
|
LOAD 4 ; X
|
|
STORE 0 ; RANDOM
|
|
LOAD 0 ; RANDOM
|
|
FPADJ 8
|
|
RET
|
|
RANDOMIZE:
|
|
LOADCP RANDOM_STATE ; RANDOM_STATE
|
|
LOADCP GETTICKS
|
|
CALL
|
|
LOADCP -1342256386
|
|
XOR
|
|
STOREI
|
|
DROP
|
|
RET
|
|
CLRSCR:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_13_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_14_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
RET
|
|
CLREOL:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_15_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
RET
|
|
CRTINIT:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADC 99
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
DROP
|
|
RET
|
|
GOTOXY:
|
|
FPADJ -8
|
|
STORE 4 ; Y
|
|
STORE 0 ; X
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADC 91
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOAD 4 ; Y
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITEINT
|
|
CALL
|
|
LOADC 59
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOAD 0 ; X
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITEINT
|
|
CALL
|
|
LOADC 72
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
DROP
|
|
FPADJ 8
|
|
RET
|
|
INSLINE:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_16_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
RET
|
|
DELLINE:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_17_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
RET
|
|
GETTERMSIZE:
|
|
FPADJ -16
|
|
STORE 4 ; MAXY
|
|
STORE 0 ; MAXX
|
|
; X
|
|
LOADREG FP
|
|
INC 8
|
|
; Y
|
|
LOADREG FP
|
|
INC 12
|
|
LOADCP GETCURSORPOS
|
|
CALL
|
|
LOADCP 9999
|
|
LOADCP 9999
|
|
LOADCP GOTOXY
|
|
CALL
|
|
LOAD 0 ; MAXX
|
|
LOAD 4 ; MAXY
|
|
LOADCP GETCURSORPOS
|
|
CALL
|
|
LOAD 8 ; X
|
|
LOAD 12 ; Y
|
|
LOADCP GOTOXY
|
|
CALL
|
|
FPADJ 16
|
|
RET
|
|
.CPOOL
|
|
TEXTCOLOR:
|
|
FPADJ -4
|
|
STORE 0 ; COL
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_18_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
LOAD 0 ; COL
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITEINT
|
|
CALL
|
|
LOADC 109
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
DROP
|
|
FPADJ 4
|
|
RET
|
|
TEXTBACKGROUND:
|
|
FPADJ -4
|
|
STORE 0 ; BGCOL
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_19_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
LOAD 0 ; BGCOL
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITEINT
|
|
CALL
|
|
LOADC 109
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
DROP
|
|
FPADJ 4
|
|
RET
|
|
TEXTDEFAULT:
|
|
LOADC 27
|
|
LOADCP OUTPUT
|
|
DUP
|
|
LOADCP CHECKERROR
|
|
CALL
|
|
SWAP
|
|
OVER
|
|
LOADCP FWRITECHAR
|
|
CALL
|
|
LOADCP _C_S_20_STDLIB
|
|
OVER
|
|
LOADC 0
|
|
LOADCP FWRITESTRING
|
|
CALL
|
|
DROP
|
|
RET
|
|
PEXEC:
|
|
FPADJ -216
|
|
STORE 84 ; ERROR
|
|
STORE 80 ; ARGCOUNT
|
|
STORE 76 ; ARGS
|
|
; PRGFILE
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 32
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 92
|
|
ADD
|
|
LOADCP _INITSTRINGF
|
|
CALL
|
|
; DIRSLOT
|
|
LOADREG FP
|
|
LOADC 132
|
|
ADD
|
|
LOADC 64
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
LOAD 80 ; ARGCOUNT
|
|
LOADC 7
|
|
CMP GE
|
|
LOAD 80 ; ARGCOUNT
|
|
LOADC 0
|
|
CMP LT
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE195_STDLIB
|
|
LOAD 84 ; ERROR
|
|
LOADC 9
|
|
STOREI
|
|
DROP
|
|
.LBRANCH _IF_END195_STDLIB
|
|
_IF_ELSE195_STDLIB:
|
|
; PRGFILE
|
|
LOADREG FP
|
|
; VOLID
|
|
LOADREG FP
|
|
LOADC 88
|
|
ADD
|
|
; FNAME
|
|
LOADREG FP
|
|
LOADC 92
|
|
ADD
|
|
; SLOTNO
|
|
LOADREG FP
|
|
LOADC 196
|
|
ADD
|
|
; DIRSLOT
|
|
LOADREG FP
|
|
LOADC 132
|
|
ADD
|
|
LOAD 84 ; ERROR
|
|
LOADCP OPENVOLPATH
|
|
CALL
|
|
LOAD 84 ; ERROR
|
|
LOADI
|
|
LOADC 0
|
|
CMP EQ
|
|
.LCBRANCHZ _IF_ELSE196_STDLIB
|
|
LOADCP VOLUMETABLE ; VOLUMETABLE
|
|
LOAD 88 ; VOLID
|
|
DEC 1
|
|
DUP
|
|
LOADC 32
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 96
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADREG FP
|
|
DEC 4
|
|
SWAP
|
|
STOREI
|
|
DROP
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 64
|
|
ADD
|
|
LOADI
|
|
STORE 212 ; DEVID
|
|
LOAD 196 ; SLOTNO
|
|
LOADREG FP
|
|
DEC 4
|
|
LOADI
|
|
LOADC 52
|
|
ADD
|
|
LOADI
|
|
FPADJ -4
|
|
LOADCP _MUL
|
|
CALL
|
|
FPADJ 4
|
|
LOADC 512
|
|
FPADJ -4
|
|
LOADCP _DIV
|
|
CALL
|
|
FPADJ 4
|
|
STORE 204 ; STARTBLOCK
|
|
LOAD 88 ; VOLID
|
|
LOAD 204 ; STARTBLOCK
|
|
LOADCP GETPHYSBLOCKNO
|
|
CALL
|
|
STORE 208 ; PHYSBLOCK
|
|
LOAD 88 ; VOLID
|
|
LOADCP CLOSEVOLUMEID
|
|
CALL
|
|
LOADCP PARGS ; PARGS
|
|
LOADC 0
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
; PRGFILE
|
|
LOADREG FP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADC 1
|
|
STORE 200 ; I
|
|
LOAD 80 ; ARGCOUNT
|
|
_FOR_START18_STDLIB:
|
|
LOAD 200 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END18_STDLIB
|
|
LOADCP PARGS ; PARGS
|
|
LOAD 200 ; I
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOAD 76 ; ARGS
|
|
LOAD 200 ; I
|
|
LOADC 1
|
|
SUB
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 200 ; I
|
|
INC 1
|
|
STORE 200 ; I
|
|
.LBRANCH _FOR_START18_STDLIB
|
|
.CPOOL
|
|
_FOR_END18_STDLIB:
|
|
DROP
|
|
LOAD 80 ; ARGCOUNT
|
|
LOADC 1
|
|
ADD
|
|
STORE 200 ; I
|
|
LOADC 7
|
|
_FOR_START19_STDLIB:
|
|
LOAD 200 ; I
|
|
OVER
|
|
CMP GT
|
|
.LCBRANCH _FOR_END19_STDLIB
|
|
LOADCP PARGS ; PARGS
|
|
LOAD 200 ; I
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOAD 200 ; I
|
|
INC 1
|
|
STORE 200 ; I
|
|
.LBRANCH _FOR_START19_STDLIB
|
|
_FOR_END19_STDLIB:
|
|
DROP
|
|
LOADCP PARGCOUNT ; PARGCOUNT
|
|
LOAD 80 ; ARGCOUNT
|
|
STOREI
|
|
DROP
|
|
LOAD 212 ; DEVID
|
|
LOAD 208 ; PHYSBLOCK
|
|
LOAD 176 ; DIRSLOT
|
|
LOADCP CORELOAD
|
|
CALL
|
|
_IF_ELSE196_STDLIB:
|
|
_IF_END196_STDLIB:
|
|
_IF_END195_STDLIB:
|
|
FPADJ 216
|
|
RET
|
|
PEXEC2:
|
|
LOADREG FP
|
|
LOADC 872
|
|
SUB
|
|
STOREREG FP
|
|
STORE 164 ; ERROR
|
|
; ARG1
|
|
LOADREG FP
|
|
LOADC 76
|
|
ADD
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; PRGFILE
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 168
|
|
ADD
|
|
LOADC 704
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 168
|
|
ADD
|
|
LOADC 0
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
; ARG1
|
|
LOADREG FP
|
|
LOADC 76
|
|
ADD
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; PRGFILE
|
|
LOADREG FP
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 168
|
|
ADD
|
|
LOADC 1
|
|
LOAD 164 ; ERROR
|
|
LOADCP PEXEC
|
|
CALL
|
|
LOADREG FP
|
|
LOADC 872
|
|
ADD
|
|
STOREREG FP
|
|
RET
|
|
PEXEC3:
|
|
LOADREG FP
|
|
LOADC 960
|
|
SUB
|
|
STOREREG FP
|
|
STORE 252 ; ERROR
|
|
; ARG2
|
|
LOADREG FP
|
|
LOADC 164
|
|
ADD
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; ARG1
|
|
LOADREG FP
|
|
LOADC 76
|
|
ADD
|
|
SWAP
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; PRGFILE
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 68
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 256
|
|
ADD
|
|
LOADC 704
|
|
LOADCP _CLEARMEM
|
|
CALL
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 256
|
|
ADD
|
|
LOADC 0
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
; ARG1
|
|
LOADREG FP
|
|
LOADC 76
|
|
ADD
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 256
|
|
ADD
|
|
LOADC 1
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
; ARG2
|
|
LOADREG FP
|
|
LOADC 164
|
|
ADD
|
|
LOADC 80
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
; PRGFILE
|
|
LOADREG FP
|
|
; ARGS
|
|
LOADREG FP
|
|
LOADC 256
|
|
ADD
|
|
LOADC 2
|
|
LOAD 252 ; ERROR
|
|
LOADCP PEXEC
|
|
CALL
|
|
LOADREG FP
|
|
LOADC 960
|
|
ADD
|
|
STOREREG FP
|
|
RET
|
|
PARAMSTR:
|
|
FPADJ -8
|
|
STORE 4 ; PARAMSTR
|
|
STORE 0 ; I
|
|
LOAD 0 ; I
|
|
LOADC 0
|
|
CMP LT
|
|
LOAD 0 ; I
|
|
LOADC 7
|
|
CMP GT
|
|
OR
|
|
.LCBRANCHZ _IF_ELSE197_STDLIB
|
|
LOAD 4 ; PARAMSTR
|
|
LOADCP _C_S_3_STDLIB
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
.LBRANCH _IF_END197_STDLIB
|
|
_IF_ELSE197_STDLIB:
|
|
LOAD 4 ; PARAMSTR
|
|
LOADCP PARGS ; PARGS
|
|
LOAD 0 ; I
|
|
DUP
|
|
LOADC 8
|
|
LOADCP _BOUNDSCHECK
|
|
CALL
|
|
LOADC 88
|
|
LOADCP _MULU
|
|
CALL
|
|
ADD
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
_IF_END197_STDLIB:
|
|
LOAD 4 ; PARAMSTR
|
|
FPADJ 8
|
|
RET
|
|
PARAMCOUNT:
|
|
FPADJ -4
|
|
LOADCP PARGCOUNT ; PARGCOUNT
|
|
LOADI
|
|
STORE 0 ; PARAMCOUNT
|
|
LOAD 0 ; PARAMCOUNT
|
|
FPADJ 4
|
|
RET
|
|
SETSHELLCMD:
|
|
FPADJ -52
|
|
STORE 48 ; ARG
|
|
; CMD
|
|
LOADREG FP
|
|
SWAP
|
|
LOADC 40
|
|
LOADCP _INITSTRINGFROM
|
|
CALL
|
|
LOADCP SHELLCMD ; SHELLCMD
|
|
; CMD
|
|
LOADREG FP
|
|
LOADCP _COPYSTRING
|
|
CALL
|
|
LOADCP SHELLARG ; SHELLARG
|
|
LOAD 48 ; ARG
|
|
STOREI
|
|
DROP
|
|
FPADJ 52
|
|
RET
|
|
.CPOOL
|
|
DELAY:
|
|
FPADJ -8
|
|
STORE 0 ; MS
|
|
LOAD 0 ; MS
|
|
STORE 4 ; COUNT
|
|
_WHILE_START14_STDLIB:
|
|
LOAD 4 ; COUNT
|
|
LOADC 0
|
|
CMP GT
|
|
.LCBRANCHZ _WHILE_END14_STDLIB
|
|
LOADCP WAIT1MSEC
|
|
CALL
|
|
LOAD 4 ; COUNT
|
|
LOADC 1
|
|
SUB
|
|
STORE 4 ; COUNT
|
|
.LBRANCH _WHILE_START14_STDLIB
|
|
_WHILE_END14_STDLIB:
|
|
FPADJ 8
|
|
RET
|
|
.CPOOL
|
|
INPUT: .BLOCK 18
|
|
OUTPUT: .BLOCK 18
|
|
DEFAULTVOLUMEID: .WORD 0
|
|
VOLUMETABLE: .BLOCK 768
|
|
VOLUMECOUNT: .WORD 0
|
|
DEVICESINITIALIZED: .WORD 0
|
|
RANDOM_STATE: .WORD 0
|
|
_C_S_0_STDLIB:
|
|
.WORD 1,0
|
|
.BYTE "0"
|
|
_C_S_1_STDLIB:
|
|
.WORD 1,0
|
|
.BYTE ":"
|
|
_C_S_2_STDLIB:
|
|
.WORD 1,0
|
|
.BYTE "-"
|
|
_C_S_3_STDLIB:
|
|
.WORD 0,0
|
|
_C_S_4_STDLIB:
|
|
.WORD 10,0
|
|
.BYTE "8463847412"
|
|
_C_S_5_STDLIB:
|
|
.WORD 1,0
|
|
.BYTE " "
|
|
_C_S_6_STDLIB:
|
|
.WORD 1,0
|
|
.BYTE "E"
|
|
_C_S_7_STDLIB:
|
|
.WORD 2,0
|
|
.BYTE "0."
|
|
_C_S_8_STDLIB:
|
|
.WORD 30,0
|
|
.BYTE "Error reading partition block "
|
|
_C_S_9_STDLIB:
|
|
.WORD 18,0
|
|
.BYTE "Invalid error code"
|
|
_C_S_10_STDLIB:
|
|
.WORD 4,0
|
|
.BYTE "%CON"
|
|
_C_S_11_STDLIB:
|
|
.WORD 4,0
|
|
.BYTE "%KBD"
|
|
_C_S_12_STDLIB:
|
|
.WORD 4,0
|
|
.BYTE "%RAW"
|
|
_C_S_13_STDLIB:
|
|
.WORD 3,0
|
|
.BYTE "[2J"
|
|
_C_S_14_STDLIB:
|
|
.WORD 2,0
|
|
.BYTE "[H"
|
|
_C_S_15_STDLIB:
|
|
.WORD 2,0
|
|
.BYTE "[K"
|
|
_C_S_16_STDLIB:
|
|
.WORD 2,0
|
|
.BYTE "[L"
|
|
_C_S_17_STDLIB:
|
|
.WORD 2,0
|
|
.BYTE "[M"
|
|
_C_S_18_STDLIB:
|
|
.WORD 6,0
|
|
.BYTE "[38;5;"
|
|
_C_S_19_STDLIB:
|
|
.WORD 6,0
|
|
.BYTE "[48;5;"
|
|
_C_S_20_STDLIB:
|
|
.WORD 3,0
|
|
.BYTE "[0m"
|
|
IOERRORDESC:
|
|
_C_A_1_STDLIB:
|
|
|
|
.WORD 8,20
|
|
.BYTE "No error"
|
|
.BLOCK 3
|
|
|
|
.WORD 14,20
|
|
.BYTE "File not found"
|
|
.BLOCK 1
|
|
|
|
.WORD 16,20
|
|
.BYTE "Volume not found"
|
|
.BLOCK 1
|
|
|
|
.WORD 12,20
|
|
.BYTE "Path invalid"
|
|
.BLOCK 2
|
|
|
|
.WORD 19,20
|
|
.BYTE "File already exists"
|
|
|
|
.WORD 11,20
|
|
.BYTE "File closed"
|
|
.BLOCK 2
|
|
|
|
.WORD 12,20
|
|
.BYTE "Seek invalid"
|
|
.BLOCK 2
|
|
|
|
.WORD 8,20
|
|
.BYTE "No space"
|
|
.BLOCK 3
|
|
|
|
.WORD 16,20
|
|
.BYTE "File is readonly"
|
|
.BLOCK 1
|
|
|
|
.WORD 17,20
|
|
.BYTE "Invalid operation"
|
|
|
|
.WORD 14,20
|
|
.BYTE "Invalid format"
|
|
.BLOCK 1
|
|
|
|
.WORD 19,20
|
|
.BYTE "Interrupted by user"
|
|
|
|
MATHERROR:
|
|
_C_A_2_STDLIB:
|
|
|
|
.WORD 37,38
|
|
.BYTE "Invalid argument to sqrt/ln/tan/cotan"
|
|
|
|
PEXECERROR:
|
|
_C_A_3_STDLIB:
|
|
|
|
.WORD 27,28
|
|
.BYTE "Invalid arguments for PExec"
|
|
|
|
DATETIMEMTAB:
|
|
_C_A_4_STDLIB:
|
|
|
|
.WORD 31,28,31,30,31,30,31,31
|
|
.WORD 30,31,30,31,31,29,31,30
|
|
.WORD 31,30,31,31,30,31,30,31
|
|
_C_A_5_STDLIB:
|
|
|
|
.WORD 32,9,13,10
|
|
_C_A_6_STDLIB:
|
|
|
|
.WORD 10,13,32,9
|
|
_C_A_7_STDLIB:
|
|
|
|
.WORD 43,45,46,69,101
|
|
_C_A_8_STDLIB:
|
|
|
|
.WORD 35,37
|