Tridora-CPU/lib/stdlib.s

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