mirror of https://github.com/A2osX/A2osX.git
Kernel 0.94++
This commit is contained in:
parent
572c583002
commit
33d273b220
|
@ -270,7 +270,7 @@ The Reference Word Set contain both Standard Word Definitions and uncontrolled
|
|||
| ABORT" | flag -- | I,C | | Used in a colon-definition in the form:<br>ABORT" stack empty"<br>If the flag is true, print the following text, till ". Then execute ABORT. | |
|
||||
| AGAIN | | I,C | | Effect an unconditional jump back to the start of a BEGIN-AGAIN loop. | |
|
||||
| ASCII | -- char (executing)<br>- (compiling) | I,C | | Leave the ASCII character value of the next non-blank character in the input stream. If compiling, compile it as a literal, which will be later left when executed. | |
|
||||
| ASHIFT | n1 n2 -- n3 | | | Shift the value n1 arithemetically n2 bits left if n2 is positive, shifting zeros into the least-significant bit positions. If n2 is negative, n1 is shifted right. Sign extension is to be consistent with the processor's arithmetic shift. | |
|
||||
| ASHIFT | n1 n2 -- n3 | | | Shift the value n1 arithmetically n2 bits left if n2 is positive, shifting zeros into the least-significant bit positions. If n2 is negative, n1 is shifted right. Sign extension is to be consistent with the processor's arithmetic shift. | |
|
||||
| B/BUF | -- 1024 | | | A constant leaving 1024, the number of bytes per block buffer. | |
|
||||
| BELL | | | | Activate a terminal bell or noise-maker as appropriate to the device in use. | |
|
||||
| BL | -- n | | | Leave the ASCII character value for space (decimal 32). | |
|
||||
|
|
|
@ -122,7 +122,7 @@ Create a hDEV
|
|||
# OpenDir
|
||||
|
||||
## C
|
||||
`int hDIR opendir (const char * dirpath);`
|
||||
`short int hDIR opendir (const char * dirpath);`
|
||||
|
||||
## ASM
|
||||
`>LDYA dirpath`
|
||||
|
@ -231,17 +231,21 @@ Return X+Y, X-Y, X*Y, X/Y, X mod Y....
|
|||
## RETURN VALUE
|
||||
On stack (long)
|
||||
|
||||
# FAdd,FSub,FMult,FDiv,FPwr
|
||||
Return X+Y, X-Y, X*Y, X/Y, X^Y
|
||||
# FAdd,FSub,FMul,FDiv,FPwr
|
||||
Return X*Y, X/Y, X+Y, X-Y
|
||||
|
||||
## C
|
||||
`float pwr ( float x, float y);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHF X (float)`
|
||||
`>PUSHF Y (float)`
|
||||
`>FPU fmul`
|
||||
`>FPU fdiv`
|
||||
`>FPU fmod` TODO
|
||||
`>FPU fadd`
|
||||
`>FPU fsub`
|
||||
`>FPU fmult`
|
||||
`>FPU fdiv`
|
||||
`>FPU fpwr`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -424,7 +428,7 @@ Load a file in AUX memory (Stock Objects)
|
|||
# GetStkObj
|
||||
|
||||
## C
|
||||
`int *ptr getstkobj (shoirt int hStkObj);`
|
||||
`int *ptr getstkobj (short int hStkObj);`
|
||||
|
||||
## ASM
|
||||
`lda hStkObj`
|
||||
|
@ -480,12 +484,11 @@ A = Child PSID
|
|||
`int kill(short int pid, short int sig);`
|
||||
|
||||
## ASM
|
||||
`>PUSHB pid`
|
||||
`>PUSHB sig`
|
||||
`lda pid`
|
||||
`>SYSCALL kill`
|
||||
|
||||
## RETURN VALUE
|
||||
A = Child PSID
|
||||
|
||||
# LoadTxtFile
|
||||
Load TXT a file in memory (with ending 0)
|
||||
|
@ -1355,8 +1358,8 @@ Concatenate strings
|
|||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHWI destination`
|
||||
`>PUSHWI source`
|
||||
`>LDYAI destination`
|
||||
`>SYSCALL strcat`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -1370,8 +1373,8 @@ Copy string
|
|||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHWI destination`
|
||||
`>PUSHWI source`
|
||||
`>LDYAI destination`
|
||||
`>SYSCALL strcpy`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -1416,8 +1419,8 @@ Compare 2 strings
|
|||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHWI s1`
|
||||
`>PUSHWI s2`
|
||||
`>LDYAI s1`
|
||||
`>SYSCALL strcmp`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -1434,8 +1437,8 @@ Compare 2 strings, ignoring case
|
|||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHWI s1`
|
||||
`>PUSHWI s2`
|
||||
`>LDYAI s1`
|
||||
`>SYSCALL strcasecmp`
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -1444,11 +1447,21 @@ CS : no match
|
|||
CC, Y,A=0
|
||||
CS, Y,A > 0 or < 0
|
||||
|
||||
# StrVSet
|
||||
|
||||
## ASM
|
||||
`>PUSHB hSTRV`
|
||||
`>PUSHW id`
|
||||
`>PUSHW ptr`
|
||||
`>SYSCALL StrVSet`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# StrVGet
|
||||
|
||||
## ASM
|
||||
`>PUSHB hSTRV`
|
||||
`>PUSHB index`
|
||||
`>PUSHW id`
|
||||
`>PUSHW ptr`
|
||||
`>SYSCALL StrVGet`
|
||||
|
||||
|
@ -1456,25 +1469,21 @@ CS : no match
|
|||
CC: Y,A = Ptr
|
||||
CS: Y,A = NULL
|
||||
|
||||
# StrVShift
|
||||
# StrVNew
|
||||
|
||||
## ASM
|
||||
`>PUSHB hSTRV`
|
||||
`>PUSHB index`
|
||||
`>SYSCALL StrVShift`
|
||||
`>LDYA size`
|
||||
`>SYSCALL StrVNew`
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
# StrVAdd
|
||||
# StrVFree
|
||||
|
||||
## ASM
|
||||
`>PUSHB hSTRV`
|
||||
`>PUSHW str`
|
||||
`>SYSCALL StrVAdd`
|
||||
`lda hSTRV`
|
||||
`>SYSCALL StrVFree`
|
||||
|
||||
## RETURN VALUE
|
||||
CC : str added to hSTRV
|
||||
CS : hSTRV full
|
||||
|
||||
# Time
|
||||
Get System Time in Buffer
|
||||
|
|
|
@ -6,7 +6,7 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
|
|||
# D2TrkRead16s
|
||||
Write a track (16 sectors)
|
||||
PUSHB = DSSS0000
|
||||
PUSHB = TrackNum * 4 : 0->136+
|
||||
PUSHB = TrackNum * 4 : 0->136+
|
||||
PUSHW = Ptr to 16*256 buffer
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -16,7 +16,9 @@ Write a track (16 sectors)
|
|||
# D2TrkWrite16s
|
||||
Write a track (16 sectors)
|
||||
PUSHB = DSSS0000
|
||||
PUSHB = TrackNum * 4 : 0->136+
|
||||
PUSHB = VolNum
|
||||
PUSHB = HeadNum (0,1)
|
||||
PUSHB = TrackNum * 4 : 0->136+
|
||||
PUSHW = Ptr to 16*256 buffer
|
||||
|
||||
## RETURN VALUE
|
||||
|
@ -38,7 +40,7 @@ Write a track (NIBBLE)
|
|||
Compute space needed for ProDOS Catalog
|
||||
|
||||
## C
|
||||
int getprodoscatsize (short int options, short int catsize, int devsize );
|
||||
int getprodoscatsize (short int options, short int catsize, int devsize );
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
|
@ -46,7 +48,7 @@ int getprodoscatsize (short int options, short int catsize, int devsize );
|
|||
PUSHB = Catalog Size (in blocks)
|
||||
PUSHB = Options
|
||||
|
||||
## RETURN VALUE
|
||||
## RETURN VALUE
|
||||
X=BlockCount (max 22)
|
||||
Y,A=BufSize (max $4400)
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -269,60 +269,128 @@ CORE.Run lda #$0 RTS
|
|||
|
||||
jmp (ZPCodeBufPtr)
|
||||
*--------------------------------------
|
||||
CORE.Lookup >STYA ZPPtr1
|
||||
CORE.LookupOPS lda (ZPInputBufPtr)
|
||||
jsr CORE.IsOPSChar
|
||||
bcc .55
|
||||
|
||||
jsr CORE.IsLetter
|
||||
bcs .99
|
||||
|
||||
sec
|
||||
|
||||
.55 ror bFlag
|
||||
|
||||
>LDYA L.ACOS.OPS
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 ldy #$ff
|
||||
|
||||
.2 jsr .7 get next valid char in src text
|
||||
bcs .3
|
||||
.2 jsr .10 get next valid char in src text
|
||||
bcs .4
|
||||
|
||||
.20 jsr CORE.ToUpperCase
|
||||
jsr CORE.ToUpperCase
|
||||
eor (ZPPtr1),y match table char ?
|
||||
asl compare only 7 bits
|
||||
bne .4 no match...get next table keyword
|
||||
bne .6 no match...get next table keyword
|
||||
|
||||
bcc .2 not last char in this keyword
|
||||
|
||||
jsr .7 next char in text...
|
||||
jsr .10 next char in text...
|
||||
bcc .4 valid....failed
|
||||
|
||||
.8 tya Keyword Len
|
||||
.3 tya Keyword Len
|
||||
|
||||
jmp CORE.SkipA
|
||||
|
||||
.3 dey
|
||||
.4 dey
|
||||
lda (ZPPtr1),y was last char in this keyword ?
|
||||
bmi .8
|
||||
bmi .3
|
||||
|
||||
iny
|
||||
.41 jsr CORE.IncPtr1 skip chars to next keyword
|
||||
.5 jsr CORE.IncPtr1 skip chars to next keyword
|
||||
|
||||
.4 lda (ZPPtr1)
|
||||
bpl .41
|
||||
.6 lda (ZPPtr1)
|
||||
bpl .5
|
||||
|
||||
jsr CORE.IncPtr1
|
||||
|
||||
.6 inx
|
||||
inx
|
||||
lda (ZPPtr1) Array Ending 0, lookup failed
|
||||
bne .1
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.10 iny
|
||||
lda (ZPInputBufPtr),y Get Src text char...
|
||||
beq .19 end of text
|
||||
|
||||
.7 iny
|
||||
bit bFlag
|
||||
bmi .11 Letter expected
|
||||
|
||||
jmp CORE.IsOPSChar
|
||||
|
||||
.11 jmp CORE.IsLetter
|
||||
|
||||
.19 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
CORE.Lookup >STYA ZPPtr1
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 ldy #$ff
|
||||
|
||||
.2 jsr .10 get next valid char in src text
|
||||
bcs .4
|
||||
|
||||
jsr CORE.ToUpperCase
|
||||
eor (ZPPtr1),y match table char ?
|
||||
asl compare only 7 bits
|
||||
bne .6 no match...get next table keyword
|
||||
|
||||
bcc .2 not last char in this keyword
|
||||
|
||||
jsr .10 next char in text...
|
||||
bcc .4 valid....failed
|
||||
|
||||
.3 tya Keyword Len
|
||||
|
||||
jmp CORE.SkipA
|
||||
|
||||
.4 dey
|
||||
lda (ZPPtr1),y was last char in this keyword ?
|
||||
bmi .3
|
||||
|
||||
iny
|
||||
.5 jsr CORE.IncPtr1 skip chars to next keyword
|
||||
|
||||
.6 lda (ZPPtr1)
|
||||
bpl .5
|
||||
|
||||
jsr CORE.IncPtr1
|
||||
|
||||
inx
|
||||
inx
|
||||
lda (ZPPtr1) Array Ending 0, lookup failed
|
||||
bne .1
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.10 iny
|
||||
lda (ZPInputBufPtr),y Get Src text char...
|
||||
beq .9 end of text
|
||||
|
||||
cmp #'$'
|
||||
bne .70
|
||||
bne .11
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.70 jmp CORE.IsLetterOrDigit CS=end of valid chars
|
||||
.11 jmp CORE.IsLetterOrDigit CS=end of valid chars
|
||||
*--------------------------------------
|
||||
CORE.IncPtr1 inc ZPPtr1
|
||||
bne .8
|
||||
|
@ -517,22 +585,22 @@ CORE.ToUpperCase
|
|||
CORE.ToUpperCase.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.IsAOPSChar ldx #0
|
||||
CORE.IsOPSChar phx
|
||||
|
||||
ldx #ACOS.OPSChars.Cnt-1
|
||||
|
||||
.1 cmp ACOS.AOPSChars,x
|
||||
.1 cmp ACOS.OPSChars,x
|
||||
beq .8
|
||||
|
||||
inx
|
||||
cpx #ACOS.AOPSChars.Cnt
|
||||
bcc .1
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
plx
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 txa
|
||||
asl
|
||||
tax
|
||||
|
||||
* clc
|
||||
.8 plx
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.IsEndExp cmp #')'
|
||||
|
|
|
@ -15,7 +15,7 @@ EXP.Eval.R lda EXP.AOPS
|
|||
*--------------------------------------
|
||||
.10 jsr CORE.GetCharNB
|
||||
bcs .39
|
||||
|
||||
|
||||
.11 cmp #'('
|
||||
bne .12
|
||||
|
||||
|
@ -27,11 +27,11 @@ EXP.Eval.R lda EXP.AOPS
|
|||
|
||||
jsr CORE.GetCharNB
|
||||
bcs .39
|
||||
|
||||
|
||||
cmp #')'
|
||||
sec
|
||||
bne .39
|
||||
|
||||
|
||||
jsr CORE.GetNextCharNB skip )
|
||||
bra .41
|
||||
|
||||
|
@ -81,8 +81,8 @@ EXP.Eval.R lda EXP.AOPS
|
|||
|
||||
.50 jsr CORE.IsEndExp
|
||||
bcs .80
|
||||
|
||||
jsr EXP.GetOP
|
||||
|
||||
jsr CORE.LookupOPS
|
||||
bcs .90
|
||||
|
||||
stx EXP.AOPS
|
||||
|
@ -95,8 +95,9 @@ EXP.Eval.R lda EXP.AOPS
|
|||
|
||||
inc pStack prev op has precedence
|
||||
|
||||
tax
|
||||
jsr EXP.OPjmpX go compute (arg1 op1 arg2)
|
||||
tay
|
||||
ldx ACOS.OPS.MAP-1,y
|
||||
jsr CODE.FPUCALL go compute (arg1 op1 arg2)
|
||||
|
||||
.62 lda EXP.AOPS we must compute arg2 op2 arg3 before
|
||||
>PUSHA
|
||||
|
@ -106,10 +107,11 @@ EXP.Eval.R lda EXP.AOPS
|
|||
jmp .11
|
||||
*--------------------------------------
|
||||
.80 >PULLA
|
||||
tax
|
||||
tay
|
||||
bmi .88 nothing to do
|
||||
|
||||
jsr EXP.OPjmpX
|
||||
ldx ACOS.OPS.MAP-1,y
|
||||
jsr CODE.FPUCALL
|
||||
bra .80
|
||||
|
||||
.90 lda #E.ESYN
|
||||
|
@ -132,7 +134,6 @@ EXP.Eval.R lda EXP.AOPS
|
|||
rts
|
||||
*--------------------------------------
|
||||
EXP.FNjmpX jmp (J.ACOS.FN,x)
|
||||
EXP.OPjmpX jmp (J.ACOS.AOPS,x)
|
||||
*--------------------------------------
|
||||
EXP.CreateStrConst
|
||||
lda #'$'
|
||||
|
@ -174,20 +175,6 @@ EXP.CreateStrConst
|
|||
* sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
EXP.GetOP jsr CORE.IsAOPSChar + - * /
|
||||
bcc .9
|
||||
|
||||
>LDYA L.ACOS.AOPS MOD
|
||||
jsr CORE.Lookup
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
* clc
|
||||
adc #ACOS.AOPSChars.Cnt*2
|
||||
tax
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
EXP.Int16 >PUSHW ZPInputBufPtr
|
||||
>PUSHWI ZPInputBufPtr
|
||||
>PUSHBI 10
|
||||
|
@ -247,21 +234,6 @@ EXP.VARLookup >LDA.G hVars
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
EXP.ADD ldx #FPU.ADD16
|
||||
jmp CODE.FPUCALL
|
||||
|
||||
EXP.SUB ldx #FPU.SUB16
|
||||
jmp CODE.FPUCALL
|
||||
|
||||
EXP.MUL ldx #FPU.IMUL16
|
||||
jmp CODE.FPUCALL
|
||||
|
||||
EXP.DIV ldx #FPU.IDIV16
|
||||
jmp CODE.FPUCALL
|
||||
|
||||
EXP.MOD ldx #FPU.IMOD16
|
||||
jmp CODE.FPUCALL
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/bin/acos.s.exp
|
||||
|
|
|
@ -61,7 +61,7 @@ CS.START cld
|
|||
.DA #0
|
||||
.DA CS.END-CS.START Code Size (without Constants)
|
||||
.DA DS.END-DS.START Data SegmentSize
|
||||
.DA #128 Stack Size
|
||||
.DA #256 Stack Size
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
|
@ -84,13 +84,7 @@ L.MSG.FWREFERR .DA MSG.FWREFERR
|
|||
L.MSG.STR .DA MSG.STR
|
||||
L.MSG.INT16 .DA MSG.INT16
|
||||
*--------------------------------------
|
||||
L.ACOS.AOPS .DA ACOS.AOPS
|
||||
J.ACOS.AOPS .DA EXP.ADD
|
||||
.DA EXP.SUB
|
||||
.DA EXP.MUL
|
||||
.DA EXP.DIV
|
||||
.DA EXP.MOD
|
||||
L.ACOS.BOPS .DA ACOS.BOPS
|
||||
L.ACOS.OPS .DA ACOS.OPS
|
||||
L.ACOS.KW .DA ACOS.KW
|
||||
J.ACOS.KW .DA KW.ADDINT
|
||||
.DA KW.APPEND
|
||||
|
@ -515,26 +509,34 @@ MSG.INT16 .AZ "%I"
|
|||
OptionList .AS "DdTt"
|
||||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
||||
*--------------------------------------
|
||||
ACOS.AOPSChars .AS "+-*/"
|
||||
ACOS.AOPSChars.Cnt .EQ *-ACOS.AOPSChars
|
||||
ACOS.OPSChars .AS "+-*/<>="
|
||||
ACOS.OPSChars.Cnt .EQ *-ACOS.OPSChars
|
||||
*--------------------------------------
|
||||
ACOS.AOPS .AT "MOD"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
ACOS.BOPS .AT "="
|
||||
.AT "<>"
|
||||
.AT "><"
|
||||
ACOS.OPS .AT "*"
|
||||
.AT "/"
|
||||
.AT "MOD"
|
||||
.AT "+"
|
||||
.AT "-"
|
||||
.AT "<"
|
||||
.AT ">"
|
||||
.AT "<="
|
||||
.AT "=<"
|
||||
.AT ">"
|
||||
.AT ">="
|
||||
.AT "=>"
|
||||
.AT "NOT"
|
||||
.AT "<>"
|
||||
.AT "><"
|
||||
.AT "="
|
||||
* .AT "NOT"
|
||||
.AT "AND"
|
||||
.AT "OR"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
ACOS.OPS.MAP .DA #FPU.iMUL,#FPU.iDIV,#FPU.iMOD,#FPU.iADD,#FPU.iSUB
|
||||
.DA #FPU.iL,#FPU.iLE,#FPU.iLE
|
||||
.DA #FPU.iG,#FPU.iGE,#FPU.iGE
|
||||
.DA #FPU.iNE,#FPU.iNE,#FPU.iE
|
||||
.DA #FPU.iLAND,#FPU.iLOR
|
||||
*--------------------------------------
|
||||
ACOS.KW .AT "ADDINT"
|
||||
.AT "APPEND"
|
||||
.AT "BYTE"
|
||||
|
|
|
@ -387,14 +387,14 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC
|
|||
*---------------------------------------
|
||||
EXP.OP.MUL >PUSHL SRC.ARG
|
||||
>PUSHL SRC.ACC
|
||||
>FPU MUL32
|
||||
>FPU uMUL
|
||||
>PULLL SRC.ACC
|
||||
clc
|
||||
rts
|
||||
*---------------------------------------
|
||||
EXP.OP.DIV >PUSHL SRC.ARG
|
||||
>PUSHL SRC.ACC
|
||||
>FPU DIV32
|
||||
>FPU uDIV
|
||||
>PULLL SRC.ACC
|
||||
clc
|
||||
rts
|
||||
|
|
|
@ -279,13 +279,14 @@ CS.RUN.SetAttr >PUSHW ZPFullPath
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -255,13 +255,14 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -296,13 +296,14 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -257,13 +257,14 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -238,13 +238,14 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -171,7 +171,7 @@ CSH.Run.1 cmp #C.CR empty line....
|
|||
cmp #';'
|
||||
beq .8
|
||||
|
||||
.99 lda #CSH.E.SYNTAX
|
||||
.99 lda #E.CSYN
|
||||
sec
|
||||
.9 rts
|
||||
|
||||
|
@ -200,7 +200,7 @@ CSH.COMMENTS jsr CSH.GetNextChar
|
|||
|
||||
jmp CSH.SkipLine skip line.....
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -339,9 +339,9 @@ CSH.AddSymbol >LDA.G CSH.hSymbols
|
|||
>SYSCALL SListAddData
|
||||
.9 rts
|
||||
|
||||
.99 lda #CSH.E.OOM
|
||||
.99 lda #E.OOM
|
||||
.HS 2C BIT ABS
|
||||
CSH.TMISMATCH lda #CSH.E.TMISMATCH
|
||||
CSH.TMISMATCH lda #E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -367,7 +367,7 @@ CSH.fDeclaration
|
|||
clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -381,7 +381,7 @@ CSH.GetDeclaration
|
|||
|
||||
bra .8
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
.8 >LEAVE
|
||||
rts
|
||||
|
@ -422,7 +422,7 @@ CSH.SetVarValueFromStack
|
|||
clc
|
||||
rts
|
||||
|
||||
.99 lda #CSH.E.TMISMATCH
|
||||
.99 lda #E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -551,7 +551,7 @@ CSH.GetVarValueOnStack
|
|||
clc X = Var Type
|
||||
.9 rts
|
||||
|
||||
.99 lda #CSH.E.TMISMATCH
|
||||
.99 lda #E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -598,7 +598,7 @@ CSH.CheckStack tax
|
|||
clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -614,12 +614,13 @@ CSH.Push pha
|
|||
rts
|
||||
|
||||
.9 pla
|
||||
lda #CSH.E.SOVERFLW
|
||||
lda #E.STKOVERFLOW
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.Pop >LDA.G CSH.StackPtr
|
||||
beq .9
|
||||
|
||||
pha
|
||||
inc
|
||||
sta (pData),y
|
||||
|
@ -628,7 +629,7 @@ CSH.Pop >LDA.G CSH.StackPtr
|
|||
clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.STACKERR
|
||||
.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -711,7 +712,7 @@ CSH.CheckSpace jsr CSH.GetChar
|
|||
jsr CSH.GetNextCharNB
|
||||
bcc CSH.GetNextCharNB.RTS
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -16,7 +16,7 @@ CSH.DIR jsr CSH.GetNextCharNB
|
|||
|
||||
jmp (J.CSH.DIRS,x)
|
||||
|
||||
.91 lda #CSH.E.INVDIR
|
||||
.91 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -63,7 +63,7 @@ CSH.DIR.DEFINE jsr CSH.CheckSpace
|
|||
|
||||
jmp CSH.SkipLine
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -105,7 +105,7 @@ CSH.DIR.INCLUDE >STZ.G PathBuf
|
|||
cpy #64
|
||||
bne .3
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
|
|
|
@ -2,14 +2,30 @@ NEW
|
|||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* A = Type, X = OP
|
||||
* Y = Type, A = OP
|
||||
*--------------------------------------
|
||||
CSH.BOP.EXEC jmp (J.CSH.BOPS,x)
|
||||
*--------------------------------------
|
||||
CSH.BOPS.ADD asl
|
||||
tax
|
||||
jmp (J.CSH.BOPS.ADDt,x)
|
||||
CSH.BOP.EXEC cpy #CSH.T.UINT
|
||||
bcs .1
|
||||
|
||||
|
||||
.1 clc
|
||||
adc CSH.Type2FPU-3,y
|
||||
tax
|
||||
jsr A2osX.FPUCALL
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.MUL clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.DIV clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.MOD clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.ADD
|
||||
CSH.BOPS.ADDi8
|
||||
CSH.BOPS.ADDu8 clc
|
||||
>PULLA
|
||||
|
@ -17,24 +33,8 @@ CSH.BOPS.ADDu8 clc
|
|||
sta (pStack)
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.ADDi16
|
||||
CSH.BOPS.ADDu16 >FPU ADD16
|
||||
clc
|
||||
rts
|
||||
CSH.BOPS.ADDi32
|
||||
CSH.BOPS.ADDu32 >FPU ADD32
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.ADDf >FPU FADD
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.SUB asl
|
||||
tax
|
||||
jmp (J.CSH.BOPS.SUBt,x)
|
||||
|
||||
CSH.BOPS.SUB
|
||||
CSH.BOPS.SUBi8
|
||||
CSH.BOPS.SUBu8 sec
|
||||
ldy #1
|
||||
|
@ -44,52 +44,8 @@ CSH.BOPS.SUBu8 sec
|
|||
inc pStack
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.SUBi16
|
||||
CSH.BOPS.SUBu16 >FPU SUB16
|
||||
clc
|
||||
rts
|
||||
CSH.BOPS.SUBi32
|
||||
CSH.BOPS.SUBu32 >FPU SUB32
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.SUBf >FPU FSUB
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.MUL cmp #CSH.T.FLOAT
|
||||
beq .8
|
||||
|
||||
>FPU MUL32
|
||||
|
||||
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.8 >FPU FMULT
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.DIV cmp #CSH.T.FLOAT
|
||||
beq .8
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.8 >FPU FDIV
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.MOD clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.SHL asl
|
||||
tax
|
||||
jmp (J.CSH.BOPS.SHLt,x)
|
||||
|
||||
CSH.BOPS.SHL
|
||||
CSH.BOPS.SHL8 lda (pStack)
|
||||
tax
|
||||
beq .8
|
||||
|
@ -106,80 +62,20 @@ CSH.BOPS.SHL8 lda (pStack)
|
|||
.8 inc pStack
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.SHL16 lda (pStack)
|
||||
tax
|
||||
beq .8
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
|
||||
iny
|
||||
|
||||
.1 asl
|
||||
pha
|
||||
|
||||
lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
pla
|
||||
dex
|
||||
bne .1
|
||||
|
||||
dey
|
||||
sta (pStack),y
|
||||
|
||||
.8 inc pStack
|
||||
inc pStack
|
||||
clc
|
||||
rts
|
||||
|
||||
CSH.BOPS.SHL32 lda (pStack)
|
||||
tax
|
||||
beq .8
|
||||
|
||||
ldy #4
|
||||
lda (pStack),y
|
||||
|
||||
.1 asl
|
||||
pha
|
||||
|
||||
ldy #5
|
||||
lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
iny
|
||||
lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
iny
|
||||
lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
pla
|
||||
dex
|
||||
bne .1
|
||||
|
||||
ldy #4
|
||||
sta (pStack),y
|
||||
|
||||
.8 inc pStack
|
||||
inc pStack
|
||||
inc pStack
|
||||
inc pStack
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CSH.BOPS.SHR
|
||||
|
||||
CSH.BOPS.L
|
||||
CSH.BOPS.G
|
||||
CSH.BOPS.LE
|
||||
CSH.BOPS.GE
|
||||
CSH.BOPS.EQ
|
||||
CSH.BOPS.NE
|
||||
|
||||
CSH.BOPS.AND
|
||||
CSH.BOPS.OR
|
||||
CSH.BOPS.EOR
|
||||
|
||||
CSH.BOPS.LAND
|
||||
CSH.BOPS.LOR
|
||||
|
||||
|
@ -224,7 +120,8 @@ EXEC.puts >PULLYA
|
|||
>PUSHYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
EXEC.printf >SYSCALL PrintF
|
||||
EXEC.printf
|
||||
>SYSCALL PrintF
|
||||
>PUSHYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -115,9 +115,8 @@ CSH.ExpEval ldx ZPPtr1
|
|||
cmp ZPPtr2+1
|
||||
bcc .33 OP(n) has precedence, on stack : V1,V2
|
||||
|
||||
tax OP(n-1) has precedence...
|
||||
ldy ZPPtr2 OP(n-1) has precedence...
|
||||
|
||||
lda ZPPtr2 Var Type
|
||||
jsr CSH.BOP.EXEC compute V(n-1) <OP(n-1)> V(n)
|
||||
bcc .32
|
||||
|
||||
|
@ -129,16 +128,16 @@ CSH.ExpEval ldx ZPPtr1
|
|||
|
||||
jmp .10 go check for next token
|
||||
*--------------------------------------
|
||||
.80 plx any OP on stack ?
|
||||
.80 pla any OP on stack ?
|
||||
bmi .88
|
||||
|
||||
lda ZPPtr2 Var Type
|
||||
ldy ZPPtr2 Var Type
|
||||
jsr CSH.BOP.EXEC
|
||||
bcc .80
|
||||
|
||||
bcs .99
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.ESYN
|
||||
|
||||
.99 plx
|
||||
bpl .99
|
||||
|
@ -186,7 +185,8 @@ CSH.AddContCharP
|
|||
|
||||
clc
|
||||
rts
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
|
||||
.9 lda #E.ESYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -194,11 +194,9 @@ CSH.GetNumOnStack
|
|||
txa
|
||||
beq .99
|
||||
|
||||
cpx #CSH.T.ULONG+1
|
||||
bcs .99
|
||||
|
||||
cpx #CSH.T.FLOAT
|
||||
bne .1
|
||||
bcc .1
|
||||
bne .99
|
||||
|
||||
>PUSHW ZPInputBufPtr
|
||||
>PUSHWI ZPInputBufPtr
|
||||
|
@ -244,7 +242,7 @@ CSH.GetNumOnStack
|
|||
.8 clc
|
||||
.9 rts
|
||||
|
||||
.99 lda #CSH.E.TMISMATCH
|
||||
.99 lda #E.TMISMATCH
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -52,7 +52,7 @@ CSH.IF jsr CSH.GetCharNB
|
|||
.6 jsr CSH.SkipBlock
|
||||
|
||||
bcc .99
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -76,7 +76,7 @@ CSH.BREAK
|
|||
CSH.CONTINUE
|
||||
CSH.SIZEOF
|
||||
*--------------------------------------
|
||||
CSH.TYPEDEF lda #CSH.E.SYNTAX
|
||||
CSH.TYPEDEF lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -124,7 +124,7 @@ CSH.CONST lda ZPVarQual
|
|||
clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -157,7 +157,7 @@ CSH.UNSIGNED clc
|
|||
|
||||
.9 plp
|
||||
|
||||
lda #CSH.E.SYNTAX
|
||||
lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -172,7 +172,7 @@ CSH.SHORT jsr CSH.CheckSpace
|
|||
cpx #4 only int allowed
|
||||
beq CSH.SCHAR
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -272,7 +272,7 @@ CSH.TYPE stx ZPVarType
|
|||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda #CSH.E.SYNTAX
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -389,9 +389,9 @@ CSH.fCall ldx ZPPtr1
|
|||
plx restore returned type
|
||||
rts
|
||||
|
||||
.90 lda #CSH.E.SYNTAX
|
||||
.90 lda #E.CSYN
|
||||
.HS 2C BIT ABS
|
||||
.91 lda #CSH.E.TMISMATCH
|
||||
.91 lda #E.TMISMATCH
|
||||
sec
|
||||
|
||||
.9 plx Discard function index
|
||||
|
|
|
@ -10,20 +10,22 @@ NEW
|
|||
.INB inc/mli.i
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
CSH.E.SYNTAX .EQ $C0
|
||||
CSH.E.STACKERR .EQ $C2
|
||||
CSH.E.SOVERFLW .EQ $C3
|
||||
*E.NOWHILE .EQ $C4
|
||||
*E.NOFOR .EQ $C5
|
||||
*E.NOIF .EQ $C6
|
||||
CSH.E.UNEXPEOF .EQ $C8
|
||||
CSH.E.UNDEF .EQ $C9
|
||||
CSH.E.INVDIR .EQ $CA
|
||||
*
|
||||
CSH.E.NOVERFLW .EQ $D0
|
||||
CSH.E.TMISMATCH .EQ $D1
|
||||
CSH.E.OOM .EQ $D2
|
||||
CSH.E.DUP .EQ $D3
|
||||
CSH.T.VOID .EQ 0
|
||||
CSH.T.UCHAR .EQ 1
|
||||
CSH.T.SCHAR .EQ 2
|
||||
CSH.T.UINT .EQ 3
|
||||
CSH.T.SINT .EQ 4
|
||||
CSH.T.ULONG .EQ 5
|
||||
CSH.T.SLONG .EQ 6
|
||||
CSH.T.FLOAT .EQ 7
|
||||
CSH.T.VARIADIC .EQ $FF
|
||||
*--------------------------------------
|
||||
CSH.Q.POINTER .EQ %01000000
|
||||
CSH.Q.PPOINTER .EQ %10000000
|
||||
CSH.Q.PPPOINTER .EQ %11000000
|
||||
CSH.Q.PCONST .EQ %00100000
|
||||
CSH.Q.CONST .EQ %00010000
|
||||
CSH.Q.FUNC .EQ %00001000
|
||||
*--------------------------------------
|
||||
* Zero Page Segment, up to 32 bytes
|
||||
*--------------------------------------
|
||||
|
@ -86,16 +88,16 @@ L.MSG.DEBUG .DA MSG.DEBUG
|
|||
L.MSG.ERR .DA MSG.ERR
|
||||
L.ENV.INCLUDE .DA ENV.INCLUDE
|
||||
L.CSH.BOPS .DA CSH.BOPS
|
||||
J.CSH.BOPS .DA CSH.BOPS.ADD
|
||||
.DA CSH.BOPS.SUB
|
||||
.DA CSH.BOPS.MUL
|
||||
J.CSH.BOPS .DA CSH.BOPS.MUL
|
||||
.DA CSH.BOPS.DIV
|
||||
.DA CSH.BOPS.MOD
|
||||
.DA CSH.BOPS.ADD
|
||||
.DA CSH.BOPS.SUB
|
||||
.DA CSH.BOPS.SHL
|
||||
.DA CSH.BOPS.SHR
|
||||
.DA CSH.BOPS.L
|
||||
.DA CSH.BOPS.G
|
||||
.DA CSH.BOPS.LE
|
||||
.DA CSH.BOPS.G
|
||||
.DA CSH.BOPS.GE
|
||||
.DA CSH.BOPS.EQ
|
||||
.DA CSH.BOPS.NE
|
||||
|
@ -104,30 +106,6 @@ J.CSH.BOPS .DA CSH.BOPS.ADD
|
|||
.DA CSH.BOPS.EOR
|
||||
.DA CSH.BOPS.LAND
|
||||
.DA CSH.BOPS.LOR
|
||||
J.CSH.BOPS.ADDt .DA CSH.TMISMATCH
|
||||
.DA CSH.BOPS.ADDi8
|
||||
.DA CSH.BOPS.ADDi16
|
||||
.DA CSH.BOPS.ADDi32
|
||||
.DA CSH.BOPS.ADDu8
|
||||
.DA CSH.BOPS.ADDu16
|
||||
.DA CSH.BOPS.ADDu32
|
||||
.DA CSH.BOPS.ADDf
|
||||
J.CSH.BOPS.SUBt .DA CSH.TMISMATCH
|
||||
.DA CSH.BOPS.SUBi8
|
||||
.DA CSH.BOPS.SUBi16
|
||||
.DA CSH.BOPS.SUBi32
|
||||
.DA CSH.BOPS.SUBu8
|
||||
.DA CSH.BOPS.SUBu16
|
||||
.DA CSH.BOPS.SUBu32
|
||||
.DA CSH.BOPS.SUBf
|
||||
J.CSH.BOPS.SHLt .DA CSH.TMISMATCH
|
||||
.DA CSH.BOPS.SHL8
|
||||
.DA CSH.BOPS.SHL16
|
||||
.DA CSH.BOPS.SHL32
|
||||
.DA CSH.BOPS.SHL8
|
||||
.DA CSH.BOPS.SHL16
|
||||
.DA CSH.BOPS.SHL32
|
||||
.DA CSH.TMISMATCH
|
||||
L.CSH.FN .DA CSH.FN
|
||||
L.CSH.DIRS .DA CSH.DIRS
|
||||
L.CSH.KW .DA CSH.KW
|
||||
|
@ -450,23 +428,6 @@ OptionList .AS "DdTt"
|
|||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
CSH.T.VOID .EQ 0
|
||||
CSH.T.SCHAR .EQ 1
|
||||
CSH.T.SINT .EQ 2
|
||||
CSH.T.SLONG .EQ 3
|
||||
CSH.T.FLOAT .EQ 4
|
||||
CSH.T.UCHAR .EQ 5
|
||||
CSH.T.UINT .EQ 6
|
||||
CSH.T.ULONG .EQ 7
|
||||
CSH.T.VARIADIC .EQ $FF
|
||||
*--------------------------------------
|
||||
CSH.Q.POINTER .EQ %01000000
|
||||
CSH.Q.PPOINTER .EQ %10000000
|
||||
CSH.Q.PPPOINTER .EQ %11000000
|
||||
CSH.Q.PCONST .EQ %00100000
|
||||
CSH.Q.CONST .EQ %00010000
|
||||
CSH.Q.FUNC .EQ %00001000
|
||||
*--------------------------------------
|
||||
CSH.OPChars .AS "!~+-*/%=&|^<>"
|
||||
CSH.OPChars.Cnt .EQ *-CSH.OPChars
|
||||
*--------------------------------------
|
||||
|
@ -505,16 +466,16 @@ CSH.AOPS >PSTR "="
|
|||
* Bitwise Operators: & | ^ ~
|
||||
* Logical Operators: && ||
|
||||
*--------------------------------------
|
||||
CSH.BOPS >PSTR "+"
|
||||
>PSTR "-"
|
||||
>PSTR "*"
|
||||
CSH.BOPS >PSTR "*"
|
||||
>PSTR "/"
|
||||
>PSTR "%"
|
||||
>PSTR "+"
|
||||
>PSTR "-"
|
||||
>PSTR "<<"
|
||||
>PSTR ">>"
|
||||
>PSTR "<"
|
||||
>PSTR ">"
|
||||
>PSTR "<="
|
||||
>PSTR ">"
|
||||
>PSTR ">="
|
||||
>PSTR "=="
|
||||
>PSTR "!="
|
||||
|
@ -525,6 +486,8 @@ CSH.BOPS >PSTR "+"
|
|||
>PSTR "||"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL
|
||||
*--------------------------------------
|
||||
* Reserved Directives:
|
||||
*--------------------------------------
|
||||
CSH.DIRS >PSTR "define"
|
||||
|
@ -559,7 +522,7 @@ CSH.TYPES >PSTR "void"
|
|||
CSH.FTYPES >PSTR "fastcall"
|
||||
* .HS 00
|
||||
*--------------------------------------
|
||||
CSH.TYPESIZE .HS 0001020405010204
|
||||
CSH.TYPESIZE .HS 0001010202040405
|
||||
*--------------------------------------
|
||||
CSH.FN
|
||||
* float cos ( float x );
|
||||
|
|
|
@ -126,10 +126,11 @@ CS.RUN lda #C.SPACE
|
|||
lda ArgIndex
|
||||
beq .80
|
||||
|
||||
>PUSHW ZPBufPtr
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>LDYA ZPBufPtr
|
||||
>SYSCALL StrCpy
|
||||
|
||||
jsr CS.RUN.OUT
|
||||
bcs .9
|
||||
|
||||
|
|
|
@ -136,8 +136,8 @@ CS.RUN.DUMP >PUSHB ETKCFG+S.NETCFG.DevID
|
|||
|
||||
>LEA.G DCB.NIC
|
||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
sta IOCTL+S.IOCTL.STATCODE
|
||||
lda #S.IOCTL.S.GETDCB
|
||||
sta IOCTL+S.IOCTL.S
|
||||
|
||||
>PUSHB ETKCFG+S.NETCFG.DevID
|
||||
>PUSHBI IOCTL.STATUS
|
||||
|
|
|
@ -3,11 +3,11 @@ NEW
|
|||
*--------------------------------------
|
||||
KW.Lookup >LDYA L.KEYWORDS
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 ldy #$ff
|
||||
|
||||
|
||||
.2 jsr .7 get next valid char in src text
|
||||
bcs .3
|
||||
|
||||
|
@ -24,8 +24,8 @@ KW.Lookup >LDYA L.KEYWORDS
|
|||
.8 tya Keyword Len
|
||||
|
||||
jsr NextKW
|
||||
|
||||
clc
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 dey
|
||||
|
@ -50,7 +50,7 @@ KW.Lookup >LDYA L.KEYWORDS
|
|||
.7 iny
|
||||
lda (ZPCLBufPtr),y Get Src text char...
|
||||
beq .9 end of text
|
||||
|
||||
|
||||
jmp IsSpaceOrCR CS=end of valid chars
|
||||
*--------------------------------------
|
||||
KW.INVALID lda #E.CSYN
|
||||
|
@ -61,7 +61,7 @@ KW.qDUP lda (pStack)
|
|||
ldy #1
|
||||
ora (pStack),y
|
||||
bne KW.DUP
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -70,10 +70,10 @@ KW.DUP lda pStack
|
|||
|
||||
cmp #$FF
|
||||
bcs .9
|
||||
|
||||
|
||||
cmp #2
|
||||
bcc .99
|
||||
|
||||
|
||||
ldy #1
|
||||
lda (pStack),y
|
||||
>PUSHA
|
||||
|
@ -81,25 +81,25 @@ KW.DUP lda pStack
|
|||
>PUSHA
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
|
||||
|
||||
.99 lda #E.STKOVERFLOW
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.DROP lda pStack
|
||||
beq .9
|
||||
|
||||
|
||||
inc pStack
|
||||
beq .9
|
||||
inc pStack
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
|
@ -107,16 +107,16 @@ KW.DROP lda pStack
|
|||
KW.SWAP ldy #3
|
||||
lda (pStack),y
|
||||
pha
|
||||
|
||||
|
||||
dey #2
|
||||
lda (pStack),y
|
||||
pha
|
||||
|
||||
|
||||
lda (pStack)
|
||||
tax
|
||||
pla
|
||||
sta (pStack)
|
||||
|
||||
|
||||
txa
|
||||
sta (pStack),y #2
|
||||
|
||||
|
@ -136,10 +136,10 @@ KW.SWAP ldy #3
|
|||
*--------------------------------------
|
||||
KW.OVER jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
cmp #2
|
||||
bcc .99
|
||||
|
||||
|
||||
ldy #3
|
||||
lda (pStack),y
|
||||
>PUSHA
|
||||
|
@ -155,19 +155,19 @@ KW.OVER jsr CheckStackPop4
|
|||
*--------------------------------------
|
||||
KW.ROT lda pStack
|
||||
beq .9
|
||||
|
||||
|
||||
cmp #$FB
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #5
|
||||
lda (pStack),y n1 HI
|
||||
pha
|
||||
dey
|
||||
lda (pStack),y n1 LO
|
||||
pha
|
||||
|
||||
|
||||
.1 dey
|
||||
|
||||
|
||||
lda (pStack),y
|
||||
iny
|
||||
iny
|
||||
|
@ -177,101 +177,101 @@ KW.ROT lda pStack
|
|||
bne .1
|
||||
|
||||
iny
|
||||
|
||||
|
||||
pla
|
||||
sta (pStack)
|
||||
pla
|
||||
sta (pStack),y
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.Add jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
>FPU ADD16
|
||||
|
||||
>FPU iADD
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.DAdd >FPU ADD32
|
||||
KW.DAdd >FPU lADD
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.Sub jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
>FPU SUB16
|
||||
|
||||
>FPU iSUB
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.DSub >FPU SUB32
|
||||
KW.DSub >FPU lSUB
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.Mul jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
>FPU IMUL16
|
||||
|
||||
>FPU iMUL
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.Div jsr KW.DivMoD.1
|
||||
bcs .9
|
||||
|
||||
|
||||
>LDYA ZPPtr2
|
||||
jsr KW.PushWSigned
|
||||
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.Mod jsr KW.DivMoD.1
|
||||
bcs .9
|
||||
|
||||
|
||||
>PUSHW ZPPtr3
|
||||
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.DivMod jsr KW.DivMoD.1
|
||||
bcs .9
|
||||
|
||||
|
||||
>PUSHW ZPPtr3
|
||||
>LDYA ZPPtr2
|
||||
jsr KW.PushWSigned
|
||||
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.MulDivMod
|
||||
*--------------------------------------
|
||||
KW.MulDiv
|
||||
KW.MulDiv
|
||||
lda #E.SYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.DivMoD.1 jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
jsr KW.GetPtr1Ptr2Sign
|
||||
|
||||
|
||||
stz ZPPtr3
|
||||
stz ZPPtr3+1
|
||||
|
||||
|
||||
ldx #16
|
||||
|
||||
|
||||
.1 asl ZPPtr2
|
||||
rol ZPPtr2+1
|
||||
rol ZPPtr3
|
||||
rol ZPPtr3+1
|
||||
|
||||
|
||||
sec
|
||||
lda ZPPtr3
|
||||
sbc ZPPtr1
|
||||
|
@ -279,58 +279,58 @@ KW.DivMoD.1 jsr CheckStackPop4
|
|||
lda ZPPtr3+1
|
||||
sbc ZPPtr1+1
|
||||
bcs .2
|
||||
|
||||
|
||||
pla
|
||||
dex
|
||||
bne .1
|
||||
|
||||
|
||||
bra .8
|
||||
|
||||
|
||||
.2 sta ZPPtr3+1
|
||||
pla
|
||||
sta ZPPtr3
|
||||
inc ZPPtr2
|
||||
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.GetPtr1Ptr2Sign
|
||||
>PULLW ZPPtr1
|
||||
sta Sign
|
||||
|
||||
|
||||
asl
|
||||
bcc .1
|
||||
|
||||
|
||||
lda ZPPtr1
|
||||
clc
|
||||
eor #$ff
|
||||
adc #1
|
||||
sta ZPPtr1
|
||||
|
||||
|
||||
lda ZPPtr1+1
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta ZPPtr1+1
|
||||
|
||||
|
||||
.1 >PULLW ZPPtr2
|
||||
|
||||
|
||||
asl
|
||||
bcc .8
|
||||
|
||||
|
||||
lda ZPPtr2
|
||||
clc
|
||||
eor #$ff
|
||||
adc #1
|
||||
sta ZPPtr2
|
||||
|
||||
|
||||
lda ZPPtr2+1
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta ZPPtr2+1
|
||||
|
||||
|
||||
lda Sign
|
||||
eor #$80
|
||||
sta Sign
|
||||
|
@ -339,29 +339,29 @@ KW.GetPtr1Ptr2Sign
|
|||
*--------------------------------------
|
||||
KW.PushWSigned bit Sign
|
||||
bpl .8
|
||||
|
||||
|
||||
pha
|
||||
tya
|
||||
|
||||
|
||||
clc
|
||||
eor #$ff
|
||||
adc #1
|
||||
tay
|
||||
|
||||
|
||||
pla
|
||||
eor #$ff
|
||||
adc #0
|
||||
|
||||
|
||||
.8 >PUSHYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.MAX jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
lda (pStack) LO
|
||||
ldy #2
|
||||
cmp (pStack),y
|
||||
|
||||
cmp (pStack),y
|
||||
|
||||
dey #1
|
||||
|
||||
lda (pStack),y HI
|
||||
|
@ -369,20 +369,20 @@ KW.MAX jsr CheckStackPop4
|
|||
iny #3
|
||||
sbc (pStack),y
|
||||
bcc .1
|
||||
|
||||
|
||||
jsr KW.SWAP
|
||||
|
||||
|
||||
.1 jmp KW.DROP
|
||||
|
||||
.9 rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.MIN jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
lda (pStack) LO
|
||||
ldy #2
|
||||
cmp (pStack),y
|
||||
|
||||
cmp (pStack),y
|
||||
|
||||
dey #1
|
||||
|
||||
lda (pStack),y HI
|
||||
|
@ -390,12 +390,12 @@ KW.MIN jsr CheckStackPop4
|
|||
iny #3
|
||||
sbc (pStack),y
|
||||
bcs .1
|
||||
|
||||
|
||||
jsr KW.SWAP
|
||||
|
||||
|
||||
.1 jmp KW.DROP
|
||||
|
||||
.9 rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.ABS ldy #1
|
||||
|
||||
|
@ -451,7 +451,7 @@ KW.DNEGATE.8 clc
|
|||
*--------------------------------------
|
||||
KW.AND jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
and (pStack)
|
||||
|
@ -469,7 +469,7 @@ KW.AND jsr CheckStackPop4
|
|||
*--------------------------------------
|
||||
KW.OR jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
ora (pStack)
|
||||
|
@ -487,7 +487,7 @@ KW.OR jsr CheckStackPop4
|
|||
*--------------------------------------
|
||||
KW.XOR jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
eor (pStack)
|
||||
|
@ -505,7 +505,7 @@ KW.XOR jsr CheckStackPop4
|
|||
*--------------------------------------
|
||||
KW.LWR jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
cmp (pStack)
|
||||
|
@ -527,7 +527,7 @@ KW.LWR jsr CheckStackPop4
|
|||
*--------------------------------------
|
||||
KW.GTR jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
||||
|
||||
ldy #2
|
||||
lda (pStack),y
|
||||
cmp (pStack)
|
||||
|
@ -548,7 +548,7 @@ KW.GTR jsr CheckStackPop4
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ;
|
||||
* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ;
|
||||
*--------------------------------------
|
||||
KW.EQ jsr CheckStackPop4
|
||||
bcs .9
|
||||
|
@ -569,12 +569,12 @@ KW.EQ jsr CheckStackPop4
|
|||
|
||||
tay
|
||||
bne .1
|
||||
|
||||
|
||||
txa
|
||||
bne .1
|
||||
|
||||
|
||||
sec
|
||||
|
||||
|
||||
.1 inc pStack
|
||||
sta (pStack)
|
||||
|
||||
|
@ -592,15 +592,15 @@ KW.ZERO clc
|
|||
lda (pStack),y
|
||||
ora (pStack)
|
||||
bne .9
|
||||
|
||||
|
||||
sec
|
||||
|
||||
.9 lda #0
|
||||
ror
|
||||
|
||||
|
||||
inc pStack
|
||||
sta (pStack)
|
||||
|
||||
|
||||
* clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -652,7 +652,7 @@ KW.D. >PUSHW L.FMT.int32
|
|||
|
||||
>PUSHBI 4
|
||||
>SYSCALL PrintF
|
||||
|
||||
|
||||
>RET 4
|
||||
*--------------------------------------
|
||||
KW.D.R
|
||||
|
@ -661,7 +661,7 @@ KW.D.R
|
|||
rts
|
||||
*--------------------------------------
|
||||
KW.CR >PUSHW L.MSG.ECHOCRLF
|
||||
>PUSHBI 0
|
||||
>PUSHBI 0
|
||||
>SYSCALL PrintF
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -670,13 +670,13 @@ KW.SPACE lda #C.SPACE
|
|||
rts
|
||||
*--------------------------------------
|
||||
KW.SPACES >PULLA
|
||||
|
||||
|
||||
beq .8
|
||||
|
||||
.1 dec
|
||||
|
||||
|
||||
pha
|
||||
|
||||
|
||||
lda #C.SPACE
|
||||
>SYSCALL PutChar
|
||||
pla
|
||||
|
@ -688,38 +688,38 @@ KW.SPACES >PULLA
|
|||
KW.PRINT >LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
|
||||
|
||||
>STYA ZPPtr1
|
||||
phx
|
||||
|
||||
ldy #$ff
|
||||
|
||||
clc
|
||||
|
||||
|
||||
clc
|
||||
|
||||
.1 iny
|
||||
lda (ZPCLBufPtr),y
|
||||
beq .2
|
||||
|
||||
|
||||
sta (ZPPtr1),y
|
||||
eor #'"
|
||||
bne .1
|
||||
|
||||
|
||||
sec
|
||||
|
||||
|
||||
.2 sta (ZPPtr1),y
|
||||
tya
|
||||
tya
|
||||
adc ZPCLBufPtr
|
||||
sta ZPCLBufPtr
|
||||
bcc .3
|
||||
|
||||
inc ZPCLBufPtr+1
|
||||
|
||||
|
||||
.3 >LDYA ZPPtr1
|
||||
>SYSCALL PutS
|
||||
|
||||
|
||||
pla
|
||||
>SYSCALL FreeMem
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.DUMP
|
||||
|
@ -735,9 +735,9 @@ KW.TERMINAL
|
|||
*--------------------------------------
|
||||
KW.KEY >SYSCALL GetChar
|
||||
bcs .9
|
||||
|
||||
|
||||
>PUSHA
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.EMIT >PULLA
|
||||
|
@ -773,7 +773,7 @@ KW.OCTAL lda #E.SYN
|
|||
KW.FETCHSP lda pStack+1
|
||||
ldy pStack
|
||||
bne .1
|
||||
|
||||
|
||||
inc
|
||||
|
||||
.1 >PUSHYA
|
||||
|
@ -785,7 +785,7 @@ KW.FETCHW lda (pStack)
|
|||
ldy #1
|
||||
lda (pStack),y
|
||||
sta ZPAddrPtr+1
|
||||
|
||||
|
||||
lda (ZPAddrPtr)
|
||||
sta (pStack)
|
||||
lda (ZPAddrPtr),y
|
||||
|
@ -836,7 +836,7 @@ KW.CMOVE
|
|||
*--------------------------------------
|
||||
KW.FILL >PULLA
|
||||
bra KW.FILL2
|
||||
|
||||
|
||||
KW.ERASE lda #0
|
||||
bra KW.FILL2
|
||||
|
||||
|
@ -848,14 +848,14 @@ KW.FILL2 tax
|
|||
tay
|
||||
|
||||
>PULLW ZPAddrPtr
|
||||
|
||||
|
||||
txa
|
||||
|
||||
|
||||
.1 dey
|
||||
sta (ZPAddrPtr),y
|
||||
cpy #0
|
||||
bne .1
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -866,10 +866,10 @@ KW.HERE >PUSHW ZPDataPtr
|
|||
KW.PAD >PUSHW ZPOutputBufPtr
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
KW.ALLOT.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.ALLOT lda #SYM.T.VAR
|
||||
sta ZPType
|
||||
|
@ -879,36 +879,36 @@ KW.ALLOT lda #SYM.T.VAR
|
|||
|
||||
cmp #$FF
|
||||
bcs KW.ALLOT.9
|
||||
|
||||
|
||||
>PUSHB.G hSList
|
||||
>PUSHW ZPCLBufPtr
|
||||
|
||||
>SYSCALL SListNewKey
|
||||
bcs .9
|
||||
|
||||
|
||||
>STYA ZPKeyID
|
||||
|
||||
|
||||
txa
|
||||
jsr NextKW
|
||||
|
||||
|
||||
>LDYA ZPDataPtr
|
||||
>STYA ZPAddrPtr
|
||||
|
||||
|
||||
>PULLA
|
||||
clc
|
||||
adc ZPDataPtr
|
||||
sta ZPDataPtr
|
||||
|
||||
|
||||
>PULLA
|
||||
adc ZPDataPtr+1
|
||||
sta ZPDataPtr+1
|
||||
|
||||
|
||||
>PUSHB.G hSList
|
||||
>PUSHW ZPKeyID
|
||||
>PUSHWI ZPType
|
||||
>PUSHWI 4
|
||||
>SYSCALL SListAddData
|
||||
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KW.nCOMPILE
|
||||
|
@ -925,16 +925,16 @@ KW.ASSEMBLER
|
|||
*--------------------------------------
|
||||
KW.VLIST stz ZPPtr1
|
||||
stz ZPPtr1+1
|
||||
|
||||
|
||||
.1 >LDYA ZPPtr1
|
||||
>STYA ZPKeyID
|
||||
|
||||
|
||||
>PUSHB.G hSList
|
||||
>PUSHW ZPKeyID
|
||||
>PUSHW ZPOutputBufPtr
|
||||
>SYSCALL SListGetByID
|
||||
bcs .8
|
||||
|
||||
|
||||
>STYA ZPPtr1 Save Next ID
|
||||
|
||||
jsr CS.RUN.GetSymbolData
|
||||
|
@ -958,13 +958,13 @@ KW.VLIST stz ZPPtr1
|
|||
>PUSHBI 6
|
||||
>SYSCALL PrintF
|
||||
jmp .1
|
||||
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
||||
.9 rts
|
||||
|
||||
KW.VC.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.VARIABLE lda #SYM.T.VAR
|
||||
bra KM.VC
|
||||
|
@ -978,40 +978,40 @@ KM.VC sta ZPType
|
|||
|
||||
cmp #$FF
|
||||
bcs KW.VC.9
|
||||
|
||||
|
||||
>PUSHB.G hSList
|
||||
>PUSHW ZPCLBufPtr
|
||||
|
||||
>SYSCALL SListNewKey
|
||||
bcs .9
|
||||
|
||||
|
||||
>STYA ZPKeyID
|
||||
|
||||
|
||||
txa
|
||||
jsr NextKW
|
||||
|
||||
|
||||
bit ZPType
|
||||
bvs .1
|
||||
|
||||
|
||||
>PULLW ZPAddrPtr
|
||||
|
||||
|
||||
bra .2
|
||||
|
||||
|
||||
.1 >PULLA
|
||||
sta (ZPDataPtr)
|
||||
>PULLA
|
||||
ldy #1
|
||||
sta (ZPDataPtr),y
|
||||
|
||||
|
||||
>LDYA ZPDataPtr
|
||||
>STYA ZPAddrPtr
|
||||
|
||||
|
||||
lda ZPDataPtr
|
||||
clc
|
||||
adc #2
|
||||
sta ZPDataPtr
|
||||
bcc .2
|
||||
|
||||
|
||||
inc ZPDataPtr+1
|
||||
|
||||
.2 >PUSHB.G hSList
|
||||
|
@ -1027,18 +1027,18 @@ KW.BCOLON >PUSHB.G hSList
|
|||
|
||||
>SYSCALL SListNewKey
|
||||
bcs .9
|
||||
|
||||
|
||||
>STYA ZPKeyID
|
||||
|
||||
txa
|
||||
jsr NextKW
|
||||
|
||||
|
||||
lda #SYM.T.CODE
|
||||
sta ZPType
|
||||
|
||||
|
||||
>LDYA ZPCodePtr
|
||||
>STYA ZPAddrPtr
|
||||
|
||||
|
||||
>PUSHB.G hSList
|
||||
>PUSHW ZPKeyID
|
||||
>PUSHWI ZPType
|
||||
|
|
|
@ -423,7 +423,7 @@ CS.RUN.LOOP >SLEEP
|
|||
|
||||
>PUSHA
|
||||
>PUSHW ZPCLBuf
|
||||
>SYSCALL GetErrorMessage
|
||||
>SYSCALL GetErrMsg
|
||||
>LDYA ZPCLBuf
|
||||
>SYSCALL PutS
|
||||
bcc CS.RUN.LOOP
|
||||
|
|
|
@ -211,8 +211,8 @@ CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID
|
|||
|
||||
>LEA.G DCB.NIC
|
||||
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
>STA.G IOCTL+S.IOCTL.STATCODE
|
||||
lda #S.IOCTL.S.GETDCB
|
||||
>STA.G IOCTL+S.IOCTL.S
|
||||
|
||||
>PUSHB IPCFG+S.NETCFG.DevID
|
||||
>PUSHBI IOCTL.STATUS
|
||||
|
|
18
BIN/LC.S.txt
18
BIN/LC.S.txt
|
@ -97,6 +97,7 @@ CS.RUN >INC.G ArgIndex
|
|||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .99
|
||||
|
||||
>STYA ZPNewPath
|
||||
txa
|
||||
>STA.G hSrcNewPath
|
||||
|
@ -218,11 +219,12 @@ CS.RUN.FILE jsr FilterMatch
|
|||
>SYSCALL PrintF
|
||||
bcs .9
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
jsr CS.RUN.GetNewPath
|
||||
>PUSHYA
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPNewPath
|
||||
>SYSCALL Rename
|
||||
jsr CS.RUN.CheckErr
|
||||
bra CS.RUN.CheckErr
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
@ -246,28 +248,30 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetNewPath
|
||||
>PUSHW ZPNewPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPNewPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPNewPath
|
||||
|
||||
>LDYA ZPFileName
|
||||
>SYSCALL StrLwr
|
||||
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPNewPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -278,6 +278,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath
|
|||
tay
|
||||
lda Nod.Table.hName-2,y
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>SYSCALL StrCmp
|
||||
bcc .8
|
||||
|
||||
|
@ -347,18 +348,15 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.BuildFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
|
||||
>LDYA ZPFullPath
|
||||
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.OpenFile >PUSHW ZPFullPath
|
||||
|
|
|
@ -502,8 +502,8 @@ CMD.REN lda (ZPArgVBufPtr)
|
|||
lda #0
|
||||
sta (ZPPtr2),y
|
||||
|
||||
>PUSHW ZPPtr2
|
||||
>PUSHW ZPArgVBufPtr
|
||||
>LDYA ZPPtr2
|
||||
>SYSCALL StrCat
|
||||
|
||||
lda ZPTmpW
|
||||
|
@ -776,6 +776,7 @@ CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult
|
|||
dey get hVALUE
|
||||
lda (pData),y
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>SYSCALL StrCmp
|
||||
ror CS if !=
|
||||
and #$80
|
||||
|
@ -832,8 +833,8 @@ CMD.FOR jsr CORE.StkGetCtx
|
|||
|
||||
jsr CORE.ArgV.Next
|
||||
beq CMD.E.CSYN
|
||||
>PUSHW L.IN
|
||||
>PUSHW ZPArgVBufPtr
|
||||
>LDYA L.IN
|
||||
>SYSCALL StrCaseCmp
|
||||
bcs CMD.E.CSYN
|
||||
|
||||
|
|
|
@ -219,29 +219,38 @@ EXP.OP.UNARY.X jsr CMD.CALL.GETFUNC
|
|||
bra EXP.OP.UNARY.DEF.8 TRUE
|
||||
*--------------------------------------
|
||||
EXP.TEST.BINARY lda CORE.Operator
|
||||
cmp #6 =, !=, <= <, >=, >
|
||||
bcs EXP.TEST.BINARY.NUM
|
||||
>LDYA ZPArgVBufPrev
|
||||
cmp #6
|
||||
bcc EXP.TEST.BINARY.NUM
|
||||
|
||||
>LDYA ZPArgVBufPrev =, !=, <= <, >=, >
|
||||
>STYA ZPPtr1
|
||||
jsr CORE.ArgV.Next
|
||||
beq EXP.TEST.BINARY.ESYN
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>LDYA ZPArgVBufPtr
|
||||
>PUSHW ZPArgVBufPtr
|
||||
>SYSCALL StrCmp
|
||||
bcs .1 CS if !=
|
||||
|
||||
lda #%010 010 str1 = str2
|
||||
bra EXP.TEST.BINARY.END
|
||||
bra .3
|
||||
|
||||
.1 asl CS if <
|
||||
bcs .2
|
||||
|
||||
lda #%100 010 str1 < str2
|
||||
bra EXP.TEST.BINARY.END
|
||||
bra .3
|
||||
|
||||
.2 lda #%001 010 str1 > str2
|
||||
bra EXP.TEST.BINARY.END
|
||||
|
||||
.3 ldx CORE.Operator
|
||||
and EXP.OP.BINARY.BITS-6,x
|
||||
beq .8 false
|
||||
|
||||
lda #$80 true
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
EXP.TEST.BINARY.ESYN4
|
||||
jsr IncPStack4
|
||||
|
@ -259,26 +268,18 @@ EXP.TEST.BINARY.NUM
|
|||
jsr EXP.GetInt32Arg
|
||||
bcs EXP.TEST.BINARY.ESYN4
|
||||
|
||||
>FPU CMP32
|
||||
lda CORE.Operator
|
||||
* clc
|
||||
adc #FPU.lL
|
||||
tax
|
||||
bmi .4 ACC < ARG
|
||||
jsr A2osX.FPUCALL
|
||||
|
||||
bne .5
|
||||
lda #%010 010 ACC = ARG
|
||||
bra EXP.TEST.BINARY.END
|
||||
.4 lda #%100 100 ACC > ARG
|
||||
bra EXP.TEST.BINARY.END
|
||||
.5 lda #%001 001 ACC < ARG
|
||||
|
||||
EXP.TEST.BINARY.END
|
||||
clc
|
||||
ldx CORE.Operator
|
||||
and EXP.OP.BINARY.BITS,x
|
||||
lda (pStack)
|
||||
beq .8 false
|
||||
|
||||
lda #$80 true
|
||||
|
||||
.8 rts
|
||||
.8 >RET 4
|
||||
*--------------------------------------
|
||||
EXP.GetInt8Exp jsr EXP.GET
|
||||
bcc EXP.GetInt8YA
|
||||
|
|
|
@ -269,7 +269,7 @@ IO.PrintErrMsg ldy #S.PS.RC
|
|||
|
||||
>PUSHW ZPCLBuf
|
||||
|
||||
>SYSCALL GetErrorMessage
|
||||
>SYSCALL GetErrMsg
|
||||
|
||||
.8 ldy #S.PS.hStdErr
|
||||
lda (pPS),y
|
||||
|
|
31
BIN/SH.S.txt
31
BIN/SH.S.txt
|
@ -643,45 +643,38 @@ EXP.OP.UNARY .AT "-D"
|
|||
.AT "-X"
|
||||
.AT "-Z"
|
||||
.HS 00
|
||||
EXP.OP.BINARY .AT "="
|
||||
EXP.OP.BINARY .AT "-LT"
|
||||
.AT "-LE"
|
||||
.AT "-GT"
|
||||
.AT "-GE"
|
||||
.AT "-EQ"
|
||||
.AT "-NE"
|
||||
.AT "="
|
||||
.AT "!="
|
||||
.AT ".<"
|
||||
.AT "<="
|
||||
.AT ".>"
|
||||
.AT ">="
|
||||
.AT "-EQ"
|
||||
.AT "-NE"
|
||||
.AT "-LT"
|
||||
.AT "-LE"
|
||||
.AT "-GT"
|
||||
.AT "-GE"
|
||||
.HS 00
|
||||
EXP.OP.MATH .AT "+"
|
||||
.AT "-"
|
||||
.AT "*"
|
||||
EXP.OP.MATH .AT "*"
|
||||
.AT "/"
|
||||
.AT "MOD"
|
||||
.AT "+"
|
||||
.AT "-"
|
||||
.HS 00
|
||||
EXP.OP.LOGIC .AT "AND"
|
||||
.AT "OR"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
EXP.OP.BINARY.BITS
|
||||
.DA #%010
|
||||
.DA #%010 strcmp
|
||||
.DA #%101
|
||||
.DA #%100
|
||||
.DA #%110
|
||||
.DA #%001
|
||||
.DA #%011
|
||||
|
||||
.DA #%010
|
||||
.DA #%101
|
||||
.DA #%100
|
||||
.DA #%110
|
||||
.DA #%001
|
||||
.DA #%011
|
||||
|
||||
EXP.OP.MATH.FPU .DA #FPU.ADD32,#FPU.SUB32,#FPU.IMUL32,#FPU.IDIV32,#FPU.IMOD32
|
||||
EXP.OP.MATH.FPU .DA #FPU.lMUL,#FPU.lDIV,#FPU.lMOD,#FPU.lADD,#FPU.lSUB
|
||||
*--------------------------------------
|
||||
SET.FLAGS .AS "CXE"
|
||||
SET.VARS .DA #bSET.C,#bSET.X,#bSET.E
|
||||
|
|
16
BIN/UC.S.txt
16
BIN/UC.S.txt
|
@ -218,11 +218,12 @@ CS.RUN.FILE jsr FilterMatch
|
|||
>SYSCALL PrintF
|
||||
bcs .9
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
jsr CS.RUN.GetNewPath
|
||||
>PUSHYA
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPNewPath
|
||||
>SYSCALL Rename
|
||||
jsr CS.RUN.CheckErr
|
||||
|
||||
bra CS.RUN.CheckErr
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
|
@ -246,28 +247,29 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetNewPath
|
||||
>PUSHW ZPNewPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPNewPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>LDYA ZPFileName
|
||||
>SYSCALL StrUpr
|
||||
|
||||
>PUSHW ZPNewPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPNewPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -157,7 +157,7 @@ CS.RUN.ROOT ldy #0
|
|||
>PUSHW ZPStrPtr
|
||||
>SYSCALL MD5
|
||||
>PUSHW ZPStrPtr
|
||||
>LEA.G PW+S.PW.PASSWD
|
||||
>PUSHEA.G PW+S.PW.PASSWD
|
||||
>SYSCALL StrCmp
|
||||
bcs .99
|
||||
|
||||
|
|
|
@ -155,10 +155,12 @@ CS.RUN.RmDir lda bDelete
|
|||
>SYSCALL Remove
|
||||
rts
|
||||
|
||||
.1 >PUSHW L.CMD.RM
|
||||
>LDYA ZPStrPtr
|
||||
.1 >PUSHW ZPStrPtr
|
||||
>PUSHW L.CMD.RM
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPStrPtr
|
||||
|
||||
lda pData
|
||||
clc
|
||||
adc #S.PW.DIR
|
||||
|
@ -166,7 +168,6 @@ CS.RUN.RmDir lda bDelete
|
|||
lda pData+1
|
||||
adc /S.PW.DIR
|
||||
>PUSHYA
|
||||
>LDYA ZPStrPtr
|
||||
>SYSCALL StrCat
|
||||
|
||||
>PUSHW ZPStrPtr
|
||||
|
|
|
@ -344,13 +344,14 @@ CS.RUN.CheckErr bcc .9
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.GetFilePath
|
||||
>PUSHW ZPFullPath
|
||||
>LDA.G hSrcBasePath
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPFullPath
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPFullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -355,10 +355,10 @@ STATUS >STYA ZPIOCTL
|
|||
lda (ZPIOCTL),y
|
||||
sta ZPBasePtr+1
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -370,7 +370,7 @@ STATUS >STYA ZPIOCTL
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.GFX-1
|
||||
|
|
|
@ -156,10 +156,10 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -172,7 +172,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
@ -183,7 +183,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
|
||||
clc
|
||||
rts
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -199,9 +199,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
ldy #S.DCB.COM-1
|
||||
.2 lda (ZPBufPtr),y
|
||||
|
|
|
@ -157,10 +157,10 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -173,7 +173,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
@ -184,7 +184,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
|
||||
clc
|
||||
rts
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -200,9 +200,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
ldy #S.DCB.COM-1
|
||||
.2 lda (ZPBufPtr),y
|
||||
|
|
|
@ -178,10 +178,10 @@ DRV.CS.START cld
|
|||
*--------------------------------------
|
||||
STATUS >STYA ZPIOCTL
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldx #S.DIB-1
|
||||
|
@ -204,7 +204,7 @@ STATUS >STYA ZPIOCTL
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
stz DCB+S.DCB.NIC.LINK
|
||||
|
|
|
@ -153,10 +153,10 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -169,7 +169,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.SND-1
|
||||
|
@ -180,7 +180,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
|
||||
clc
|
||||
rts
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -195,9 +195,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
ldy #S.DCB.SND-1
|
||||
.2 lda (ZPBufPtr),y
|
||||
|
|
|
@ -145,11 +145,11 @@ STATUS >STYA ZPIOCTL
|
|||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
|
|
@ -155,10 +155,10 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -171,7 +171,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
@ -182,7 +182,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
|
||||
clc
|
||||
rts
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -198,9 +198,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
ldy #S.DCB.COM-1
|
||||
.2 lda (ZPBufPtr),y
|
||||
|
|
|
@ -813,11 +813,11 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
@ -832,7 +832,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
@ -844,7 +844,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
clc
|
||||
rts
|
||||
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -873,9 +873,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
|
|
@ -210,11 +210,11 @@ DRV.CS.START cld
|
|||
*--------------------------------------
|
||||
STATUS jsr GET.IOCTLBUFPTR
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
@ -230,7 +230,7 @@ STATUS jsr GET.IOCTLBUFPTR
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.NIC-1
|
||||
|
@ -249,9 +249,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr GET.IOCTLBUFPTR
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.NIC-1
|
||||
|
|
|
@ -191,10 +191,10 @@ DRV.CS.START cld
|
|||
*--------------------------------------
|
||||
STATUS >STYA ZPIOCTL
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
ldx #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
@ -213,7 +213,7 @@ STATUS >STYA ZPIOCTL
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
stz DCB+S.DCB.NIC.LINK
|
||||
|
|
|
@ -205,11 +205,11 @@ DRV.CS.START cld
|
|||
*--------------------------------------
|
||||
STATUS jsr GET.IOCTLBUFPTR
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
@ -225,7 +225,7 @@ STATUS jsr GET.IOCTLBUFPTR
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.NIC-1
|
||||
|
|
|
@ -256,7 +256,7 @@ SYS.Shift .EQ $68
|
|||
SYS.ArgV .EQ $6A
|
||||
SYS.ArgVDup .EQ $6C
|
||||
* ERROR
|
||||
SYS.GetErrorMessage .EQ $6E
|
||||
SYS.GetErrMsg .EQ $6E
|
||||
* STDLIB
|
||||
SYS.AToF .EQ $70
|
||||
SYS.AToI .EQ $72
|
||||
|
@ -398,18 +398,18 @@ IOCTL.IRQ .EQ 20
|
|||
S.IOCTL.CNT .EQ 0
|
||||
S.IOCTL.UNITNUM .EQ 1
|
||||
S.IOCTL.BUFPTR .EQ 2
|
||||
S.IOCTL.STATCODE .EQ 4 1 BYTE
|
||||
S.IOCTL.STATCODE.STATUS .EQ 0
|
||||
S.IOCTL.STATCODE.GETDCB .EQ 1
|
||||
S.IOCTL.STATCODE.GETNL .EQ 2
|
||||
S.IOCTL.STATCODE.GETDIB .EQ 3
|
||||
S.IOCTL.STATCODE.EOF .EQ 4
|
||||
S.IOCTL.CTRLCODE .EQ 4 1 BYTE
|
||||
S.IOCTL.CTRLCODE.RESET .EQ 0
|
||||
S.IOCTL.CTRLCODE.SETDCB .EQ 1
|
||||
S.IOCTL.CTRLCODE.SETNL .EQ 2
|
||||
S.IOCTL.CTRLCODE.IRQ .EQ 3
|
||||
S.IOCTL.CTRLCODE.EJECT .EQ 4
|
||||
S.IOCTL.S .EQ 4 1 BYTE
|
||||
S.IOCTL.S.STATUS .EQ 0
|
||||
S.IOCTL.S.GETDCB .EQ 1
|
||||
S.IOCTL.S.GETNL .EQ 2
|
||||
S.IOCTL.S.GETDIB .EQ 3
|
||||
S.IOCTL.S.EOF .EQ 4
|
||||
S.IOCTL.C .EQ 4 1 BYTE
|
||||
S.IOCTL.C.RESET .EQ 0
|
||||
S.IOCTL.C.SETDCB .EQ 1
|
||||
S.IOCTL.C.SETNL .EQ 2
|
||||
S.IOCTL.C.IRQ .EQ 3
|
||||
S.IOCTL.C.EJECT .EQ 4
|
||||
S.IOCTL.BLKNUM .EQ 4 3 BYTES
|
||||
S.IOCTL.BYTECNT .EQ 4 2 BYTES
|
||||
S.IOCTL.ADDRPTR .EQ 6 3 BYTES
|
||||
|
@ -476,7 +476,7 @@ S.FD.T.LNK .EQ 8
|
|||
S.FD.T.DSOCK .EQ 10
|
||||
S.FD.T.SSOCK .EQ 12
|
||||
S.FD.T.PIPE .EQ 14
|
||||
S.FD.HANDLER .EQ 1
|
||||
S.FD.PFT .EQ 1
|
||||
*--------------------------------------
|
||||
S.FD.REG.REF .EQ 2
|
||||
S.FD.REG.IOBUF .EQ 3
|
||||
|
@ -504,7 +504,7 @@ S.FD.DEV .EQ 12
|
|||
*--------------------------------------
|
||||
* S.FD.LNK
|
||||
*--------------------------------------
|
||||
S.FD.DSOCK.IOHANDLER .EQ 2
|
||||
S.FD.DSOCK.IOH .EQ 2
|
||||
S.FD.DSOCK.OPEN .EQ 3
|
||||
S.FD.DSOCK.CLOSE .EQ 4
|
||||
S.FD.DSOCK.READ .EQ 5
|
||||
|
@ -513,7 +513,7 @@ S.FD.DSOCK.EOF .EQ 7
|
|||
*
|
||||
S.FD.DSOCK .EQ 8
|
||||
*--------------------------------------
|
||||
S.FD.SSOCK.IOHANDLER .EQ 2
|
||||
S.FD.SSOCK.IOH .EQ 2
|
||||
S.FD.SSOCK.OPEN .EQ 3
|
||||
S.FD.SSOCK.CLOSE .EQ 4
|
||||
S.FD.SSOCK.READ .EQ 5
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
IO.D2.SeekTimeR .EQ 48 LIBBLKDEV Recalibration
|
||||
IO.D2.SeekTimeF .EQ 48 LIBBLKDEV Track Formatter
|
||||
IO.D2.SeekTimeB .EQ 48 LIBBLKDEV Boot Block
|
||||
IO.D2.SeekTimeP .EQ 48 ProDOS.FX initial
|
||||
IO.D2.SeekTimeR .EQ 68 LIBBLKDEV Recalibration
|
||||
IO.D2.SeekTimeF .EQ 68 LIBBLKDEV Track Formatter
|
||||
IO.D2.SeekTimeB .EQ 68 LIBBLKDEV Boot Block
|
||||
IO.D2.SeekTimeP .EQ 68 ProDOS.FX initial
|
||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
||||
*--------------------------------------
|
||||
IO.D2.Ph0Off .EQ $C080
|
||||
|
|
176
INC/MACROS.I.txt
176
INC/MACROS.I.txt
|
@ -129,53 +129,149 @@ NEW
|
|||
*--------------------------------------
|
||||
* FPU Entry Point
|
||||
*--------------------------------------
|
||||
FPU.ADD16 .EQ 0
|
||||
FPU.SUB16 .EQ 2
|
||||
FPU.MUL16 .EQ 4
|
||||
FPU.IMUL16 .EQ 6
|
||||
FPU.DIV16 .EQ 8
|
||||
FPU.IDIV16 .EQ 10
|
||||
FPU.MOD16 .EQ 12
|
||||
FPU.IMOD16 .EQ 14
|
||||
FPU.CMP16 .EQ 16
|
||||
FPU.ICMP16 .EQ 18
|
||||
FPU.wMUL .EQ 0
|
||||
FPU.wDIV .EQ 2
|
||||
FPU.wMOD .EQ 4
|
||||
FPU.wADD .EQ 6
|
||||
FPU.wSUB .EQ 8
|
||||
|
||||
FPU.ADD32 .EQ 20
|
||||
FPU.SUB32 .EQ 22
|
||||
FPU.MUL32 .EQ 24
|
||||
FPU.IMUL32 .EQ 26
|
||||
FPU.DIV32 .EQ 28
|
||||
FPU.IDIV32 .EQ 30
|
||||
FPU.MOD32 .EQ 32
|
||||
FPU.IMOD32 .EQ 34
|
||||
FPU.CMP32 .EQ 36
|
||||
FPU.ICMP32 .EQ 38
|
||||
FPU.wSHL .EQ 10
|
||||
FPU.wSHR .EQ 12
|
||||
|
||||
FPU.FADD .EQ 40
|
||||
FPU.FSUB .EQ 42
|
||||
FPU.FMULT .EQ 44
|
||||
FPU.FDIV .EQ 46
|
||||
FPU.PWR .EQ 48
|
||||
FPU.wL .EQ 14
|
||||
FPU.wLE .EQ 16
|
||||
FPU.wG .EQ 18
|
||||
FPU.wGE .EQ 20
|
||||
|
||||
FPU.LOG .EQ 50
|
||||
FPU.SQR .EQ 52
|
||||
FPU.EXP .EQ 54
|
||||
FPU.COS .EQ 56
|
||||
FPU.SIN .EQ 58
|
||||
FPU.TAN .EQ 60
|
||||
FPU.ATAN .EQ 62
|
||||
FPU.wE .EQ 22
|
||||
FPU.wNE .EQ 24
|
||||
|
||||
FPU.SETARG .EQ 64 fadd.....
|
||||
FPU.SETFAC .EQ 66 log...., PrintF
|
||||
FPU.wAND .EQ 26
|
||||
FPU.wOR .EQ 28
|
||||
FPU.wxOR .EQ 30
|
||||
|
||||
FPU.GETFAC .EQ 68 Copy FAC to (FORPNT)
|
||||
FPU.FCOMP .EQ 70
|
||||
FPU.wLAND .EQ 32
|
||||
FPU.wLOR .EQ 34
|
||||
*--------------------------------------
|
||||
FPU.iMUL .EQ 36
|
||||
FPU.iDIV .EQ 38
|
||||
FPU.iMOD .EQ 40
|
||||
FPU.iADD .EQ 42
|
||||
FPU.iSUB .EQ 44
|
||||
|
||||
FPU.LTOF .EQ 72 Float
|
||||
FPU.QINT .EQ 74 lrintf
|
||||
FPU.iSHL .EQ 46
|
||||
FPU.iSHR .EQ 48
|
||||
|
||||
FPU.FIN .EQ 76 sscanf
|
||||
FPU.FOUT .EQ 78 PrintF
|
||||
FPU.iL .EQ 50
|
||||
FPU.iLE .EQ 52
|
||||
FPU.iG .EQ 54
|
||||
FPU.iGE .EQ 56
|
||||
|
||||
FPU.iE .EQ 58
|
||||
FPU.iNE .EQ 60
|
||||
|
||||
FPU.iAND .EQ 62
|
||||
FPU.iOR .EQ 64
|
||||
FPU.iXOR .EQ 66
|
||||
|
||||
FPU.iLAND .EQ 68
|
||||
FPU.iLOR .EQ 70
|
||||
*--------------------------------------
|
||||
FPU.uMUL .EQ 72
|
||||
FPU.uDIV .EQ 74
|
||||
FPU.uMOD .EQ 76
|
||||
FPU.uADD .EQ 78
|
||||
FPU.uSUB .EQ 80
|
||||
|
||||
FPU.uSHL .EQ 82
|
||||
FPU.uSHR .EQ 84
|
||||
|
||||
FPU.uL .EQ 86
|
||||
FPU.uLE .EQ 88
|
||||
FPU.uG .EQ 90
|
||||
FPU.uGE .EQ 92
|
||||
|
||||
FPU.uE .EQ 94
|
||||
FPU.uNE .EQ 96
|
||||
|
||||
FPU.uAND .EQ 98
|
||||
FPU.uOR .EQ 100
|
||||
FPU.uXOR .EQ 102
|
||||
|
||||
FPU.uLAND .EQ 104
|
||||
FPU.uLOR .EQ 106
|
||||
*--------------------------------------
|
||||
FPU.lMUL .EQ 108
|
||||
FPU.lDIV .EQ 110
|
||||
FPU.lMOD .EQ 112
|
||||
FPU.lADD .EQ 114
|
||||
FPU.lSUB .EQ 116
|
||||
|
||||
FPU.lSHL .EQ 118
|
||||
FPU.lSHR .EQ 120
|
||||
|
||||
FPU.lL .EQ 122
|
||||
FPU.lLE .EQ 124
|
||||
FPU.lG .EQ 126
|
||||
FPU.lGE .EQ 128
|
||||
|
||||
FPU.lE .EQ 130
|
||||
FPU.lNE .EQ 132
|
||||
|
||||
FPU.lAND .EQ 134
|
||||
FPU.lOR .EQ 136
|
||||
FPU.lXOR .EQ 138
|
||||
|
||||
FPU.lLAND .EQ 140
|
||||
FPU.lLOR .EQ 142
|
||||
*--------------------------------------
|
||||
FPU.fMUL .EQ 144
|
||||
FPU.fDIV .EQ 146
|
||||
FPU.fMOD .EQ 148
|
||||
FPU.fADD .EQ 150
|
||||
FPU.fSUB .EQ 152
|
||||
|
||||
FPU.fSHL .EQ 154
|
||||
FPU.fSHR .EQ 156
|
||||
|
||||
FPU.fL .EQ 158
|
||||
FPU.fLE .EQ 160
|
||||
FPU.fG .EQ 162
|
||||
FPU.fGE .EQ 164
|
||||
|
||||
FPU.fE .EQ 166
|
||||
FPU.fNE .EQ 168
|
||||
|
||||
FPU.fAND .EQ 170
|
||||
FPU.fOR .EQ 172
|
||||
FPU.fXOR .EQ 174
|
||||
|
||||
FPU.fLAND .EQ 176
|
||||
FPU.fLOR .EQ 178
|
||||
*--------------------------------------
|
||||
* math.h
|
||||
*--------------------------------------
|
||||
FPU.PWR .EQ 180
|
||||
*--------------------------------------
|
||||
FPU.LOG .EQ 182
|
||||
FPU.SQR .EQ 184
|
||||
FPU.EXP .EQ 186
|
||||
FPU.COS .EQ 188
|
||||
FPU.SIN .EQ 190
|
||||
FPU.TAN .EQ 192
|
||||
FPU.ATAN .EQ 194
|
||||
|
||||
FPU.SETARG .EQ 196 fadd.....
|
||||
FPU.SETFAC .EQ 198 log...., PrintF
|
||||
|
||||
FPU.GETFAC .EQ 200 Copy FAC to (FORPNT)
|
||||
FPU.FCOMP .EQ 202
|
||||
|
||||
FPU.LTOF .EQ 204 Float
|
||||
FPU.QINT .EQ 206 lrintf
|
||||
|
||||
FPU.FIN .EQ 208 sscanf
|
||||
FPU.FOUT .EQ 210 PrintF
|
||||
*--------------------------------------
|
||||
.MA FPU
|
||||
ldx #FPU.]1
|
||||
|
|
|
@ -2,12 +2,12 @@ NEW
|
|||
AUTO 3,1
|
||||
|
||||
int fastcall strlen(char*);
|
||||
// char* strcat(char*,const char*);
|
||||
// char* strcpy(char*,const char*);
|
||||
char* strcat(char*,const char*);
|
||||
char* strcpy(char*,const char*);
|
||||
char* fastcall strdup (char*);
|
||||
char* fastcall strupr (char*);
|
||||
char* fastcall strlwr (char*);
|
||||
// int strcmp(const char *s1, const char *s2);
|
||||
// int strcasecmp(const char *s1, const char *s2);
|
||||
int strcmp(const char*,const char*);
|
||||
int strcasecmp(const char*,const char *);
|
||||
MAN
|
||||
TEXT include/string.h
|
||||
|
|
|
@ -10,8 +10,8 @@ WND.Init >PUSHBI 0
|
|||
|
||||
>LDYA L.DCB.GFX
|
||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
sta IOCTL+S.IOCTL.STATCODE
|
||||
lda #S.IOCTL.S.GETDCB
|
||||
sta IOCTL+S.IOCTL.S
|
||||
|
||||
>PUSHB WND.Screen+S.OBJ.hPARENT
|
||||
>PUSHBI IOCTL.STATUS
|
||||
|
|
|
@ -37,8 +37,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
|||
>LDYA L.DCB.NIC
|
||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
sta IOCTL+S.IOCTL.STATCODE
|
||||
lda #S.IOCTL.S.GETDCB
|
||||
sta IOCTL+S.IOCTL.S
|
||||
|
||||
ldx #IOCTL.STATUS
|
||||
jsr CFG.SET.IOCTL
|
||||
|
@ -51,8 +51,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
|||
dex
|
||||
bpl .4
|
||||
|
||||
lda #S.IOCTL.CTRLCODE.SETDCB
|
||||
sta IOCTL+S.IOCTL.CTRLCODE
|
||||
lda #S.IOCTL.C.SETDCB
|
||||
sta IOCTL+S.IOCTL.C
|
||||
|
||||
ldx #IOCTL.CONTROL
|
||||
jsr CFG.SET.IOCTL
|
||||
|
|
|
@ -265,6 +265,7 @@ DNS.FIND.BY.NAME
|
|||
ldy #S.DNSCACHE.hNAME
|
||||
lda (ZPCachePtr),y
|
||||
>SYSCALL2 GetMemPtr
|
||||
>PUSHYA
|
||||
>SYSCALL2 StrCaseCmp
|
||||
plx
|
||||
bcc .8
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
.LIST ON
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF lib/string.o
|
||||
|
@ -12,12 +12,20 @@ NEW
|
|||
*--------------------------------------
|
||||
>PSTR "strlen"
|
||||
.DA CODE.strlen
|
||||
>PSTR "strcat"
|
||||
.DA CODE.strcat
|
||||
>PSTR "strcpy"
|
||||
.DA CODE.strcpy
|
||||
>PSTR "strdup"
|
||||
.DA CODE.strdup
|
||||
>PSTR "strupr"
|
||||
.DA CODE.strupr
|
||||
>PSTR "strlwr"
|
||||
.DA CODE.strlwr
|
||||
>PSTR "strcmp"
|
||||
.DA CODE.strcmp
|
||||
>PSTR "strcasecmp"
|
||||
.DA CODE.strcasecmp
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CODE.strlen .DA #CODE.strlen.L
|
||||
|
@ -25,7 +33,15 @@ CODE.strlen .DA #CODE.strlen.L
|
|||
CODE.strlen.L .EQ *-CODE.strlen
|
||||
rts
|
||||
*--------------------------------------
|
||||
CODE.strcat .DA #CODE.strcat.L
|
||||
>SYSCALL strcat
|
||||
CODE.strcat.L .EQ *-CODE.strcat
|
||||
rts
|
||||
*--------------------------------------
|
||||
CODE.strcpy .DA #CODE.strcpy.L
|
||||
>SYSCALL strcpy
|
||||
CODE.strcpy.L .EQ *-CODE.strcpy
|
||||
rts
|
||||
*--------------------------------------
|
||||
CODE.strdup .DA #CODE.strdup.L
|
||||
>SYSCALL strdup
|
||||
|
@ -42,7 +58,15 @@ CODE.strlwr .DA #CODE.strlwr.L
|
|||
CODE.strlwr.L .EQ *-CODE.strlwr
|
||||
rts
|
||||
*--------------------------------------
|
||||
CODE.strcmp .DA #CODE.strcmp.L
|
||||
>SYSCALL strcmp
|
||||
CODE.strcmp.L .EQ *-CODE.strcmp
|
||||
rts
|
||||
*--------------------------------------
|
||||
CODE.strcasecmp .DA #CODE.strcasecmp.L
|
||||
>SYSCALL strcasecmp
|
||||
CODE.strcasecmp.L .EQ *-CODE.strcasecmp
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/lib/string.o.s
|
||||
|
|
|
@ -711,26 +711,26 @@ XRW.TrackSelect lda #2
|
|||
lda XRW.ReqTrack
|
||||
bcc .50
|
||||
|
||||
* lsr Track 160 -> 80+Carry
|
||||
* pha
|
||||
lsr Track 160 -> 80+Carry
|
||||
pha
|
||||
|
||||
* lda #0 Carry = Head
|
||||
lda #0 Carry = Head
|
||||
|
||||
* rol
|
||||
* rol A = 0/2
|
||||
rol
|
||||
rol A = 0/2
|
||||
|
||||
* ora A2L
|
||||
* tay y = n0/n2
|
||||
ora A2L
|
||||
tay y = n0/n2
|
||||
|
||||
* lda IO.D2.Ph0On,y
|
||||
* lda IO.D2.Ph0On+4,y
|
||||
lda IO.D2.Ph0On,y
|
||||
lda IO.D2.Ph0On+4,y
|
||||
|
||||
* jsr XRW.Wait100usec
|
||||
jsr XRW.Wait100usec
|
||||
|
||||
* lda IO.D2.Ph0Off,y
|
||||
* lda IO.D2.Ph0Off+4,y
|
||||
lda IO.D2.Ph0Off,y
|
||||
lda IO.D2.Ph0Off+4,y
|
||||
|
||||
* pla
|
||||
pla
|
||||
|
||||
.50 sta XRW.ReqTrack2
|
||||
|
||||
|
|
|
@ -621,10 +621,12 @@ CS.RUN.REQ.GET ldy #0
|
|||
cmp #'/'
|
||||
bne .4
|
||||
|
||||
>PUSHEA.G REQ.FullPath
|
||||
>PUSHW ZPRootDirPtr
|
||||
>LEA.G REQ.FullPath
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHEA.G REQ.FullPath
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr2),y
|
||||
bne .2
|
||||
|
@ -635,7 +637,6 @@ CS.RUN.REQ.GET ldy #0
|
|||
.2 >LDYA ZPPtr2
|
||||
|
||||
.3 >PUSHYA
|
||||
>LEA.G REQ.FullPath
|
||||
>SYSCALL StrCat
|
||||
rts
|
||||
|
||||
|
|
|
@ -112,8 +112,8 @@ CS.INIT.DEV >PUSHBI 0
|
|||
|
||||
>LDYA L.DCB.NIC
|
||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||
lda #S.IOCTL.STATCODE.GETDCB
|
||||
sta IOCTL+S.IOCTL.STATCODE
|
||||
lda #S.IOCTL.S.GETDCB
|
||||
sta IOCTL+S.IOCTL.S
|
||||
|
||||
>PUSHB DevID
|
||||
>PUSHBI IOCTL.STATUS
|
||||
|
|
|
@ -393,18 +393,23 @@ CS.RUN.REG jsr CS.RUN.REG.MSG
|
|||
>PUSHYA
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetPathY
|
||||
|
||||
>PUSHYA
|
||||
>SYSCALL StrCaseCmp
|
||||
bcs .3 not same dir, go copy/delete
|
||||
|
||||
jsr CS.RUN.Rename
|
||||
jsr CS.RUN.CheckErr
|
||||
bcs .9
|
||||
|
||||
jmp CS.RUN.NEXT
|
||||
|
||||
.FIN
|
||||
.3 jsr CS.RUN.CopyStart
|
||||
bcc .4
|
||||
|
||||
jsr CS.RUN.CheckErr
|
||||
bcs .9
|
||||
|
||||
jmp CS.RUN.NEXT
|
||||
.FIN
|
||||
|
||||
|
@ -624,38 +629,48 @@ CS.RUN.CheckErr bcs .1
|
|||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.BuildFilePath
|
||||
ldy #hSrcBasePath
|
||||
jsr CS.RUN.GetPathY
|
||||
>PUSHYA
|
||||
ldy #hSrcFullPath
|
||||
jsr CS.RUN.GetPathY
|
||||
>STYA ZPPtr1
|
||||
|
||||
>SYSCALL StrCpy
|
||||
>PUSHYA
|
||||
|
||||
>PUSHW ZPFileName
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL StrCat
|
||||
.DO X.COPY.TO.DEST=1
|
||||
ldy #hDstBasePath
|
||||
ldy #hSrcBasePath
|
||||
jsr CS.RUN.GetPathY
|
||||
>PUSHYA
|
||||
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPFileName
|
||||
>SYSCALL StrCat
|
||||
|
||||
.DO X.COPY.TO.DEST=1
|
||||
ldy #hDstFullPath
|
||||
jsr CS.RUN.GetPathY
|
||||
>STYA ZPPtr1
|
||||
|
||||
>PUSHYA
|
||||
|
||||
ldy #hDstBasePath
|
||||
jsr CS.RUN.GetPathY
|
||||
>PUSHYA
|
||||
|
||||
>SYSCALL StrCpy
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
|
||||
ldy #hDstFileName
|
||||
lda (pData),y
|
||||
beq .1
|
||||
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
bra .2
|
||||
|
||||
.1 >PUSHW ZPFileName
|
||||
|
||||
.2 >LDYA ZPPtr1
|
||||
>SYSCALL StrCat
|
||||
.2 >SYSCALL StrCat
|
||||
.FIN
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -484,8 +484,9 @@ EnterSubDirY lda (pData),y
|
|||
>STYA ZPPtr1 save full path
|
||||
|
||||
jsr .1 Make sure ending with /
|
||||
|
||||
>PUSHW ZPPtr1
|
||||
>PUSHW ZPPtr2
|
||||
>LDYA ZPPtr1
|
||||
>SYSCALL StrCat
|
||||
|
||||
.1 jsr GetPtr1Len
|
||||
|
|
|
@ -404,11 +404,11 @@ DRV.CS.START cld
|
|||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
@ -423,7 +423,7 @@ STATUS jsr STATUS.CONTROL.Init
|
|||
clc
|
||||
rts
|
||||
|
||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
bne .3
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
@ -436,7 +436,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
|||
clc
|
||||
rts
|
||||
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
|
@ -473,9 +473,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
*--------------------------------------
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
ldy #S.IOCTL.C
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
cmp #S.IOCTL.C.SETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.DCB.COM-1
|
||||
|
|
|
@ -21,7 +21,7 @@ K.Shift jsr K.ArgV
|
|||
lda (ZPPtr1),y
|
||||
bne .1
|
||||
|
||||
.2 jsr SHARED.AddYp1ToPtr1
|
||||
.2 jsr SHARED.AddYp12P1
|
||||
|
||||
ldy #$ff
|
||||
|
||||
|
@ -33,7 +33,7 @@ K.Shift jsr K.ArgV
|
|||
tya
|
||||
beq .8
|
||||
|
||||
jsr SHARED.AddYp1ToPtr2
|
||||
jsr SHARED.AddYp12P2
|
||||
bra .2
|
||||
|
||||
.8 ldy #S.PS.ARGC
|
||||
|
@ -63,10 +63,10 @@ K.ArgV tax save requested arg#
|
|||
beq .9 yes, not found....
|
||||
dex
|
||||
bmi .7
|
||||
.3 jsr SHARED.GetCharPtr2 skip str
|
||||
.3 jsr SHARED.GetCP2 skip str
|
||||
bne .3
|
||||
|
||||
jsr SHARED.NextCharPtr2 skip \0
|
||||
jsr SHARED.NextCP2 skip \0
|
||||
bra .1
|
||||
|
||||
.7 >LDYA ZPPtr2
|
||||
|
@ -99,7 +99,7 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
|||
ldx #0 Arg Count
|
||||
ldy #0 bInQuote
|
||||
|
||||
.1 jsr SHARED.GetCharPtr1
|
||||
.1 jsr SHARED.GetCP1
|
||||
beq .8
|
||||
|
||||
cmp #C.SPACE
|
||||
|
@ -120,18 +120,18 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
|||
|
||||
inx Found one arg !!!
|
||||
lda #0 set this token End
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.PutCP2
|
||||
bra .1
|
||||
|
||||
.4 lda #C.SPACE
|
||||
.6 jsr SHARED.PutCharPtr2
|
||||
.6 jsr SHARED.PutCP2
|
||||
|
||||
.7 jsr SHARED.GetCharPtr1
|
||||
.7 jsr SHARED.GetCP1
|
||||
bne .2
|
||||
|
||||
inx
|
||||
|
||||
.8 jsr SHARED.PutCharPtr2 set Argv[x] Ending 0
|
||||
.8 jsr SHARED.PutCP2 set Argv[x] Ending 0
|
||||
|
||||
sta (ZPPtr2) set Array Ending 0
|
||||
phx
|
||||
|
@ -182,15 +182,7 @@ K.ArgVDup >STYA ZPPtr1
|
|||
>STYA ZPPtr2
|
||||
phx
|
||||
|
||||
jsr ARG.Ptr1Ptr2cpy
|
||||
|
||||
txa Count
|
||||
plx hMem
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
ARG.Ptr1Ptr2cpy ldx #0
|
||||
ldx #0
|
||||
ldy #0
|
||||
|
||||
.4 lda (ZPPtr1),y
|
||||
|
@ -215,7 +207,12 @@ ARG.Ptr1Ptr2cpy ldx #0
|
|||
.7 lda (ZPPtr1),y
|
||||
sta (ZPPtr2),y Ending \0 ?
|
||||
bne .5
|
||||
rts
|
||||
|
||||
txa Count
|
||||
plx hMem
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.arg
|
||||
|
|
|
@ -172,7 +172,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
|||
>PUSHYA Push AUXTYPE
|
||||
|
||||
jsr K.LoadFile
|
||||
bcs BIN.Load.Free.RTS Error Loading file
|
||||
bcs .9 Error Loading file
|
||||
|
||||
stx BIN.hMem save hMem
|
||||
|
||||
|
@ -189,7 +189,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
|||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr1 set ZPPtr1 -> New Code start
|
||||
|
||||
jsr BIN.ComputeOffsetYA YA = actual load address
|
||||
jsr BIN.CompOfsYA YA = actual load address
|
||||
|
||||
jsr Mem.SetOwnerPS0 this CS is owned by PS 0
|
||||
|
||||
|
@ -199,7 +199,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
|||
iny
|
||||
lda (ZPPtr1),y
|
||||
ply
|
||||
jsr BIN.ComputeCSEndYA
|
||||
jsr BIN.CompCSEndYA
|
||||
jsr BIN.RelExe
|
||||
|
||||
>LDYAI K.Buf256 get back bin path
|
||||
|
@ -221,14 +221,14 @@ BIN.Load.1 >PUSHWI K.Buf256
|
|||
clc
|
||||
jmp MEM.GetMEMPTR ...and Y,A=PTR to CS
|
||||
|
||||
.9 rts
|
||||
|
||||
BIN.Load.Free php
|
||||
pha
|
||||
lda BIN.hMem
|
||||
jsr K.FreeMem
|
||||
pla
|
||||
plp
|
||||
|
||||
BIN.Load.Free.RTS
|
||||
rts Discard Loaded Code, exits CS
|
||||
*/--------------------------------------
|
||||
* # InsDrv
|
||||
|
@ -247,7 +247,7 @@ BIN.Load.Free.RTS
|
|||
K.InsDrv >STYA ZPPtr3 SRC PTR for move
|
||||
>PULLW BIN.R.CS.Start
|
||||
>PULLYA DRV.CS.SIZE
|
||||
jsr BIN.ComputeCSEndYA
|
||||
jsr BIN.CompCSEndYA
|
||||
>PULLA BIN.R.End
|
||||
sta BIN.R.End
|
||||
sec
|
||||
|
@ -265,7 +265,7 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move
|
|||
>STYA ZPPtr4 ...for move...
|
||||
sty .7+1 ...and for exit
|
||||
sta .8+1
|
||||
jsr BIN.ComputeOffsetYA
|
||||
jsr BIN.CompOfsYA
|
||||
|
||||
lda BIN.R.Size
|
||||
eor #$ff
|
||||
|
@ -305,20 +305,20 @@ BIN.RelExe ldy #H.BIN.T+1
|
|||
rts
|
||||
|
||||
.1 ldy #H.BIN.JMP relocate Main JMP
|
||||
jsr BIN.RelocateAtPtr1Y
|
||||
jsr BIN.RelAtPtr1Y
|
||||
|
||||
ldy #H.BIN.EXE.REL.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
||||
ldy #16 skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
||||
|
||||
.HS 2C bit abs
|
||||
*--------------------------------------
|
||||
BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
||||
BIN.RelDrv ldy #2 start after CLD JMP
|
||||
|
||||
.1 iny
|
||||
lda (ZPPtr1),y HI in A
|
||||
beq .2 $00xx = end of table
|
||||
|
||||
dey
|
||||
jsr BIN.RelocateAtPtr1Y
|
||||
jsr BIN.RelAtPtr1Y
|
||||
|
||||
iny
|
||||
bne .1
|
||||
|
@ -327,7 +327,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
|||
|
||||
bra .1
|
||||
*--------------------------------------
|
||||
.2 jsr SHARED.AddYp1ToPtr1 add current offset in Y to Ptr
|
||||
.2 jsr SHARED.AddYp12P1 add current offset in Y to Ptr
|
||||
* + 1 to skip last 00 from beq .2
|
||||
* ZPPtr1=Current Code PTR
|
||||
lda BIN.R.CS.End
|
||||
|
@ -353,11 +353,11 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
|||
and #7 save Opcode length...
|
||||
pha
|
||||
ldy #1
|
||||
jsr BIN.RelocateAtPtr1Y
|
||||
jsr BIN.RelAtPtr1Y
|
||||
pla get back Opcode length...
|
||||
|
||||
.5 tay A = OPCODE length
|
||||
jsr SHARED.AddYToPtr1
|
||||
jsr SHARED.AddY2P1
|
||||
|
||||
.6 cmp BIN.R.Stop A = ZPPtr1
|
||||
bne .3
|
||||
|
@ -369,8 +369,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
|||
clc Make sure exit with CC
|
||||
rts
|
||||
*-------------------------------------- YA = CS Size
|
||||
BIN.ComputeCSEndYA
|
||||
pha
|
||||
BIN.CompCSEndYA pha
|
||||
tya
|
||||
clc
|
||||
adc BIN.R.CS.Start
|
||||
|
@ -380,8 +379,7 @@ BIN.ComputeCSEndYA
|
|||
sta BIN.R.CS.End+1
|
||||
rts
|
||||
*-------------------------------------- YA = Target Address
|
||||
BIN.ComputeOffSetYA
|
||||
pha
|
||||
BIN.CompOfsYA pha
|
||||
tya
|
||||
sec
|
||||
sbc BIN.R.CS.Start
|
||||
|
@ -391,8 +389,7 @@ BIN.ComputeOffSetYA
|
|||
sta BIN.R.Offset+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
BIN.RelocateAtPtr1Y
|
||||
lda (ZPPtr1),y Get LO
|
||||
BIN.RelAtPtr1Y lda (ZPPtr1),y Get LO
|
||||
tax save LO in X
|
||||
iny make Y point to HI
|
||||
lda (ZPPtr1),y Get HI
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
ZPBLISTXIBlkPtr .EQ ZPMEMMGR+12
|
||||
ZPBLISTXDBlkPtr .EQ ZPMEMMGR+14
|
||||
IBlkPtr .EQ ZPMEMMGR+12
|
||||
DBlkPtr .EQ ZPMEMMGR+14
|
||||
*--------------------------------------
|
||||
BLISTX.BytePtr .BS 1
|
||||
BLISTX.BlockPtr .BS 1
|
||||
KeyID .EQ *
|
||||
iByte .BS 1
|
||||
iBlk .BS 1
|
||||
*--------------------------------------
|
||||
BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
||||
ldx #S.MEM.F.INIT0+8 index
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPBLISTXIBlkPtr
|
||||
>STYA IBlkPtr
|
||||
stx .8+1
|
||||
|
||||
>LDYAI 256
|
||||
|
@ -20,12 +21,12 @@ BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
|||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPBLISTXDBlkPtr
|
||||
>STYA DBlkPtr
|
||||
|
||||
lda #0
|
||||
sta (ZPBLISTXDBlkPtr)
|
||||
sta (DBlkPtr)
|
||||
txa
|
||||
sta (ZPBLISTXIBlkPtr)
|
||||
sta (IBlkPtr)
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
.9 rts
|
||||
|
@ -47,23 +48,21 @@ BLISTX.Free pha
|
|||
.8 pla
|
||||
jmp K.FreeMem
|
||||
*--------------------------------------
|
||||
BLISTX.GetNextByte
|
||||
ldy BLISTX.BytePtr
|
||||
lda (ZPBLISTXDBlkPtr),y
|
||||
BLISTX.ToNextByte
|
||||
inc BLISTX.BytePtr
|
||||
BLISTX.GetNByte ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
|
||||
BLISTX.2NByte inc iByte
|
||||
bne .8
|
||||
|
||||
pha
|
||||
jsr BLISTX.ToNextBlock
|
||||
jsr BLISTX.2NBlk
|
||||
pla
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
BLISTX.AddDataByte
|
||||
phy
|
||||
ldy BLISTX.BytePtr
|
||||
sta (ZPBLISTXDBlkPtr),y
|
||||
inc BLISTX.BytePtr
|
||||
BLISTX.AddByte phy
|
||||
ldy iByte
|
||||
sta (DBlkPtr),y
|
||||
inc iByte
|
||||
bne .8
|
||||
|
||||
phx
|
||||
|
@ -72,13 +71,13 @@ BLISTX.AddDataByte
|
|||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPBLISTXDBlkPtr
|
||||
>STYA DBlkPtr
|
||||
txa
|
||||
inc BLISTX.BlockPtr
|
||||
ldy BLISTX.BlockPtr
|
||||
sta (ZPBLISTXIBlkPtr),y
|
||||
inc iBlk
|
||||
ldy iBlk
|
||||
sta (IBlkPtr),y
|
||||
|
||||
* stz BLISTX.BytePtr
|
||||
* stz iByte
|
||||
plx
|
||||
|
||||
.8 ply
|
||||
|
@ -89,20 +88,18 @@ BLISTX.AddDataByte
|
|||
ply
|
||||
rts
|
||||
*--------------------------------------
|
||||
BLISTX.SetBlockByte
|
||||
ldy BLISTX.BytePtr
|
||||
sta (ZPBLISTXDBlkPtr),y
|
||||
inc BLISTX.BytePtr
|
||||
bne BLISTX.ToNextBlock.RTS
|
||||
BLISTX.SetBlkByte
|
||||
ldy iByte
|
||||
sta (DBlkPtr),y
|
||||
inc iByte
|
||||
bne BLISTX.RTS
|
||||
*--------------------------------------
|
||||
BLISTX.ToNextBlock
|
||||
inc BLISTX.BlockPtr
|
||||
ldy BLISTX.BlockPtr
|
||||
lda (ZPBLISTXIBlkPtr),y
|
||||
BLISTX.2NBlk inc iBlk
|
||||
ldy iBlk
|
||||
lda (IBlkPtr),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPBLISTXDBlkPtr
|
||||
BLISTX.ToNextBlock.RTS
|
||||
rts
|
||||
>STYA DBlkPtr
|
||||
BLISTX.RTS rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.blistx
|
||||
|
|
|
@ -337,10 +337,12 @@ CORE.Dispatch ldx #1 skip PS0
|
|||
* X unmodified
|
||||
*--------------------------------------
|
||||
CORE.GetPSByID jsr CORE.GetPS
|
||||
bcs CORE.GetPS.RTS
|
||||
bcs .9
|
||||
|
||||
lda PS.TABLE.hPS,y
|
||||
jmp K.GetMemPtr
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* X,A unmodified
|
||||
*--------------------------------------
|
||||
|
@ -362,7 +364,7 @@ CORE.GetPS tay
|
|||
rts
|
||||
|
||||
.8 clc
|
||||
CORE.GetPS.RTS rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
*CORE.DumpEvent ldy #S.EVT-1
|
||||
*.1 >PUSHB (pEvent),y
|
||||
|
@ -470,35 +472,6 @@ CORE.PSResume sei
|
|||
inc IRQ.InKernel
|
||||
rti
|
||||
*--------------------------------------
|
||||
GP.RomCall.JmpX jmp (.1-FPU.FADD,x)
|
||||
*--------------------------------------
|
||||
* http://www.txbobsc.com/scsc/scdocumentor/E7A0.html
|
||||
*--------------------------------------
|
||||
.1 .DA $E7C1 FADDT
|
||||
.DA $E7AA FSUBT
|
||||
.DA $E987 FMULTT.1
|
||||
.DA $EA6B FDIVT+2
|
||||
.DA $EE97 FPWRT
|
||||
|
||||
.DA $E941 LOG
|
||||
.DA $EE8D SQR
|
||||
.DA $EF09 EXP
|
||||
.DA $EFEA COS
|
||||
.DA $EFF1 SIN
|
||||
.DA $F03A TAN
|
||||
.DA $F09E ATN
|
||||
*--------------------------------------
|
||||
.DA $E9E3 LOAD.ARG.FROM.YA
|
||||
.DA $EAF9 LOAD.FAC.FROM.YA
|
||||
.DA $EB27 SETFOR (GETFAC)
|
||||
.DA $EBB2 FCOMP (Y,A with FAC)
|
||||
|
||||
.DA $E82E NORMALIZE.FAC.2 (L->F)
|
||||
.DA $EBF2 QINT (F->L)
|
||||
|
||||
.DA $EC4A FIN AToF
|
||||
.DA $ED36 FOUT.1 PrintF
|
||||
*--------------------------------------
|
||||
CORE.VBLState .BS 1
|
||||
CORE.TickPerSec .BS 1
|
||||
CORE.TickPer10t .BS 1
|
||||
|
|
|
@ -9,13 +9,12 @@ C1 .EQ Mem.MHiMem
|
|||
C2 .EQ Mem.XLoMem
|
||||
C3 .EQ Mem.XHiMem
|
||||
*--------------------------------------
|
||||
C4 .EQ A2osX.GP.SC
|
||||
C5 .EQ A2osX.AUX.S
|
||||
C4 .EQ GP.CE-GP.CS
|
||||
C5 .EQ AUX.S
|
||||
*--------------------------------------
|
||||
C6 .EQ A2osX.D1.S
|
||||
C7 .EQ A2osX.D2.S
|
||||
C8 .EQ A2osX.E0.S
|
||||
C9 .EQ DevMgr.FreeMem
|
||||
C6 .EQ D1.S
|
||||
C7 .EQ D2.S
|
||||
C8 .EQ E0.S
|
||||
*--------------------------------------
|
||||
.LIST OFF
|
||||
.DO Mem.MLoMem>$2000
|
||||
|
@ -28,17 +27,17 @@ C9 .EQ DevMgr.FreeMem
|
|||
* ERROR:AUX too big
|
||||
.LIST OFF
|
||||
.FIN
|
||||
.DO A2osX.GP.SC>$1D0
|
||||
.DO C4>$1D0
|
||||
.LIST ON
|
||||
* ERROR:GP too big
|
||||
.LIST OFF
|
||||
.FIN
|
||||
.DO A2osX.D1.S>$1000
|
||||
.DO D1.S>$1000
|
||||
.LIST ON
|
||||
* ERROR:BNK1 too big
|
||||
.LIST OFF
|
||||
.FIN
|
||||
.DO A2osX.D2.S>$1000
|
||||
.DO D2.S>$1000
|
||||
.LIST ON
|
||||
* ERROR:BNK2 too big
|
||||
.LIST OFF
|
||||
|
|
|
@ -119,10 +119,10 @@ IO.hFD .BS 1
|
|||
IO.hDevNod .BS 1
|
||||
.ED
|
||||
*--------------------------------------
|
||||
A2osX.SaveSM .EQ $100 Aux
|
||||
A2osX.SaveSX .EQ $101 Aux
|
||||
A2osX.NumStrLen .EQ $102 Aux
|
||||
A2osX.NumStrBuf .EQ $103 Aux
|
||||
SaveSM .EQ $100 Aux
|
||||
SaveSX .EQ $101 Aux
|
||||
*FOUTBufPtr .EQ $102 Aux
|
||||
FOUTBuf .EQ $103 Aux
|
||||
*--------------------------------------
|
||||
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
|
||||
* Main $300 -> 3EF : <free>
|
||||
|
@ -186,21 +186,15 @@ H.BIN.CS.SIZE .EQ 8
|
|||
H.BIN.DS.SIZE .EQ 10
|
||||
H.BIN.SS.SIZE .EQ 12
|
||||
H.BIN.ZP.SIZE .EQ 13
|
||||
*
|
||||
H.BIN.EXE.REL.TABLE .EQ 16
|
||||
*
|
||||
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
|
||||
*--------------------------------------
|
||||
TTY.BUF.SIZE .EQ 80*24
|
||||
*--------------------------------------
|
||||
S.DCB.TTY.DEVID .EQ 0
|
||||
S.DCB.TTY.STATUS .EQ 1
|
||||
S.DCB.TTY.MODE .EQ 2
|
||||
S.DCB.TTY.MODE.ESC .EQ 2
|
||||
S.DCB.TTY.MODE.CSI .EQ 4
|
||||
S.DCB.TTY.MODE.IAC .EQ 6
|
||||
S.DCB.TTY.MODE.G0 .EQ 8
|
||||
S.DCB.TTY.MODE.G1 .EQ 10
|
||||
S.DCB.TTY.S .EQ 1
|
||||
S.DCB.TTY.M .EQ 2
|
||||
S.DCB.TTY.M.ESC .EQ 2
|
||||
S.DCB.TTY.M.CSI .EQ 4
|
||||
S.DCB.TTY.M.IAC .EQ 6
|
||||
S.DCB.TTY.M.G0 .EQ 8
|
||||
S.DCB.TTY.M.G1 .EQ 10
|
||||
S.DCB.TTY.CH .EQ 3
|
||||
S.DCB.TTY.CH.SAVE .EQ 4
|
||||
S.DCB.TTY.CV .EQ 5
|
||||
|
|
|
@ -59,7 +59,7 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
|||
lda Nod.Table.hFD-2,x
|
||||
jsr K.GetMemPtr Y,A = pPD, X = hDevNod
|
||||
|
||||
>STYA pFD for UNISTD.Open
|
||||
>STYA pFD for IO.Open
|
||||
|
||||
* clc
|
||||
rts
|
||||
|
@ -107,10 +107,10 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
|||
jsr DEV.GetPFD
|
||||
bcs K.GetDev.9
|
||||
|
||||
lda #S.IOCTL.STATCODE.GETDIB
|
||||
lda #S.IOCTL.S.GETDIB
|
||||
*--------------------------------------
|
||||
DEV.GetDevStatus
|
||||
sta K.S.IOCTL+S.IOCTL.STATCODE
|
||||
sta K.S.IOCTL+S.IOCTL.S
|
||||
|
||||
ldy #S.FD.DEV.DEVID
|
||||
lda (pFD),y
|
||||
|
@ -132,8 +132,7 @@ DEV.pDrvJmp jmp (pDrv)
|
|||
* ## RETURN VALUE
|
||||
* A = hDEV
|
||||
*\--------------------------------------
|
||||
K.MKDev >PULLW ZPPtr2 ptr2=name
|
||||
>PULLW ZPPtr1 ptr1=fd
|
||||
K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||
|
||||
ldx #1
|
||||
|
||||
|
@ -193,7 +192,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
|
|||
|
||||
jsr DEV.GetPDrv
|
||||
|
||||
lda #S.IOCTL.STATCODE.STATUS
|
||||
lda #S.IOCTL.S.STATUS
|
||||
jsr DEV.GetDevStatus
|
||||
bcs .99
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ K.ReadDir.hBuf .BS 1
|
|||
.ED
|
||||
*--------------------------------------
|
||||
K.ReadDir jsr PFT.CheckNodeA
|
||||
bcs K.ReadDir.RTS
|
||||
bcs DIRENT.RTS
|
||||
|
||||
ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
|
@ -60,14 +60,14 @@ K.ReadDir jsr PFT.CheckNodeA
|
|||
jmp K.ReadDir.DEV
|
||||
|
||||
.1 jmp K.ReadDir.DIR
|
||||
K.ReadDir.NoMore
|
||||
lda #MLI.E.EOF
|
||||
|
||||
DIRENT.EOF lda #MLI.E.EOF
|
||||
sec
|
||||
K.ReadDir.RTS rts
|
||||
DIRENT.RTS rts
|
||||
*--------------------------------------
|
||||
K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||
lda (pFD),y
|
||||
bne K.ReadDir.NoMore
|
||||
bne DIRENT.EOF
|
||||
|
||||
stz K.MLI.PARAMS+1 All Volumes
|
||||
>LDYAI K.Buf256
|
||||
|
@ -75,12 +75,12 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
|||
>STYA ZPPtr2
|
||||
|
||||
>MLICALL MLIONLINE
|
||||
bcs K.ReadDir.RTS
|
||||
bcs DIRENT.RTS
|
||||
|
||||
>LDYAI 16+S.STAT*18+1 14*(Vols+Stat) + 4*(PFT+Stat) + \0
|
||||
|
||||
jsr K.ReadDir.GetBufYA
|
||||
bcs K.ReadDir.RTS
|
||||
bcs DIRENT.RTS
|
||||
|
||||
lda #16
|
||||
sta K.ReadDir.EC
|
||||
|
@ -186,8 +186,7 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
|||
sta (pFD),y Flag that we returned something for next time
|
||||
jmp K.ReadDir.EXIT
|
||||
*--------------------------------------
|
||||
K.ReadDir.DEV
|
||||
jmp K.ReadDir.NoMore
|
||||
K.ReadDir.DEV jmp DIRENT.EOF TODO : /dev
|
||||
*--------------------------------------
|
||||
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
|
||||
|
|
|
@ -11,12 +11,11 @@ DRV.DiskII cld
|
|||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
|
||||
.1 .DA DRV.DiskII.STATUS
|
||||
.1 .DA DRV.DiskII.S
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
*--------------------------------------
|
||||
DRV.DiskII.STATUS
|
||||
>LDYAI DRV.DiskII.DIB
|
||||
DRV.DiskII.S >LDYAI DRV.DiskII.DIB
|
||||
jmp DRV.STATUS.YA
|
||||
*--------------------------------------
|
||||
DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||
|
@ -37,15 +36,15 @@ DRV.RamDrive cld
|
|||
bcs DRV.RamDrive.9
|
||||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
.1 .DA DRV.RamDrive.STATUS
|
||||
.1 .DA DRV.RamDrive.S
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
.DA DRV.BLK FORMAT
|
||||
DRV.RamDrive.9 jmp A2osX.BadCall
|
||||
*--------------------------------------
|
||||
DRV.RamDrive.STATUS
|
||||
jsr DRV.Blk
|
||||
DRV.RamDrive.S jsr DRV.Blk
|
||||
bcs .9
|
||||
|
||||
stx DRV.RamDrive.DIB+S.DIB.SIZE
|
||||
sty DRV.RamDrive.DIB+S.DIB.SIZE+1
|
||||
>LDYAI DRV.RamDrive.DIB
|
||||
|
@ -70,14 +69,14 @@ DRV.BlkDev cld
|
|||
bcs DRV.RamDrive.9
|
||||
>STYA pIOCTL
|
||||
jmp (.1,x)
|
||||
.1 .DA DRV.BlkDev.STATUS
|
||||
.1 .DA DRV.BlkDev.S
|
||||
.DA DRV.BLK READ
|
||||
.DA DRV.BLK WRITE
|
||||
.DA DRV.BLK FORMAT
|
||||
*--------------------------------------
|
||||
DRV.BlkDev.STATUS
|
||||
jsr DRV.Blk
|
||||
DRV.BlkDev.S jsr DRV.Blk
|
||||
bcs .9
|
||||
|
||||
stx DRV.BlkDev.DIB+S.DIB.SIZE
|
||||
sty DRV.BlkDev.DIB+S.DIB.SIZE+1
|
||||
|
||||
|
@ -190,7 +189,7 @@ DRV.SmartPort.Cnt
|
|||
DRV.NULL cld
|
||||
>STYA pIOCTL
|
||||
txa
|
||||
beq DRV.NULL.STATUS
|
||||
beq DRV.NULL.S
|
||||
jmp (.1-12,x)
|
||||
*--------------------------------------
|
||||
.1
|
||||
|
@ -202,7 +201,7 @@ DRV.NULL cld
|
|||
* .DA A2osX.BADCALL INIT
|
||||
.DA DRV.CLCRTS OPEN
|
||||
.DA DRV.CLCRTS CLOSE
|
||||
.DA DRV.NULL.READ
|
||||
.DA DRV.NULL.R
|
||||
.DA DRV.CLCRTS WRITE
|
||||
*--------------------------------------
|
||||
DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED
|
||||
|
@ -213,15 +212,15 @@ DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED
|
|||
.DA #0
|
||||
.DA K.VER
|
||||
*--------------------------------------
|
||||
DRV.NULL.STATUS >LDYAI DRV.NULL.DIB
|
||||
DRV.NULL.S >LDYAI DRV.NULL.DIB
|
||||
*--------------------------------------
|
||||
DRV.STATUS.YA >STYA .2+1
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (pIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne .9
|
||||
|
||||
ldx #S.DIB-1
|
||||
|
@ -247,7 +246,7 @@ DRV.STATUS.YA >STYA .2+1
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.NULL.READ ldx #C.EOF
|
||||
DRV.NULL.R ldx #C.EOF
|
||||
|
||||
ldy #S.IOCTL.BYTECNT
|
||||
lda #1
|
||||
|
|
|
@ -14,7 +14,7 @@ ENVX.PutEnv sta ENVX.hEnv
|
|||
ldy #$ff
|
||||
|
||||
.1 iny
|
||||
jsr SHARED.TXTPTR.GetY NAME=
|
||||
jsr SHARED.TXTPTRgY NAME=
|
||||
beq ENVX.PutEnv.9
|
||||
|
||||
cmp #'='
|
||||
|
@ -51,7 +51,7 @@ ENVX.SetEnv.I
|
|||
.15 ldy #$ff
|
||||
|
||||
.16 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .17
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
|
@ -62,7 +62,7 @@ ENVX.SetEnv.I
|
|||
ldy #$ff
|
||||
|
||||
.19 iny
|
||||
jsr SHARED.FORPNT.getY
|
||||
jsr SHARED.FORPNTgY
|
||||
bne .19
|
||||
|
||||
jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
|
||||
|
@ -115,7 +115,7 @@ ENVX.SetEnv.I
|
|||
.22 ldy #$ff
|
||||
|
||||
.23 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
sta (ZPPtr3),y
|
||||
beq .24
|
||||
jsr SHARED.IsIDValid
|
||||
|
@ -128,7 +128,7 @@ ENVX.SetEnv.I
|
|||
ldy #$ff
|
||||
|
||||
.25 iny
|
||||
jsr SHARED.FORPNT.getY
|
||||
jsr SHARED.FORPNTgY
|
||||
sta (ZPPtr3),y
|
||||
bne .25
|
||||
|
||||
|
@ -192,7 +192,7 @@ ENVX.GetEnv sta ENVX.hEnv
|
|||
|
||||
.4 iny
|
||||
lda (ZPPtr3),y
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
bne .4
|
||||
|
||||
>LDYA FORPNT
|
||||
|
@ -236,7 +236,7 @@ ENVX.FindEnvVar jsr ENVX.InitEnvP3 Store ENV
|
|||
ldy #$ff
|
||||
|
||||
.2 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .3
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
|
@ -270,7 +270,7 @@ ENVX.FindSIDVar >LDYAI ENVX.SIDVars
|
|||
ldy #$ff
|
||||
|
||||
.2 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .3
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
|
@ -348,7 +348,7 @@ ENVX.SIDVarsGID ldx #S.SESSION.GID
|
|||
|
||||
jsr MATH.A2STR10NP
|
||||
|
||||
>LDYAI A2osX.NumStrBuf
|
||||
>LDYAI FOUTBuf
|
||||
|
||||
clc
|
||||
rts
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
* GetErrorMessage
|
||||
* GetErrMsg
|
||||
* In :
|
||||
* Out :
|
||||
*--------------------------------------
|
||||
K.GetErrorMessage
|
||||
>PULLW ZPPtr2 Dst Buf
|
||||
K.GetErrMsg >PULLW ZPPtr2 Dst Buf
|
||||
>PULLA Err Code
|
||||
|
||||
sta SETREADAUX
|
||||
sta SETWRITEAUX
|
||||
|
||||
jsr ERRORX.GetErrorMessage
|
||||
jsr ERRORX.GetErrMsg
|
||||
|
||||
sta CLRREADAUX
|
||||
rts
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
ERRORX.GetErrorMessage
|
||||
ERRORX.GetErrMsg
|
||||
ldx #ERRORX.MSG
|
||||
stx ZPPtr1
|
||||
ldx /ERRORX.MSG
|
||||
|
|
|
@ -110,7 +110,7 @@ FS.CLOSE.DIR ldy #S.FD.REG.REF
|
|||
|
||||
sta K.MLI.PARAMS+1
|
||||
>MLICALL MLICLOSE
|
||||
* bcs IO.WRITE.REG.RTS
|
||||
* bcs FS.RTS
|
||||
|
||||
.1 ldy #S.FD.REG.IOBUF
|
||||
lda (pFD),y
|
||||
|
@ -198,13 +198,13 @@ FS.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
|||
* clc
|
||||
|
||||
.9
|
||||
FS.MLIOPEN.RTS rts
|
||||
FS.RTS rts
|
||||
*--------------------------------------
|
||||
FS.Stat bit A2osX.FSID
|
||||
bmi FS.Stat.FX
|
||||
|
||||
FS.Stat.203 >MLICALL MLIGETFILEINFO
|
||||
bcs FS.MLIOPEN.RTS
|
||||
bcs FS.RTS
|
||||
|
||||
jsr FS.ClrStat
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ NEW
|
|||
* X = SYSfnc.Index
|
||||
* Y,A = free for Inline param
|
||||
*--------------------------------------
|
||||
GP.CodeStart jmp GP.SysCall
|
||||
GP.CS jmp GP.SysCall
|
||||
*--------------------------------------
|
||||
* LIBCALL (AUXLC to AUXLC)
|
||||
* Used by user
|
||||
|
@ -189,7 +189,7 @@ GP.AtkCall dec IRQ.InKernel
|
|||
|
||||
jsr GO.A2osX
|
||||
|
||||
GP.AtkCall.INC inc IRQ.InKernel
|
||||
inc IRQ.InKernel
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # Add32,Sub32,Mul32,IMul32,Div32,IDiv32,Mod32,IMod32,Cmp32,ICmp32
|
||||
|
@ -204,28 +204,33 @@ GP.AtkCall.INC inc IRQ.InKernel
|
|||
* On stack (long)
|
||||
*\--------------------------------------
|
||||
GP.FpuCall dec IRQ.InKernel
|
||||
cpx #FPU.FADD
|
||||
cpx #FPU.FMUL
|
||||
bcs .1
|
||||
|
||||
jsr MATH INT32, direct JMP
|
||||
bra GP.AtkCall.INC
|
||||
jsr MATH math16 & math32, direct JMP
|
||||
|
||||
inc IRQ.InKernel
|
||||
rts
|
||||
|
||||
.1 phx
|
||||
jsr GP.SetFAC Get float from stack
|
||||
plx
|
||||
cpx #FPU.PWR+1
|
||||
bcs GP.RomCallGetFacOnStack
|
||||
bcs GP.GetFAC
|
||||
*/--------------------------------------
|
||||
* # FAdd,FSub,FMult,FDiv,FPwr
|
||||
* Return X+Y, X-Y, X*Y, X/Y, X^Y
|
||||
* # FAdd,FSub,FMul,FDiv,FPwr
|
||||
* Return X*Y, X/Y, X+Y, X-Y
|
||||
* ## C
|
||||
* `float pwr ( float x, float y);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHF X (float)`
|
||||
* `>PUSHF Y (float)`
|
||||
* `>FPU fmul`
|
||||
* `>FPU fdiv`
|
||||
* `>FPU fmod` TODO
|
||||
* `>FPU fadd`
|
||||
* `>FPU fsub`
|
||||
* `>FPU fmult`
|
||||
* `>FPU fdiv`
|
||||
* `>FPU fpwr`
|
||||
* ## RETURN VALUE
|
||||
* On stack (float)
|
||||
|
@ -255,8 +260,7 @@ GP.FpuCall dec IRQ.InKernel
|
|||
* ## RETURN VALUE
|
||||
* On stack (Float)
|
||||
*\--------------------------------------
|
||||
GP.RomCallGetFacOnStack
|
||||
jsr GP.ROMCALL
|
||||
GP.GetFAC jsr GP.ROMCALL
|
||||
|
||||
lda pStack
|
||||
ldy pStack+1
|
||||
|
@ -270,7 +274,7 @@ GP.RomCall phx
|
|||
bit RROMBNK1
|
||||
plx
|
||||
|
||||
jsr GP.RomCall.JmpX
|
||||
jsr MATHF
|
||||
|
||||
.8 ldx #$ff
|
||||
bit $C000,x
|
||||
|
@ -308,7 +312,7 @@ GP.Float ldy #3
|
|||
sta FAC Positive + Exp=32
|
||||
ldx #FPU.LTOF
|
||||
|
||||
bra GP.RomCallGetFacOnStack
|
||||
bra GP.GetFAC
|
||||
*/--------------------------------------
|
||||
* # lrintf
|
||||
* Return float rounded into a long
|
||||
|
@ -373,8 +377,8 @@ GO.A2osX php
|
|||
* bit RRAMWRAMBNK1
|
||||
|
||||
tsx
|
||||
stx A2osX.SaveSX
|
||||
ldx A2osX.SaveSM
|
||||
stx SaveSX
|
||||
ldx SaveSM
|
||||
txs
|
||||
sta CLRALTZP
|
||||
bra GO.EXIT
|
||||
|
@ -385,8 +389,8 @@ GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3
|
|||
* bit $C000,x
|
||||
sta SETALTZP
|
||||
tsx
|
||||
stx A2osX.SaveSM
|
||||
ldx A2osX.SaveSX
|
||||
stx SaveSM
|
||||
ldx SaveSX
|
||||
txs
|
||||
*--------------------------------------
|
||||
GO.EXIT pha push P on stack
|
||||
|
@ -410,15 +414,15 @@ GP.IRQ cld
|
|||
|
||||
sta SETALTZP switch to aux LC
|
||||
tsx
|
||||
stx A2osX.SaveSM
|
||||
ldx A2osX.SaveSX
|
||||
stx SaveSM
|
||||
ldx SaveSX
|
||||
txs
|
||||
|
||||
GP.IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
|
||||
|
||||
tsx go back to Main
|
||||
stx A2osX.SaveSX
|
||||
ldx A2osX.SaveSM
|
||||
stx SaveSX
|
||||
ldx SaveSM
|
||||
txs
|
||||
sta CLRALTZP
|
||||
rts
|
||||
|
@ -432,7 +436,7 @@ GP.IRQ.Exit stz IRQ.Skip reset flag
|
|||
*--------------------------------------
|
||||
*BrkHandler bra *
|
||||
*--------------------------------------
|
||||
GP.CodeEnd .BS $BED0-*
|
||||
GP.CE .BS $BED0-*
|
||||
*--------------------------------------
|
||||
* $BED0->$BEEF : Public Variables
|
||||
*--------------------------------------
|
||||
|
@ -446,7 +450,6 @@ GP.CodeEnd .BS $BED0-*
|
|||
.DA #0 ChRoot/Preemptive Disabled
|
||||
.HS 00000000000000 All Slots marked as "Free"
|
||||
*--------------------------------------
|
||||
GP.End .EQ *
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.gp
|
||||
LOAD usr/src/sys/kernel.s
|
||||
|
|
|
@ -6,8 +6,8 @@ Kernel.Init2 sei
|
|||
txs
|
||||
sta SETALTZP
|
||||
|
||||
stx A2osX.SaveSM
|
||||
stx A2osX.SaveSX
|
||||
stx SaveSM
|
||||
stx SaveSX
|
||||
|
||||
ldx #Kernel.ZP.S-1
|
||||
|
||||
|
@ -35,10 +35,10 @@ Kernel.Init2 sei
|
|||
>LDYAI Mem.XHiMem
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda #A2osX.AUX.S
|
||||
lda #AUX.S
|
||||
eor #$ff
|
||||
tax
|
||||
lda /A2osX.AUX.S
|
||||
lda /AUX.S
|
||||
eor #$ff
|
||||
pha
|
||||
|
||||
|
@ -224,7 +224,7 @@ KConfigLoad >LDYAI MSG.KCREAD
|
|||
|
||||
jsr MLIENTRY Bypass ATALK
|
||||
.DA #MLIGETFILEINFOEX
|
||||
.DA MLIGETFILEINFOEX00
|
||||
.DA pMLIGFIEX
|
||||
bcc .1
|
||||
eor #MLI.E.BADCALL
|
||||
beq .2 regular ProDOS
|
||||
|
@ -237,20 +237,20 @@ KConfigLoad >LDYAI MSG.KCREAD
|
|||
|
||||
.2 jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN00
|
||||
.DA pMLIOPEN
|
||||
bcs .9
|
||||
|
||||
lda MLIOPEN00+5
|
||||
sta MLIREAD00+1
|
||||
sta MLICLOSE00+1
|
||||
lda pMLIOPEN+5
|
||||
sta pMLIREAD+1
|
||||
sta pMLICLOSE+1
|
||||
jsr MLI
|
||||
.DA #MLIREAD
|
||||
.DA MLIREAD00
|
||||
.DA pMLIREAD
|
||||
php
|
||||
pha
|
||||
jsr MLI
|
||||
.DA #MLICLOSE
|
||||
.DA MLICLOSE00
|
||||
.DA pMLICLOSE
|
||||
pla
|
||||
plp
|
||||
bcs .9
|
||||
|
@ -358,13 +358,13 @@ SysScrInit >LDYAI Mem.XHiMem
|
|||
SysScrInit.TTYPtrs
|
||||
lda FD.TTY+S.FD.DEV.DCBPTR
|
||||
sec
|
||||
sbc #TTY.BUF.SIZE+S.DCB.TTY
|
||||
sbc #80*24+S.DCB.TTY
|
||||
sta FD.TTY+S.FD.DEV.DCBPTR
|
||||
sta .1+1
|
||||
tay
|
||||
|
||||
lda FD.TTY+S.FD.DEV.DCBPTR+1
|
||||
sbc /TTY.BUF.SIZE+S.DCB.TTY
|
||||
sbc /80*24+S.DCB.TTY
|
||||
sta FD.TTY+S.FD.DEV.DCBPTR+1
|
||||
sta .1+2
|
||||
|
||||
|
@ -1100,14 +1100,14 @@ EvtMgrInit >LDYAI MSG.EVT
|
|||
lda /Evt.Table
|
||||
sta pEvent+1
|
||||
clc
|
||||
EvtMgrInit.RTS rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
TskMgrInit >LDYAI MSG.TSK
|
||||
>SYSCALL2 puts
|
||||
|
||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||
>SYSCALL NewStkObj Buffer in AUX mem
|
||||
bcs EvtMgrInit.RTS
|
||||
bcs .99
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
|
@ -1139,7 +1139,7 @@ TskMgrInit >LDYAI MSG.TSK
|
|||
|
||||
>LDYAI $2E0 Get ROOT from QC
|
||||
>SYSCALL2 strdup
|
||||
bcs .9
|
||||
.99 bcs .9
|
||||
|
||||
txa
|
||||
ldy #S.PS.hCWD
|
||||
|
@ -1148,7 +1148,7 @@ TskMgrInit >LDYAI MSG.TSK
|
|||
>PUSHWI I.ENV.BOOT
|
||||
>PUSHWI $2C0 Get BOOT from QC
|
||||
>SYSCALL2 SetEnv
|
||||
.99 bcs .9
|
||||
bcs .9
|
||||
|
||||
>PUSHWI I.ENV.ROOT
|
||||
>PUSHWI $2E0 Get ROOT from QC
|
||||
|
@ -1293,24 +1293,23 @@ I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
|||
SBININITD .AZ "${ROOT}sbin/initd"
|
||||
.DA #0 end of ARGV for ExecV
|
||||
*--------------------------------------
|
||||
MLIGETFILEINFOEX00
|
||||
.DA #2
|
||||
.DA MLIOPEN00.FN
|
||||
pMLIGFIEX .DA #2
|
||||
.DA FNKConfig
|
||||
.BS S.FIEX
|
||||
*--------------------------------------
|
||||
MLIOPEN00 .DA #3
|
||||
.DA MLIOPEN00.FN
|
||||
pMLIOPEN .DA #3
|
||||
.DA FNKConfig
|
||||
.DA $B000
|
||||
.BS 1
|
||||
MLIOPEN00.FN >PSTR "A2osX.kconfig"
|
||||
FNKConfig >PSTR "A2osX.kconfig"
|
||||
*--------------------------------------
|
||||
MLIREAD00 .DA #4
|
||||
pMLIREAD .DA #4
|
||||
.BS 1
|
||||
.DA A2osX.KCONFIG
|
||||
.DA 16
|
||||
.BS 2
|
||||
*--------------------------------------
|
||||
MLICLOSE00 .DA #1
|
||||
pMLICLOSE .DA #1
|
||||
.BS 1
|
||||
*--------------------------------------
|
||||
FD.NULL .DA #S.FD.T.CDEV
|
||||
|
|
|
@ -68,7 +68,7 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
|
|||
.DA K.Shift $68 : ARG
|
||||
.DA K.ArgV
|
||||
.DA K.ArgVDup
|
||||
.DA K.GetErrorMessage
|
||||
.DA K.GetErrMsg
|
||||
|
||||
.DA K.AToF $70 : STDLIB
|
||||
.DA K.AToI
|
||||
|
|
|
@ -30,15 +30,15 @@ KX.SYSCALL .DA STRVX.StrVNew
|
|||
.DA PWDX.OpenSession
|
||||
.DA PWDX.CloseSession
|
||||
|
||||
.DA SLISTX.SListGetData
|
||||
.DA SLISTX.SListAddData
|
||||
.DA SLISTX.SListSetData
|
||||
.DA SLISTX.SListGetByID
|
||||
.DA SLISTX.GetData
|
||||
.DA SLISTX.AddData
|
||||
.DA SLISTX.SetData
|
||||
.DA SLISTX.GetByID
|
||||
|
||||
.DA SLISTX.SListNewKey
|
||||
.DA SLISTX.SListLookup
|
||||
.DA SLISTX.SListFree
|
||||
.DA SLISTX.SListNew
|
||||
.DA SLISTX.NewKey
|
||||
.DA SLISTX.Lookup
|
||||
.DA BLISTX.Free
|
||||
.DA BLISTX.New
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.jmpx
|
||||
|
|
|
@ -2,26 +2,97 @@ NEW
|
|||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
MATH jmp (.1,x)
|
||||
.1 .DA M16.ADD
|
||||
.1 .DA M16.uMUL
|
||||
.DA M16.uDIV
|
||||
.DA M16.uMOD
|
||||
.DA M16.ADD
|
||||
.DA M16.SUB
|
||||
.DA M16.UMUL
|
||||
.DA M16.IMUL
|
||||
.DA M16.UDIV
|
||||
.DA M16.IDIV
|
||||
.DA M16.UMOD
|
||||
.DA M16.IMOD
|
||||
.DA M16.CMP UCMP
|
||||
.DA M16.CMP ICMP
|
||||
|
||||
.DA M16.SHL
|
||||
.DA M16.SHR
|
||||
|
||||
.DA M16.L
|
||||
.DA M16.LE
|
||||
.DA M16.G
|
||||
.DA M16.GE
|
||||
.DA M16.E
|
||||
.DA M16.NE
|
||||
|
||||
.DA M16.AND
|
||||
.DA M16.OR
|
||||
.DA M16.XOR
|
||||
|
||||
.DA M16.LAND
|
||||
.DA M16.LOR
|
||||
*--------------------------------------
|
||||
.DA M16.iMUL
|
||||
.DA M16.iDIV
|
||||
.DA M16.iMOD
|
||||
.DA M16.ADD
|
||||
.DA M16.SUB
|
||||
|
||||
.DA M16.SHL
|
||||
.DA M16.SHR
|
||||
|
||||
.DA M16.L
|
||||
.DA M16.LE
|
||||
.DA M16.G
|
||||
.DA M16.GE
|
||||
.DA M16.E
|
||||
.DA M16.NE
|
||||
|
||||
.DA M16.AND
|
||||
.DA M16.OR
|
||||
.DA M16.XOR
|
||||
|
||||
.DA M16.LAND
|
||||
.DA M16.LOR
|
||||
*--------------------------------------
|
||||
.DA M32.uMUL
|
||||
.DA M32.uDIV
|
||||
.DA M32.uMOD
|
||||
.DA M32.ADD
|
||||
.DA M32.SUB
|
||||
.DA M32.UMUL
|
||||
.DA M32.IMUL
|
||||
.DA M32.UDIV
|
||||
.DA M32.IDIV
|
||||
.DA M32.UMOD
|
||||
.DA M32.IMOD
|
||||
.DA M32.CMP UCMP
|
||||
.DA M32.CMP ICMP
|
||||
|
||||
.DA M32.SHL
|
||||
.DA M32.SHR
|
||||
|
||||
.DA M32.L
|
||||
.DA M32.LE
|
||||
.DA M32.G
|
||||
.DA M32.GE
|
||||
.DA M32.E
|
||||
.DA M32.NE
|
||||
|
||||
.DA M32.AND
|
||||
.DA M32.OR
|
||||
.DA M32.XOR
|
||||
|
||||
.DA M32.LAND
|
||||
.DA M32.LOR
|
||||
*--------------------------------------
|
||||
.DA M32.iMUL
|
||||
.DA M32.iDIV
|
||||
.DA M32.iMOD
|
||||
.DA M32.ADD
|
||||
.DA M32.SUB
|
||||
|
||||
.DA M32.SHL
|
||||
.DA M32.SHR
|
||||
|
||||
.DA M32.L
|
||||
.DA M32.LE
|
||||
.DA M32.G
|
||||
.DA M32.GE
|
||||
.DA M32.E
|
||||
.DA M32.NE
|
||||
|
||||
.DA M32.AND
|
||||
.DA M32.OR
|
||||
.DA M32.XOR
|
||||
|
||||
.DA M32.LAND
|
||||
.DA M32.LOR
|
||||
*--------------------------------------
|
||||
MATH.A2STR10NP ldx #3 3 digit max
|
||||
ldy #0 Disable Padding
|
||||
|
@ -38,14 +109,14 @@ MATH.ACC322STR10
|
|||
stx .5+1 Pad Len
|
||||
sty .81+1 Pad Char
|
||||
|
||||
stz A2osX.NumStrLen
|
||||
stz FOUTBuf-1
|
||||
bcc .1
|
||||
|
||||
clc
|
||||
lda ACC32+3
|
||||
bpl .1
|
||||
|
||||
jsr M32.nACC32
|
||||
jsr M32.nACC
|
||||
|
||||
sec
|
||||
.1 ror ACC32.Sign Save sign
|
||||
|
@ -59,6 +130,7 @@ MATH.ACC322STR10
|
|||
sed switch to BCD mode
|
||||
|
||||
ldx #32 let's roll 32 bits
|
||||
|
||||
.3 jsr MATH.ACC32x2
|
||||
|
||||
ldy #4
|
||||
|
@ -126,9 +198,9 @@ MATH.ACC322STR10
|
|||
|
||||
lda #0
|
||||
|
||||
.88 ldy A2osX.NumStrLen
|
||||
inc A2osX.NumStrLen
|
||||
sta A2osX.NumStrBuf,y
|
||||
.88 ldy FOUTBuf-1
|
||||
inc FOUTBuf-1
|
||||
sta FOUTBuf,y
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Convert Hex int at ZPPtr2 to ACC32
|
||||
|
@ -136,7 +208,7 @@ MATH.ACC322STR10
|
|||
MATH.Hex2ACC32 lda (ZPPtr2)
|
||||
beq .9
|
||||
|
||||
jsr SHARED.IsHexDigit
|
||||
jsr .80
|
||||
bcs .9
|
||||
|
||||
jsr M32.A2ACC32
|
||||
|
@ -147,7 +219,7 @@ MATH.Hex2ACC32 lda (ZPPtr2)
|
|||
lda (ZPPtr2),y
|
||||
beq .8
|
||||
|
||||
jsr SHARED.IsHexDigit
|
||||
jsr .80
|
||||
bcs .8
|
||||
|
||||
pha
|
||||
|
@ -166,6 +238,29 @@ MATH.Hex2ACC32 lda (ZPPtr2)
|
|||
rts
|
||||
|
||||
.9 sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
.80 jsr ZP.IsDigit
|
||||
bcc .88
|
||||
|
||||
cmp #'A'
|
||||
bcc .9
|
||||
|
||||
cmp #'F'+1
|
||||
bcc .81
|
||||
|
||||
cmp #'a'
|
||||
bcc .9
|
||||
|
||||
cmp #'f'+1
|
||||
bcs .99
|
||||
|
||||
eor #$20
|
||||
.81
|
||||
* clc
|
||||
sbc #'A'-11 cc so A->10 (11-CC)
|
||||
clc
|
||||
.88 and #$0F
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Convert Decimal int at ZPPtr2 to ACC32
|
||||
|
@ -176,7 +271,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z
|
|||
eor #'-'
|
||||
bne .10
|
||||
|
||||
jsr SHARED.NextCharPtr2 skip '-'
|
||||
jsr SHARED.NextCP2 skip '-'
|
||||
sec
|
||||
.10 ror .80+1 set pos/neg flag
|
||||
|
||||
|
@ -218,7 +313,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z
|
|||
bpl .88
|
||||
|
||||
phy
|
||||
jsr M32.nACC32
|
||||
jsr M32.nACC
|
||||
ply
|
||||
|
||||
.88 clc
|
||||
|
@ -251,6 +346,13 @@ MATH.ACC32x2 asl ACC32
|
|||
rol ACC32+3
|
||||
rts
|
||||
*--------------------------------------
|
||||
MATH.CMPT .DA #%100 L
|
||||
.DA #%110 LE
|
||||
.DA #%001 G
|
||||
.DA #%011 GE
|
||||
.DA #%010 E
|
||||
.DA #%101 NE
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.math
|
||||
LOAD usr/src/sys/kernel.s
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
M16.AND lda #$32 AND (zp)
|
||||
.HS 2C BIT ABS
|
||||
M16.OR lda #$12 ORA (zp)
|
||||
.HS 2C BIT ABS
|
||||
M16.XOR lda #$52 EOR (zp)
|
||||
.HS 2C BIT ABS
|
||||
M16.ADD lda #$72 ADC (zp)
|
||||
.HS 2C BIT ABS
|
||||
M16.SUB lda #$F2 SBC (zp)
|
||||
|
@ -22,30 +28,99 @@ M16.SUB lda #$F2 SBC (zp)
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Returns:
|
||||
* ff X < Y
|
||||
* 0 X = Y
|
||||
* 1 X > Y
|
||||
*--------------------------------------
|
||||
*M16.UCMP
|
||||
*M16.ICMP
|
||||
M16.CMP jsr M16.SUB
|
||||
|
||||
tay A = HI byte
|
||||
bmi .2
|
||||
M16.SHL sec
|
||||
.HS 90 BCC
|
||||
M16.SHR clc
|
||||
|
||||
.1 ora (pStack) LO byte
|
||||
lda (pStack)
|
||||
inc pStack
|
||||
inc pStack
|
||||
|
||||
tax
|
||||
beq .8
|
||||
|
||||
lda #1
|
||||
ldy #1
|
||||
|
||||
bcc .3
|
||||
|
||||
.1 lda (pStack)
|
||||
asl
|
||||
sta (pStack)
|
||||
|
||||
lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
.3 lda (pStack),y
|
||||
lsr
|
||||
sta (pStack),y
|
||||
|
||||
lda (pStack)
|
||||
ror
|
||||
sta (pStack)
|
||||
|
||||
dex
|
||||
bne .3
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M16.L ldx #0
|
||||
bra M16.CMP
|
||||
M16.LE ldx #1
|
||||
bra M16.CMP
|
||||
M16.G ldx #2
|
||||
bra M16.CMP
|
||||
M16.GE ldx #3
|
||||
bra M16.CMP
|
||||
M16.E ldx #4
|
||||
bra M16.CMP
|
||||
M16.NE ldx #5
|
||||
*--------------------------------------
|
||||
M16.CMP jsr M16.SUB
|
||||
|
||||
tay A = BYTE 1
|
||||
bmi .1
|
||||
|
||||
ora (pStack) BYTE 0
|
||||
beq .2
|
||||
|
||||
lda #%001
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.2 lda #$ff
|
||||
.1 lda #%100
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.8 inc pStack
|
||||
inc pStack
|
||||
.2 lda #%010
|
||||
.HS 2C BIT ABS
|
||||
|
||||
rts
|
||||
and MATH.CMPT,x
|
||||
bra M16.LOR2
|
||||
*--------------------------------------
|
||||
M16.LAND jsr M16.AND
|
||||
bra M16.LOR1
|
||||
|
||||
M16.LOR jsr M16.OR
|
||||
|
||||
M16.LOR1 dey y = 1
|
||||
|
||||
lda (pStack)
|
||||
ora (pStack),y
|
||||
|
||||
M16.LOR2 beq .1
|
||||
|
||||
lda #1
|
||||
|
||||
.1 sta (pStack)
|
||||
|
||||
lda #0
|
||||
sta (pStack),y
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M16.UMUL clc
|
||||
.HS B0 BCS
|
||||
|
@ -56,19 +131,18 @@ M16.IMUL sec
|
|||
jsr M16.MUL
|
||||
|
||||
plp
|
||||
bcc M16.PutTMP32
|
||||
bcc M16.PutTMP
|
||||
|
||||
M16.ITMP lda ACC32.Sign
|
||||
eor ARG32.Sign
|
||||
bpl M16.PutTMP32
|
||||
bpl M16.PutTMP
|
||||
*--------------------------------------
|
||||
* M16.PutnTMP32
|
||||
* M16.PutnTMP
|
||||
*--------------------------------------
|
||||
lda #TMP32
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
M16.PutnARG32
|
||||
lda #ARG32
|
||||
M16.PutnARG lda #ARG32
|
||||
sta .1+1
|
||||
ldy #0
|
||||
ldx #3
|
||||
|
@ -84,7 +158,7 @@ M16.PutnARG32
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M16.UDIV clc
|
||||
M16.uDIV clc
|
||||
.HS B0 BCS
|
||||
M16.IDIV sec
|
||||
clv
|
||||
|
@ -106,15 +180,15 @@ M16.MOD php
|
|||
|
||||
lda ACC32.Sign IDIV
|
||||
eor ARG32.Sign
|
||||
bpl M16.PutARG32
|
||||
bra M16.PutnARG32
|
||||
bpl M16.PutARG
|
||||
bra M16.PutnARG
|
||||
|
||||
.3 bvc M16.PutARG32 DIV
|
||||
.3 bvc M16.PutARG DIV
|
||||
*--------------------------------------
|
||||
M16.PutTMP32 ldy #TMP32 MOD
|
||||
M16.PutTMP ldy #TMP32 MOD
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
M16.PutARG32 ldy #ARG32
|
||||
M16.PutARG ldy #ARG32
|
||||
|
||||
lda $0,y
|
||||
sta (pStack)
|
||||
|
@ -151,7 +225,7 @@ M16.MULDIVMOD >PULLW ACC32
|
|||
.1 lda ACC32.Sign
|
||||
bpl M16.RTS
|
||||
*--------------------------------------
|
||||
* M16.nACC32
|
||||
* M16.nACC
|
||||
*--------------------------------------
|
||||
ldy #ACC32
|
||||
.HS 2C BIT ABS
|
||||
|
@ -198,7 +272,6 @@ M16.MUL stz TMP32
|
|||
dex
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
M16.DIVMOD stz TMP32
|
||||
|
|
|
@ -1,57 +1,149 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
M32.AND lda #$32 AND (zp)
|
||||
.HS 2C BIT ABS
|
||||
M32.OR lda #$12 ORA (zp)
|
||||
.HS 2C BIT ABS
|
||||
M32.XOR lda #$52 EOR (zp)
|
||||
.HS 2C BIT ABS
|
||||
M32.ADD lda #$72 ADC (zp)
|
||||
.HS 2C BIT ABS
|
||||
M32.SUB lda #$F2 SBC (zp)
|
||||
|
||||
sta .3
|
||||
sta .2
|
||||
|
||||
asl CS if SBC, CC if ADC
|
||||
asl CS if SBC, CC if ADC others = don't care
|
||||
|
||||
ldy #4
|
||||
ldx #4
|
||||
|
||||
.2 lda (pStack),y
|
||||
.3 adc (pStack) SELF MODIFIED
|
||||
.1 lda (pStack),y
|
||||
.2 adc (pStack) SELF MODIFIED
|
||||
sta (pStack),y
|
||||
|
||||
inc pStack
|
||||
dex
|
||||
bne .2
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Returns:
|
||||
* ff X < Y
|
||||
* 0 X = Y
|
||||
* 1 X > Y
|
||||
*--------------------------------------
|
||||
*M32.UCMP
|
||||
*M32.ICMP
|
||||
M32.CMP jsr M32.SUB
|
||||
M32.SHL sec
|
||||
.HS 90 BCC
|
||||
M32.SHR clc
|
||||
|
||||
tay A = BYTE 3
|
||||
bmi .2
|
||||
|
||||
.1 ora (pStack) BYTE 0
|
||||
ldy #1
|
||||
ora (pStack),y BYTE 1
|
||||
iny
|
||||
ora (pStack),y BYTE 2
|
||||
beq .8
|
||||
|
||||
lda #1
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.2 lda #$ff
|
||||
|
||||
.8 inc pStack
|
||||
lda (pStack)
|
||||
inc pStack
|
||||
inc pStack
|
||||
inc pStack
|
||||
inc pStack
|
||||
|
||||
rts
|
||||
tax
|
||||
beq .8
|
||||
bcc .3
|
||||
|
||||
.1 ldy #0
|
||||
|
||||
clc
|
||||
|
||||
.2 lda (pStack),y
|
||||
rol
|
||||
sta (pStack),y
|
||||
|
||||
iny
|
||||
tya
|
||||
eor #4
|
||||
bne .2
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
.3 ldy #3
|
||||
|
||||
clc
|
||||
|
||||
.4 lda (pStack),y
|
||||
ror
|
||||
sta (pStack),y
|
||||
|
||||
dey
|
||||
bpl .4
|
||||
|
||||
dex
|
||||
bne .3
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M32.L ldx #0
|
||||
bra M32.CMP
|
||||
M32.LE ldx #1
|
||||
bra M32.CMP
|
||||
M32.G ldx #2
|
||||
bra M32.CMP
|
||||
M32.GE ldx #3
|
||||
bra M32.CMP
|
||||
M32.E ldx #4
|
||||
bra M32.CMP
|
||||
M32.NE ldx #5
|
||||
*--------------------------------------
|
||||
M32.CMP jsr M32.SUB
|
||||
|
||||
tay A = BYTE 3
|
||||
bmi .1
|
||||
|
||||
ldy #2
|
||||
|
||||
.10 ora (pStack),y
|
||||
dey
|
||||
bpl .10
|
||||
|
||||
tay
|
||||
beq .2
|
||||
|
||||
lda #%001
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.1 lda #%100
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.2 lda #%010
|
||||
.HS 2C BIT ABS
|
||||
|
||||
and MATH.CMPT,x
|
||||
bra M32.LOR2
|
||||
*--------------------------------------
|
||||
M32.LAND jsr M32.AND
|
||||
bra M32.LOR1
|
||||
|
||||
M32.LOR jsr M32.OR
|
||||
|
||||
M32.LOR1 lda (pStack)
|
||||
|
||||
ldy #3
|
||||
|
||||
.1 ora (pStack),y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
tay
|
||||
|
||||
M32.LOR2 beq .1
|
||||
|
||||
lda #1
|
||||
|
||||
.1 sta (pStack)
|
||||
|
||||
lda #0
|
||||
|
||||
ldy #3
|
||||
|
||||
.2 sta (pStack),y
|
||||
dey
|
||||
bne .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M32.UMUL clc
|
||||
.HS B0 BCS
|
||||
|
@ -62,18 +154,18 @@ M32.IMUL sec
|
|||
jsr M32.MUL
|
||||
|
||||
plp
|
||||
bcc M32.PutTMP32
|
||||
bcc M32.PutTMP
|
||||
|
||||
M32.ITMP lda ACC32.Sign
|
||||
eor ARG32.Sign
|
||||
bpl M32.PutTMP32
|
||||
bpl M32.PutTMP
|
||||
*--------------------------------------
|
||||
* M32.PutnTMP32
|
||||
* M32.PutnTMP
|
||||
*--------------------------------------
|
||||
lda #TMP32
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
M32.PutnARG32 lda #ARG32
|
||||
M32.PutnARG lda #ARG32
|
||||
sta .1+1
|
||||
ldy #0
|
||||
ldx #3
|
||||
|
@ -111,15 +203,15 @@ M32.MOD php
|
|||
|
||||
lda ACC32.Sign IDIV
|
||||
eor ARG32.Sign
|
||||
bpl M32.PutARG32
|
||||
bra M32.PutnARG32
|
||||
bpl M32.PutARG
|
||||
bra M32.PutnARG
|
||||
|
||||
.3 bvc M32.PutARG32 DIV
|
||||
.3 bvc M32.PutARG DIV
|
||||
*--------------------------------------
|
||||
M32.PutTMP32 lda #TMP32 MOD
|
||||
M32.PutTMP lda #TMP32 MOD
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
M32.PutARG32 lda #ARG32
|
||||
M32.PutARG lda #ARG32
|
||||
sta .1+1
|
||||
|
||||
ldy #3
|
||||
|
@ -131,7 +223,7 @@ M32.PutARG32 lda #ARG32
|
|||
|
||||
rts
|
||||
*--------------------------------------
|
||||
M32.PopACC32 ldy #0
|
||||
M32.PopACC ldy #0
|
||||
|
||||
.1 lda (pStack)
|
||||
inc pStack
|
||||
|
@ -143,7 +235,7 @@ M32.PopACC32 ldy #0
|
|||
sta ACC32.Sign
|
||||
rts
|
||||
*--------------------------------------
|
||||
M32.GetARG32 ldy #0
|
||||
M32.GetARG ldy #0
|
||||
|
||||
.1 lda (pStack),y
|
||||
sta ARG32,y
|
||||
|
@ -156,8 +248,8 @@ M32.GetARG32 ldy #0
|
|||
M32.RTS rts
|
||||
*--------------------------------------
|
||||
M32.MULDIVMOD php
|
||||
jsr M32.PopACC32
|
||||
jsr M32.GetARG32
|
||||
jsr M32.PopACC
|
||||
jsr M32.GetARG
|
||||
plp
|
||||
bcc M32.RTS
|
||||
jsr .1
|
||||
|
@ -165,7 +257,7 @@ M32.MULDIVMOD php
|
|||
* M32.ARG32ABS
|
||||
*--------------------------------------
|
||||
lda ARG32.Sign
|
||||
bmi M32.nARG32
|
||||
bmi M32.nARG
|
||||
rts
|
||||
*--------------------------------------
|
||||
* M32.ACC32ABS
|
||||
|
@ -173,9 +265,9 @@ M32.MULDIVMOD php
|
|||
.1 lda ACC32.Sign
|
||||
bpl M32.RTS
|
||||
*--------------------------------------
|
||||
M32.nACC32 ldy #ACC32
|
||||
M32.nACC ldy #ACC32
|
||||
.HS 2C BIT ABS
|
||||
M32.nARG32 ldy #ARG32
|
||||
M32.nARG ldy #ARG32
|
||||
|
||||
ldx #3
|
||||
sec
|
||||
|
@ -217,15 +309,11 @@ M32.MUL jsr M32.TMP32Z
|
|||
eor #4
|
||||
bne .2
|
||||
|
||||
.3 asl ACC32
|
||||
rol ACC32+1
|
||||
rol ACC32+2
|
||||
rol ACC32+3
|
||||
.3 jsr MATH.ACC32x2
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
* ARG32 = ARG32 div ACC32
|
||||
|
@ -239,11 +327,14 @@ M32.DIVMOD jsr M32.TMP32Z
|
|||
rol ARG32+1
|
||||
rol ARG32+2
|
||||
rol ARG32+3
|
||||
|
||||
rol TMP32
|
||||
rol TMP32+1
|
||||
rol TMP32+2
|
||||
rol TMP32+3
|
||||
|
||||
sec
|
||||
|
||||
lda TMP32
|
||||
sbc ACC32
|
||||
pha
|
||||
|
|
|
@ -80,7 +80,7 @@ ZPChunkLen .BS 2
|
|||
MD5X.MD5 ldy #$ff
|
||||
|
||||
.1 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
bne .1
|
||||
|
||||
sty ZPDataLen
|
||||
|
@ -148,12 +148,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
|||
.3 lda #64
|
||||
.50 sta ZPChunkLen Save Chunk Len
|
||||
|
||||
jsr MD5UpdateBitCount
|
||||
jsr MD5UpdBC
|
||||
|
||||
ldy #0
|
||||
|
||||
.51 jsr SHARED.TXTPTR.GetY Load Buffer with data
|
||||
sta MD5.BUFFER64,y
|
||||
.51 jsr SHARED.TXTPTRgY Load Buffer with data
|
||||
sta MD5.Buf,y
|
||||
iny
|
||||
cpy ZPChunkLen
|
||||
bne .51
|
||||
|
@ -163,12 +163,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
|||
* Append "$80" & Padding & original size
|
||||
|
||||
lda #$80 no, Append $80
|
||||
sta MD5.BUFFER64,y
|
||||
sta MD5.Buf,y
|
||||
lda #0
|
||||
.52 iny Pad with 0 to 64
|
||||
cpy #64
|
||||
beq .53
|
||||
sta MD5.BUFFER64,y
|
||||
sta MD5.Buf,y
|
||||
bra .52
|
||||
.53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended
|
||||
lda #$80
|
||||
|
@ -176,7 +176,7 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
|||
lda ZPChunkLen
|
||||
cmp #56 Enough room for BITCOUNT ?
|
||||
bcs .58 no
|
||||
jsr MD5AppendBitCount
|
||||
jsr MD5AppBC
|
||||
.58 jsr MD5Transform
|
||||
jsr MD5UpdateABCD0
|
||||
.8 lda ZPDataLen Substract Bytes processed from LEN
|
||||
|
@ -214,20 +214,20 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED
|
|||
lsr
|
||||
tax
|
||||
lda MD5.DIGITS,x
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
lda (ZPCtxPtr),y
|
||||
and #$0F
|
||||
tax
|
||||
lda MD5.DIGITS,x
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
iny
|
||||
cpy #S.MD5.ABCD0+16
|
||||
bne .2
|
||||
|
||||
lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
pla
|
||||
jmp K.FreeMem
|
||||
|
@ -238,12 +238,11 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED
|
|||
* In :
|
||||
* ZPCtxPtr = MD5 Context
|
||||
*--------------------------------------
|
||||
MD5AppendBitCount
|
||||
ldx #56
|
||||
MD5AppBC ldx #56
|
||||
ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT
|
||||
|
||||
.1 lda (ZPCtxPtr),y
|
||||
sta MD5.BUFFER64,x
|
||||
sta MD5.Buf,x
|
||||
inx
|
||||
iny
|
||||
cpy #S.MD5.BITCOUNT+8
|
||||
|
@ -259,8 +258,7 @@ MD5AppendBitCount
|
|||
* CL = Size (in bytes) to add to MD5 context
|
||||
* ZPCtxPtr = MD5 Context
|
||||
*--------------------------------------
|
||||
MD5UpdateBitCount
|
||||
stz ZPChunkLen+1
|
||||
MD5UpdBC stz ZPChunkLen+1
|
||||
lda ZPChunkLen
|
||||
asl
|
||||
rol ZPChunkLen+1
|
||||
|
@ -302,16 +300,16 @@ MD5ExtraChunk ldy #S.MD5.FINALIZED
|
|||
bne .1
|
||||
|
||||
lda #$80
|
||||
sta MD5.BUFFER64 Add extra bit to buffer
|
||||
sta MD5.Buf Add extra bit to buffer
|
||||
sta (ZPCtxPtr),y Mark Extrabit added
|
||||
inx
|
||||
|
||||
.1 stz MD5.BUFFER64,x pad with "0"...
|
||||
.1 stz MD5.Buf,x pad with "0"...
|
||||
inx
|
||||
cpx #56
|
||||
bne .1 ...until room for bitcount
|
||||
|
||||
jsr MD5AppendBitCount
|
||||
jsr MD5AppBC
|
||||
jsr MD5Transform
|
||||
*--------------------------------------
|
||||
* MD5UpdateABCD0
|
||||
|
@ -420,7 +418,7 @@ MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp
|
|||
tay
|
||||
ldx #0
|
||||
clc
|
||||
.2 lda MD5.BUFFER64,y ADC32 M[g],MD5.F,MD5.F
|
||||
.2 lda MD5.Buf,y ADC32 M[g],MD5.F,MD5.F
|
||||
adc MD5.F,x
|
||||
sta MD5.F,x
|
||||
iny
|
||||
|
@ -481,7 +479,7 @@ MD5.F2 .BS 4
|
|||
MD5.DTemp .BS 4
|
||||
MD5.F .BS 4
|
||||
MD5.i .BS 1
|
||||
MD5.BUFFER64 .BS 64
|
||||
MD5.Buf .BS 64
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.md5x
|
||||
|
|
|
@ -8,8 +8,7 @@ NEW
|
|||
*
|
||||
* Out : A = hMount
|
||||
*--------------------------------------
|
||||
K.Mount >PULLW ZPPtr2 callback
|
||||
>PULLW ZPPtr1 mountpoint
|
||||
K.Mount jsr SHARED.PullP2P1 callback,mountpoint
|
||||
|
||||
ldx #1
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ PFT.CheckPathYA >PUSHYA
|
|||
|
||||
>PUSHWI K.Buf256
|
||||
>SYSCALL2 realpath
|
||||
bcs PFT.YAToMLIPATH.RTS
|
||||
bcs PFT.RTS
|
||||
|
||||
ldx #0
|
||||
|
||||
|
@ -92,8 +92,7 @@ PFT.YAToMLIPATH >STYA .1+1
|
|||
>STYA K.MLI.PARAMS+1
|
||||
|
||||
clc
|
||||
PFT.YAToMLIPATH.RTS
|
||||
rts
|
||||
PFT.RTS rts
|
||||
*--------------------------------------
|
||||
PFT.CheckNode4 ldy #4
|
||||
.HS 2C BIT ABS
|
||||
|
@ -107,7 +106,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
|||
jsr DEV.GetPFD
|
||||
bcs .99
|
||||
|
||||
ldy #S.FD.HANDLER
|
||||
ldy #S.FD.PFT
|
||||
lda (pFD),y
|
||||
beq .8 Handler is 0, back to kernel....
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
|
|||
.8 lda #$ff SELF MODIFIED
|
||||
* clc
|
||||
.9
|
||||
PS.Exec.RTS rts
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # Fork
|
||||
* ## C
|
||||
|
@ -79,7 +79,8 @@ PS.Exec.RTS rts
|
|||
* A = Child PSID
|
||||
*\--------------------------------------
|
||||
K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
|
||||
bcs PS.Exec.RTS
|
||||
bcs .99
|
||||
|
||||
sta .8+1
|
||||
|
||||
ldy #S.PS.S
|
||||
|
@ -106,7 +107,7 @@ K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
|
|||
ldy #S.PS.hDS
|
||||
lda (ZPPtr1),y
|
||||
jsr MEM.Dup
|
||||
bcs .9
|
||||
.99 bcs .9
|
||||
|
||||
ldy #S.PS.hDS
|
||||
sta (PS.NewPSPtr),y
|
||||
|
@ -358,7 +359,7 @@ PS.Load ldy #$ff
|
|||
|
||||
>LDYAI PS.SHUTDOWN
|
||||
jsr PS.Find.PATH
|
||||
bcs PS.Load.RTS
|
||||
bcs PS.RTS
|
||||
|
||||
jmp PS.LoadBIN
|
||||
*--------------------------------------
|
||||
|
@ -366,12 +367,12 @@ PS.Load.IPATH lda #E.BADPATH
|
|||
.HS 2C
|
||||
PS.Load.IBIN lda #E.IBIN
|
||||
sec
|
||||
PS.Load.RTS rts
|
||||
PS.RTS rts
|
||||
*--------------------------------------
|
||||
PS.Load.SCRIPT jsr PS.Buf2IO
|
||||
|
||||
jsr PS.LoadGetHeader
|
||||
bcs PS.Load.RTS
|
||||
bcs PS.RTS
|
||||
|
||||
>PUSHWI PS.Load.ROOT
|
||||
>PUSHWI K.Buf256 K.Buf256 = "$ROOT"
|
||||
|
@ -406,7 +407,7 @@ PS.Load.SCRIPT jsr PS.Buf2IO
|
|||
|
||||
.5 >LDYAI K.Buf256
|
||||
jsr PS.STAT.YA
|
||||
bcs PS.Load.RTS
|
||||
bcs PS.RTS
|
||||
|
||||
lda K.S.STAT+S.STAT.P.TYPE
|
||||
cmp #S.FI.T.BIN
|
||||
|
@ -580,7 +581,7 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0]
|
|||
|
||||
* lda #0
|
||||
jsr PS.AddYAp12ArgSize
|
||||
jsr SHARED.AddYp1ToPtr1
|
||||
jsr SHARED.AddYp12P1
|
||||
bra .1
|
||||
|
||||
.4 txa
|
||||
|
@ -634,8 +635,8 @@ PS.AddPtr1ToStrV
|
|||
sta (ZPPtr2),y
|
||||
bne .2
|
||||
|
||||
jsr SHARED.AddYp1ToPtr1
|
||||
jmp SHARED.AddYp1ToPtr2
|
||||
jsr SHARED.AddYp12P1
|
||||
jmp SHARED.AddYp12P2
|
||||
*--------------------------------------
|
||||
PS.AddYAp12ArgSize
|
||||
pha
|
||||
|
|
|
@ -97,16 +97,18 @@ K.PutGR >PULLW TXTPTR
|
|||
jsr K.SYSCALL.JMPX
|
||||
bcc PWD.FlushFiles
|
||||
|
||||
K.PutGR.RTS rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWD.FlushFiles
|
||||
>LDYA PWD.UsrDBSize
|
||||
ldx PWD.hUsrDB
|
||||
clc
|
||||
jsr PWD.Flush
|
||||
bcs K.PutGR.RTS
|
||||
bcc .1
|
||||
|
||||
rts
|
||||
|
||||
>LDYA PWD.GrpDBSize
|
||||
.1 >LDYA PWD.GrpDBSize
|
||||
ldx PWD.hGrpDB
|
||||
sec
|
||||
|
||||
|
|
|
@ -19,20 +19,20 @@ PWDX.GetPWUID lda PWD.hUsrDB
|
|||
beq PWDX.GetPW.99 EOF
|
||||
|
||||
ldy #0
|
||||
jsr PWDX.NextString skip USERNAME
|
||||
jsr PWDX.NextS skip USERNAME
|
||||
|
||||
jsr PWDX.NextString skip PASSWORD
|
||||
jsr PWDX.NextS skip PASSWORD
|
||||
|
||||
jsr PWDX.GetByte get UID
|
||||
cmp ZPPtr1+1
|
||||
beq PWDX.GetPW.8
|
||||
|
||||
jsr PWDX.NextLine
|
||||
jsr PWDX.NextL
|
||||
bra .1
|
||||
|
||||
PWDX.GetPW.8 ldx FORPNT+1
|
||||
beq .8 Dry run, no output
|
||||
jmp PWDX.Record2PW
|
||||
jmp PWDX.Rec2PW
|
||||
|
||||
.8 clc a = UID
|
||||
rts
|
||||
|
@ -42,7 +42,7 @@ PWDX.GetPW.9 lda #E.IPWDDB
|
|||
|
||||
PWDX.GetPW.99 lda #E.IUSR
|
||||
sec
|
||||
PWDX.GetPW.RTS rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWDX.GetPWName lda PWD.hUsrDB
|
||||
beq PWDX.GetPW.9
|
||||
|
@ -51,7 +51,7 @@ PWDX.GetPWName lda PWD.hUsrDB
|
|||
>STYA ZPPtr3
|
||||
|
||||
ldy #0
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq PWDX.GetPW.99
|
||||
|
||||
.1 lda (ZPPtr3)
|
||||
|
@ -59,13 +59,13 @@ PWDX.GetPWName lda PWD.hUsrDB
|
|||
|
||||
ldy #$ff
|
||||
.2 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .4
|
||||
|
||||
cmp (ZPPtr3),y
|
||||
beq .2
|
||||
|
||||
.3 jsr PWDX.NextLine
|
||||
.3 jsr PWDX.NextL
|
||||
bra .1
|
||||
|
||||
.4 lda (ZPPtr3),y
|
||||
|
@ -75,10 +75,10 @@ PWDX.GetPWName lda PWD.hUsrDB
|
|||
ldx FORPNT+1
|
||||
beq .8
|
||||
|
||||
jmp PWDX.Record2PW
|
||||
jmp PWDX.Rec2PW
|
||||
|
||||
.8 iny
|
||||
jsr PWDX.NextString skip PASSWORD
|
||||
jsr PWDX.NextS skip PASSWORD
|
||||
jmp PWDX.GetByte get UID
|
||||
*--------------------------------------
|
||||
* TXTPTR : pPW (Input)
|
||||
|
@ -88,10 +88,10 @@ PWDX.PutPW lda PWD.hUsrDB
|
|||
bne PWDX.PutPW.1
|
||||
|
||||
ldy #S.PW.UID
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
bne PWDX.GetPW.99 Must be ROOT user
|
||||
|
||||
jsr PWDX.GetRecordLen
|
||||
jsr PWDX.GetRecLen
|
||||
tay
|
||||
lda #0
|
||||
|
||||
|
@ -103,7 +103,7 @@ PWDX.PutPW lda PWD.hUsrDB
|
|||
inc
|
||||
|
||||
.1 jsr K.getmem
|
||||
bcs PWDX.GetPW.RTS
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr3
|
||||
stx PWD.hUsrDB
|
||||
|
@ -111,7 +111,7 @@ PWDX.PutPW lda PWD.hUsrDB
|
|||
lda #0
|
||||
sta (ZPPtr3)
|
||||
|
||||
jsr PWDX.AppendRecord
|
||||
jsr PWDX.AppRec
|
||||
|
||||
lda PWD.hGrpDB
|
||||
beq .2
|
||||
|
@ -140,17 +140,17 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
|||
>STYA ZPPtr3
|
||||
|
||||
ldy #S.PW.PASSWD
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
bne .12
|
||||
|
||||
jsr PWDX.FindRecord
|
||||
jsr PWDX.FindRec
|
||||
bcs .99
|
||||
jmp PWDX.DeleteRecord
|
||||
jmp PWDX.DelRec
|
||||
*--------------------------------------
|
||||
.12 jsr PWDX.FindRecord
|
||||
.12 jsr PWDX.FindRec
|
||||
bcs .11
|
||||
|
||||
jsr PWDX.DeleteRecord
|
||||
jsr PWDX.DelRec
|
||||
bcs .99
|
||||
bra .13
|
||||
*--------------------------------------
|
||||
|
@ -162,7 +162,7 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
|||
sta (TXTPTR),y
|
||||
sta SETWRITEAUX
|
||||
|
||||
.13 jsr PWDX.GetRecordLen
|
||||
.13 jsr PWDX.GetRecLen
|
||||
|
||||
clc
|
||||
adc PWD.UsrDBSize
|
||||
|
@ -207,10 +207,10 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
|||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr PWDX.AppendRecord
|
||||
jsr PWDX.AppRec
|
||||
|
||||
lda #0
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -229,18 +229,18 @@ PWDX.GetGRGID lda PWD.hGrpDB
|
|||
beq PWDX.GetGR.99 EOF
|
||||
|
||||
ldy #0
|
||||
jsr PWDX.NextString skip USERNAME
|
||||
jsr PWDX.NextS skip USERNAME
|
||||
|
||||
jsr PWDX.GetByte get UID
|
||||
cmp ZPPtr1+1
|
||||
beq PWDX.GetGR.8
|
||||
|
||||
jsr PWDX.NextLine
|
||||
jsr PWDX.NextL
|
||||
bra .1
|
||||
|
||||
PWDX.GetGR.8 ldx FORPNT+1
|
||||
beq .8 Dry run, no output
|
||||
jmp PWDX.Record2GR
|
||||
jmp PWDX.Rec2GR
|
||||
|
||||
.8 clc a = UID
|
||||
rts
|
||||
|
@ -259,7 +259,7 @@ PWDX.GetGRName lda PWD.hGrpDB
|
|||
>STYA ZPPtr3
|
||||
|
||||
ldy #0
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq PWDX.GetGR.99
|
||||
|
||||
.1 lda (ZPPtr3)
|
||||
|
@ -267,13 +267,13 @@ PWDX.GetGRName lda PWD.hGrpDB
|
|||
|
||||
ldy #$ff
|
||||
.2 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .4
|
||||
|
||||
cmp (ZPPtr3),y
|
||||
beq .2
|
||||
|
||||
.3 jsr PWDX.NextLine
|
||||
.3 jsr PWDX.NextL
|
||||
bra .1
|
||||
|
||||
.4 lda (ZPPtr3),y
|
||||
|
@ -283,7 +283,7 @@ PWDX.GetGRName lda PWD.hGrpDB
|
|||
ldx FORPNT+1
|
||||
beq .8
|
||||
|
||||
jmp PWDX.Record2GR
|
||||
jmp PWDX.Rec2GR
|
||||
|
||||
.8 iny
|
||||
jmp PWDX.GetByte get GID
|
||||
|
@ -306,15 +306,15 @@ PWDX.OpenSession
|
|||
lda TXTPTR+1
|
||||
bne .3
|
||||
|
||||
.1 >LDYAI PWDX.ROOTSESSION.Size
|
||||
.1 >LDYAI PWDX.ROOT.Size
|
||||
jsr K.GetMem
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #PWDX.ROOTSESSION.Size-1
|
||||
ldy #PWDX.ROOT.Size-1
|
||||
|
||||
.2 lda PWDX.ROOTSESSION,y
|
||||
.2 lda PWDX.ROOT,y
|
||||
sta (ZPPtr1),y
|
||||
dey
|
||||
bpl .2
|
||||
|
@ -323,7 +323,7 @@ PWDX.OpenSession
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
.3 jsr PWDX.FindRecord
|
||||
.3 jsr PWDX.FindRec
|
||||
bcs .9
|
||||
|
||||
tya Y = Name length +1
|
||||
|
@ -340,7 +340,7 @@ PWDX.OpenSession
|
|||
|
||||
sec
|
||||
|
||||
.5 jsr SHARED.FORPNT.getY
|
||||
.5 jsr SHARED.FORPNTgY
|
||||
eor (ZPPtr4),y Check MD5
|
||||
bne .9
|
||||
|
||||
|
@ -376,15 +376,15 @@ PWDX.GetUID lda PWD.hUsrDB
|
|||
beq .8 End of DB
|
||||
|
||||
ldy #0
|
||||
jsr PWDX.NextString skip name
|
||||
jsr PWDX.NextString skip password
|
||||
jsr PWDX.NextS skip name
|
||||
jsr PWDX.NextS skip password
|
||||
jsr PWDX.GetByte
|
||||
cmp .8+1
|
||||
bcc .4
|
||||
|
||||
sta .8+1
|
||||
|
||||
.4 jsr PWDX.NextLine
|
||||
.4 jsr PWDX.NextL
|
||||
bra .1
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
|
@ -398,7 +398,7 @@ PWDX.GetUID lda PWD.hUsrDB
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWDX.DeleteRecord
|
||||
PWDX.DelRec
|
||||
.1 iny
|
||||
lda (ZPPtr3),y
|
||||
cmp #C.CR
|
||||
|
@ -432,7 +432,7 @@ PWDX.DeleteRecord
|
|||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
PWDX.FindRecord lda PWD.hUsrDB
|
||||
PWDX.FindRec lda PWD.hUsrDB
|
||||
jsr K.GetmemPtr
|
||||
|
||||
>STYA ZPPtr3
|
||||
|
@ -443,13 +443,13 @@ PWDX.FindRecord lda PWD.hUsrDB
|
|||
ldy #$ff
|
||||
|
||||
.3 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .4
|
||||
|
||||
cmp (ZPPtr3),y
|
||||
beq .3
|
||||
|
||||
.5 jsr PWDX.NextLine
|
||||
.5 jsr PWDX.NextL
|
||||
bra .2
|
||||
|
||||
.4 lda (ZPPtr3),y
|
||||
|
@ -467,7 +467,7 @@ PWDX.FindRecord lda PWD.hUsrDB
|
|||
*--------------------------------------
|
||||
* Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
||||
*--------------------------------------
|
||||
PWDX.Record2PW ldy #0
|
||||
PWDX.Rec2PW ldy #0
|
||||
|
||||
ldx #0 NAME
|
||||
|
||||
|
@ -476,12 +476,12 @@ PWDX.Record2PW ldy #0
|
|||
cmp #':'
|
||||
beq .2
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.2 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
cpx #S.PW.PASSWD
|
||||
bne .2
|
||||
|
@ -491,23 +491,23 @@ PWDX.Record2PW ldy #0
|
|||
cmp #':'
|
||||
beq .4
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .3
|
||||
|
||||
.4 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
cpx #S.PW.UID
|
||||
bne .4
|
||||
|
||||
jsr PWDX.GetByte UID
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
iny
|
||||
|
||||
jsr PWDX.GetByte GID
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
iny
|
||||
|
||||
|
@ -517,11 +517,11 @@ PWDX.Record2PW ldy #0
|
|||
iny
|
||||
cmp #':'
|
||||
beq .6
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .5
|
||||
.6 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
cpx #S.PW.DIR
|
||||
bne .6
|
||||
|
@ -530,11 +530,11 @@ PWDX.Record2PW ldy #0
|
|||
iny
|
||||
cmp #':'
|
||||
beq .8
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .7
|
||||
.8 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
cpx #S.PW.SHELL
|
||||
bne .8
|
||||
|
@ -543,16 +543,16 @@ PWDX.Record2PW ldy #0
|
|||
iny
|
||||
cmp #C.CR
|
||||
beq .10
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .9
|
||||
.10 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWDX.Record2GR ldy #0
|
||||
PWDX.Rec2GR ldy #0
|
||||
|
||||
ldx #0 NAME
|
||||
|
||||
|
@ -561,15 +561,15 @@ PWDX.Record2GR ldy #0
|
|||
cmp #':'
|
||||
beq .2
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.2 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
jsr PWDX.GetByte UID
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -579,15 +579,15 @@ PWDX.Record2GR ldy #0
|
|||
PWDX.GetSessionLen
|
||||
ldy #0
|
||||
|
||||
jsr PWDX.NextString USERNAME
|
||||
jsr PWDX.NextS USERNAME
|
||||
tya
|
||||
clc
|
||||
adc #S.SESSION.NAME
|
||||
tax
|
||||
|
||||
jsr PWDX.NextString skip PASSWORD
|
||||
jsr PWDX.NextString skip UID
|
||||
jsr PWDX.NextString skip GID
|
||||
jsr PWDX.NextS skip PASSWORD
|
||||
jsr PWDX.NextS skip UID
|
||||
jsr PWDX.NextS skip GID
|
||||
|
||||
.1 inx
|
||||
iny
|
||||
|
@ -604,8 +604,8 @@ PWDX.GetSessionLen
|
|||
PWDX.Record2Session
|
||||
ldy #0
|
||||
|
||||
jsr PWDX.NextString skip USERNAME
|
||||
jsr PWDX.NextString skip PASSWORD
|
||||
jsr PWDX.NextS skip USERNAME
|
||||
jsr PWDX.NextS skip PASSWORD
|
||||
jsr PWDX.GetByte get UID
|
||||
sta ZPPtr1
|
||||
|
||||
|
@ -627,13 +627,13 @@ PWDX.Record2Session
|
|||
|
||||
ora #S.SESSION.P.SYSADMIN
|
||||
|
||||
.2 jsr SHARED.PutCharPtr2
|
||||
.2 jsr SHARED.PutCP2
|
||||
|
||||
lda ZPPtr1
|
||||
jsr SHARED.PutCharPtr2 UID
|
||||
jsr SHARED.PutCP2 UID
|
||||
|
||||
lda ZPPtr1+1
|
||||
jsr SHARED.PutCharPtr2 GID
|
||||
jsr SHARED.PutCP2 GID
|
||||
|
||||
phy
|
||||
|
||||
|
@ -644,11 +644,11 @@ PWDX.Record2Session
|
|||
cmp #':'
|
||||
beq .4
|
||||
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.PutCP2
|
||||
bra .3
|
||||
|
||||
.4 lda #0
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.PutCP2
|
||||
|
||||
ply
|
||||
|
||||
|
@ -661,27 +661,27 @@ PWDX.Record2Session
|
|||
|
||||
lda #0
|
||||
|
||||
.6 jsr SHARED.PutCharPtr2
|
||||
.6 jsr SHARED.PutCP2
|
||||
iny
|
||||
bra .5
|
||||
|
||||
.8 lda #0
|
||||
jmp SHARED.PutCharPtr2
|
||||
jmp SHARED.PutCP2
|
||||
*--------------------------------------
|
||||
PWDX.NextString lda (ZPPtr3),y
|
||||
PWDX.NextS lda (ZPPtr3),y
|
||||
beq .8
|
||||
|
||||
iny
|
||||
cmp #':'
|
||||
bne PWDX.NextString
|
||||
bne PWDX.NextS
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
PWDX.NextLine lda (ZPPtr3),y
|
||||
PWDX.NextL lda (ZPPtr3),y
|
||||
beq .8
|
||||
|
||||
iny
|
||||
cmp #C.CR
|
||||
bne PWDX.NextLine
|
||||
bne PWDX.NextL
|
||||
|
||||
tya
|
||||
clc
|
||||
|
@ -725,7 +725,7 @@ PWDX.GetByte stz .8+1
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
PWDX.AppendRecord
|
||||
PWDX.AppRec
|
||||
.1 lda (ZPPtr3)
|
||||
beq .8
|
||||
|
||||
|
@ -737,64 +737,61 @@ PWDX.AppendRecord
|
|||
.8 sec
|
||||
.HS 90 BCC
|
||||
*--------------------------------------
|
||||
PWDX.GetRecordLen
|
||||
clc
|
||||
PWDX.GetRecLen clc
|
||||
ldx #0
|
||||
ldy #S.PW.NAME
|
||||
|
||||
jsr PWDX.StoreString
|
||||
jsr PWDX.StoreS
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
ldy #S.PW.PASSWD
|
||||
|
||||
jsr PWDX.StoreString
|
||||
jsr PWDX.StoreS
|
||||
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
ldy #S.PW.UID
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr PWDX.StoreByte
|
||||
jsr SHARED.TXTPTRgY
|
||||
jsr PWDX.StoreB
|
||||
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
ldy #S.PW.GID
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr PWDX.StoreByte
|
||||
jsr SHARED.TXTPTRgY
|
||||
jsr PWDX.StoreB
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
ldy #S.PW.GECOS
|
||||
|
||||
jsr PWDX.StoreString
|
||||
jsr PWDX.StoreS
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
ldy #S.PW.DIR
|
||||
|
||||
jsr PWDX.StoreString
|
||||
jsr PWDX.StoreS
|
||||
lda #':'
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
ldy #S.PW.SHELL
|
||||
|
||||
jsr PWDX.StoreString
|
||||
jsr PWDX.StoreS
|
||||
lda #C.CR
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
|
||||
txa
|
||||
PWDX.GetRecordLen.RTS
|
||||
rts
|
||||
PWDX.RTS rts
|
||||
*--------------------------------------
|
||||
PWDX.StoreString
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
beq PWDX.GetRecordLen.RTS
|
||||
jsr PWDX.StoreChar
|
||||
PWDX.StoreS jsr SHARED.TXTPTRgY
|
||||
beq PWDX.RTS
|
||||
jsr PWDX.StoreC
|
||||
iny
|
||||
bra PWDX.StoreString
|
||||
bra PWDX.StoreS
|
||||
*--------------------------------------
|
||||
PWDX.StoreByte php
|
||||
PWDX.StoreB php
|
||||
phx
|
||||
jsr MATH.A2STR10NP
|
||||
plx
|
||||
|
@ -802,13 +799,13 @@ PWDX.StoreByte php
|
|||
|
||||
ldy #0
|
||||
|
||||
.1 lda A2osX.NumStrBuf,y
|
||||
beq PWDX.GetRecordLen.RTS
|
||||
.1 lda FOUTBuf,y
|
||||
beq PWDX.RTS
|
||||
iny
|
||||
jsr PWDX.StoreChar
|
||||
jsr PWDX.StoreC
|
||||
bra .1
|
||||
*--------------------------------------
|
||||
PWDX.StoreChar inx
|
||||
PWDX.StoreC inx
|
||||
bcc .9 Dry run, no store
|
||||
sta (ZPPtr3)
|
||||
inc ZPPtr3
|
||||
|
@ -816,15 +813,14 @@ PWDX.StoreChar inx
|
|||
inc ZPPtr3+1
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
PWDX.ROOTSESSION
|
||||
.DA #S.SESSION.P.ROOT
|
||||
PWDX.ROOT .DA #S.SESSION.P.ROOT
|
||||
.DA #0 UID
|
||||
.DA #0 GID
|
||||
.AZ "root" NAME
|
||||
.AZ "Root User" GECOS
|
||||
.AZ "${ROOT}root/" DIR
|
||||
.AZ "${ROOT}bin/sh" SHELL
|
||||
PWDX.ROOTSESSION.Size .EQ *-PWDX.ROOTSESSION
|
||||
PWDX.ROOT.Size .EQ *-PWDX.ROOT
|
||||
*--------------------------------------
|
||||
PWDX.GROUP .AS "root:0"
|
||||
.DA #C.CR
|
||||
|
|
|
@ -9,12 +9,12 @@ SHARED.IsIDValid
|
|||
beq SHARED.IsDigit.8
|
||||
SHARED.IsDigitOrL
|
||||
cmp #'z'+1
|
||||
bcs SHARED.IsDigit.RTS
|
||||
bcs SHARED.RTS
|
||||
cmp #'a'
|
||||
bcs SHARED.IsDigit.8
|
||||
SHARED.IsDigitOrUC
|
||||
cmp #'Z'+1
|
||||
bcs SHARED.IsDigit.RTS
|
||||
bcs SHARED.RTS
|
||||
cmp #'A'
|
||||
bcs SHARED.IsDigit.8
|
||||
|
||||
|
@ -24,122 +24,97 @@ SHARED.IsDigit.9
|
|||
rts
|
||||
SHARED.IsDigit.8
|
||||
clc
|
||||
SHARED.IsDigit.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.IsHexDigit
|
||||
jsr ZP.IsDigit
|
||||
bcc .8
|
||||
cmp #'A'
|
||||
bcc SHARED.IsDigit.9
|
||||
cmp #'F'+1
|
||||
bcc .1
|
||||
cmp #'a'
|
||||
bcc SHARED.IsDigit.9
|
||||
cmp #'f'+1
|
||||
bcs SHARED.IsDigit.RTS
|
||||
|
||||
eor #$20
|
||||
.1
|
||||
* clc
|
||||
sbc #'A'-11 cc so A->10 (11-CC)
|
||||
clc
|
||||
.8 and #$0F
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.TXTPTR.GetY
|
||||
sta CLRREADAUX
|
||||
SHARED.TXTPTRgY sta CLRREADAUX
|
||||
lda (TXTPTR),y
|
||||
sta SETREADAUX
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.TXTPTR.GetNext
|
||||
sta CLRREADAUX
|
||||
SHARED.TXTPTRgn sta CLRREADAUX
|
||||
lda (TXTPTR)
|
||||
sta SETREADAUX
|
||||
beq SHARED.RTS
|
||||
SHARED.TXTPTR.Next
|
||||
inc TXTPTR
|
||||
SHARED.TXTPTRn inc TXTPTR
|
||||
bne SHARED.RTS
|
||||
inc TXTPTR+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.FORPNT.getY
|
||||
sta CLRREADAUX
|
||||
SHARED.FORPNTgY sta CLRREADAUX
|
||||
lda (FORPNT),y
|
||||
sta SETREADAUX
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.FORPNT.PutY
|
||||
sta CLRWRITEAUX
|
||||
SHARED.FORPNTpY sta CLRWRITEAUX
|
||||
sta (FORPNT),y
|
||||
sta SETWRITEAUX
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.FORPNT.GetNext
|
||||
sta CLRREADAUX
|
||||
SHARED.FORPNTgn sta CLRREADAUX
|
||||
lda (FORPNT)
|
||||
sta SETREADAUX
|
||||
bra SHARED.FORPNT.Next
|
||||
bra SHARED.FORPNTn
|
||||
*--------------------------------------
|
||||
SHARED.FORPNT.PutNext
|
||||
sta CLRWRITEAUX
|
||||
SHARED.FORPNTpn sta CLRWRITEAUX
|
||||
sta (FORPNT)
|
||||
sta SETWRITEAUX
|
||||
SHARED.FORPNT.Next
|
||||
inc FORPNT
|
||||
SHARED.FORPNTn inc FORPNT
|
||||
bne SHARED.RTS
|
||||
inc FORPNT+1
|
||||
SHARED.RTS rts
|
||||
*--------------------------------------
|
||||
SHARED.GetCharPtr1
|
||||
lda (ZPPtr1)
|
||||
SHARED.GetCP1 lda (ZPPtr1)
|
||||
beq SHARED.RTS
|
||||
|
||||
inc ZPPtr1
|
||||
bne .8
|
||||
|
||||
inc ZPPtr1+1 never Z
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SHARED.AddYp1ToPtr1
|
||||
SHARED.AddYp12P1
|
||||
sec
|
||||
.HS 90 BCC
|
||||
SHARED.AddYToPtr1
|
||||
clc
|
||||
SHARED.AddY2P1 clc
|
||||
tya
|
||||
adc ZPPtr1
|
||||
sta ZPPtr1
|
||||
bcc .8
|
||||
|
||||
inc ZPPtr1+1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SHARED.AddYp1ToPtr2
|
||||
SHARED.AddYp12P2
|
||||
sec
|
||||
.HS 90 BCC
|
||||
SHARED.AddYToPtr2
|
||||
clc
|
||||
SHARED.AddY2P2 clc
|
||||
tya
|
||||
adc ZPPtr2
|
||||
sta ZPPtr2
|
||||
bcc .8
|
||||
|
||||
clc keep CC as some JMP exit here
|
||||
inc ZPPtr2+1
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SHARED.GetCharPtr2
|
||||
lda (ZPPtr2)
|
||||
bne SHARED.NextCharPtr2
|
||||
SHARED.GetCP2 lda (ZPPtr2)
|
||||
bne SHARED.NextCP2
|
||||
rts
|
||||
SHARED.PutCharPtr2
|
||||
sta (ZPPtr2)
|
||||
SHARED.NextCharPtr2
|
||||
inc ZPPtr2
|
||||
*--------------------------------------
|
||||
SHARED.PutCP2 sta (ZPPtr2)
|
||||
SHARED.NextCP2 inc ZPPtr2
|
||||
bne .8
|
||||
|
||||
inc ZPPtr2+1
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SHARED.ZPPtr3.GetY
|
||||
sta CLRREADAUX
|
||||
SHARED.PullP2P1 >PULLW ZPPtr2
|
||||
>PULLW ZPPtr1
|
||||
rts
|
||||
*--------------------------------------
|
||||
SHARED.P3gY sta CLRREADAUX
|
||||
lda (ZPPtr3),y
|
||||
sta SETREADAUX
|
||||
rts
|
||||
|
|
|
@ -3,22 +3,16 @@ NEW
|
|||
*--------------------------------------
|
||||
ZPSListDataOfs .EQ ZPMEMMGR+8
|
||||
ZPSListDataLen .EQ ZPMEMMGR+10
|
||||
ZPSListIBlkPtr .EQ ZPMEMMGR+12
|
||||
ZPSListDBlkPtr .EQ ZPMEMMGR+14
|
||||
*--------------------------------------
|
||||
SLIST.KeyLen .BS 1
|
||||
SLIST.DataLen .BS 2
|
||||
SLIST.nDataCnt .BS 2
|
||||
SLIST.nBufCnt .BS 2
|
||||
SLIST.bStringMode .BS 1
|
||||
SLIST.bAppend0 .BS 1
|
||||
SLIST.KeyID .EQ *
|
||||
SLIST.BytePtr .BS 1
|
||||
SLIST.BlockPtr .BS 1
|
||||
SLIST.KeyID.Save .BS 2
|
||||
SLIST.bStr .BS 1
|
||||
SLIST.b0 .BS 1
|
||||
SLIST.KeyID .BS 2
|
||||
*--------------------------------------
|
||||
SLISTX.SListGetData
|
||||
jsr SLIST.Select
|
||||
SLISTX.GetData jsr SLIST.Select
|
||||
|
||||
jsr SLIST.SkipKey
|
||||
jsr SLIST.GetDataLen
|
||||
|
@ -40,7 +34,7 @@ SLISTX.SListGetData
|
|||
ldx ZPSListDataOfs+1
|
||||
jsr SLIST.SkipDataAX
|
||||
|
||||
stz SLIST.bAppend0
|
||||
stz SLIST.b0
|
||||
|
||||
lda FORPNT
|
||||
ora FORPNT+1
|
||||
|
@ -53,7 +47,7 @@ SLISTX.SListGetData
|
|||
inc +1 for ending 0
|
||||
|
||||
sec
|
||||
ror SLIST.bAppend0
|
||||
ror SLIST.b0
|
||||
|
||||
.11 ldx #SYS.GetMem
|
||||
jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!!
|
||||
|
@ -74,7 +68,7 @@ SLISTX.SListGetData
|
|||
sta SLIST.nBufCnt+1
|
||||
clc
|
||||
|
||||
.1 ror SLIST.bStringMode
|
||||
.1 ror SLIST.bStr
|
||||
|
||||
stz ZPSListDataLen
|
||||
stz ZPSListDataLen+1
|
||||
|
@ -84,7 +78,7 @@ SLISTX.SListGetData
|
|||
inc SLIST.nDataCnt+1
|
||||
beq .80
|
||||
|
||||
.3 bit SLIST.bStringMode
|
||||
.3 bit SLIST.bStr
|
||||
bmi .4 String mode : until CR
|
||||
|
||||
inc SLIST.nBufCnt
|
||||
|
@ -92,14 +86,14 @@ SLISTX.SListGetData
|
|||
inc SLIST.nBufCnt+1
|
||||
beq .80 not string mode : until end of buffer
|
||||
|
||||
.4 jsr SLIST.GetNextByte
|
||||
bit SLIST.bStringMode
|
||||
.4 jsr BLISTX.GetNByte
|
||||
bit SLIST.bStr
|
||||
bpl .5
|
||||
|
||||
cmp #C.CR
|
||||
beq .81
|
||||
|
||||
.5 jsr SHARED.FORPNT.PutNext
|
||||
.5 jsr SHARED.FORPNTpn
|
||||
inc ZPSListDataLen
|
||||
bne .2
|
||||
inc ZPSListDataLen+1
|
||||
|
@ -109,39 +103,38 @@ SLISTX.SListGetData
|
|||
sec
|
||||
.9 rts
|
||||
|
||||
.80 lda SLIST.bStringMode
|
||||
ora SLIST.bAppend0
|
||||
.80 lda SLIST.bStr
|
||||
ora SLIST.b0
|
||||
bpl .82
|
||||
|
||||
.81 lda #0
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
.82 >LDYA ZPSListDataLen
|
||||
.88 ldx #$ff SELF MODIFIED
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLISTX.SListAddData
|
||||
jsr SLIST.Select
|
||||
SLISTX.AddData jsr SLIST.Select
|
||||
|
||||
jsr SLIST.SkipKey
|
||||
|
||||
ldy SLIST.BytePtr
|
||||
lda (ZPSListDBlkPtr),y
|
||||
ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
pha
|
||||
clc
|
||||
adc ZPSListDataLen
|
||||
sta (ZPSListDBlkPtr),y
|
||||
sta (DBlkPtr),y
|
||||
php
|
||||
jsr SLIST.ToNextByte skip LEN lo
|
||||
jsr BLISTX.2NByte skip LEN lo
|
||||
|
||||
plp
|
||||
ldy SLIST.BytePtr
|
||||
lda (ZPSListDBlkPtr),y
|
||||
ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
pha
|
||||
adc ZPSListDataLen+1
|
||||
sta (ZPSListDBlkPtr),y
|
||||
jsr SLIST.ToNextByte skip LEN hi
|
||||
sta (DBlkPtr),y
|
||||
jsr BLISTX.2NByte skip LEN hi
|
||||
|
||||
plx
|
||||
pla
|
||||
|
@ -161,22 +154,21 @@ SLISTX.SListAddData
|
|||
inc ZPSListDataLen+1
|
||||
beq .8
|
||||
|
||||
.2 jsr SHARED.FORPNT.GetNext
|
||||
.2 jsr SHARED.FORPNTgn
|
||||
bcc .3
|
||||
|
||||
jsr SLIST.SetBlockByte override ending 0, already allocated
|
||||
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||
clc
|
||||
bra .1
|
||||
|
||||
.3 jsr SLIST.AddDataByte
|
||||
.3 jsr BLISTX.AddByte
|
||||
bcc .1
|
||||
rts
|
||||
|
||||
.8 lda #0
|
||||
jmp SLIST.AddDataByte Add an extra 0 to stop Search here
|
||||
jmp BLISTX.AddByte Add an extra 0 to stop Search here
|
||||
*--------------------------------------
|
||||
SLISTX.SListSetData
|
||||
jsr SLIST.Select
|
||||
SLISTX.SetData jsr SLIST.Select
|
||||
|
||||
jsr SLIST.SkipKey
|
||||
jsr SLIST.GetDataLen
|
||||
|
@ -200,8 +192,8 @@ SLISTX.SListSetData
|
|||
inc SLIST.nDataCnt+1
|
||||
beq .8
|
||||
|
||||
.2 jsr SHARED.FORPNT.GetNext
|
||||
jsr SLIST.SetBlockByte
|
||||
.2 jsr SHARED.FORPNTgn
|
||||
jsr BLISTX.SetBlkByte
|
||||
bra .1
|
||||
|
||||
.8 clc
|
||||
|
@ -210,20 +202,19 @@ SLISTX.SListSetData
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLISTX.SListGetByID
|
||||
jsr SLIST.Select
|
||||
SLISTX.GetByID jsr SLIST.Select
|
||||
|
||||
jsr SLIST.GetNextByte
|
||||
jsr BLISTX.GetNByte
|
||||
tax
|
||||
beq .9
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 phy
|
||||
jsr SLIST.GetNextByte
|
||||
jsr BLISTX.GetNByte
|
||||
ply
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
iny
|
||||
dex
|
||||
|
@ -231,10 +222,10 @@ SLISTX.SListGetByID
|
|||
|
||||
txa lda #0
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
|
||||
jsr SLIST.SkipData
|
||||
>LDYA SLIST.KeyID
|
||||
>LDYA KeyID
|
||||
clc
|
||||
rts
|
||||
|
||||
|
@ -242,20 +233,19 @@ SLISTX.SListGetByID
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLISTX.SListNewKey
|
||||
jsr SLIST.Search
|
||||
SLISTX.NewKey jsr SLIST.Search
|
||||
bcc .99
|
||||
|
||||
>LDYA SLIST.KeyID
|
||||
>STYA SLIST.KeyID.Save End of list
|
||||
>LDYA KeyID
|
||||
>STYA SLIST.KeyID End of list
|
||||
|
||||
lda SLIST.KeyLen
|
||||
jsr SLIST.SetBlockByte override ending 0, already allocated
|
||||
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 jsr SHARED.TXTPTR.GetY
|
||||
jsr SLIST.AddDataByte
|
||||
.1 jsr SHARED.TXTPTRgY
|
||||
jsr BLISTX.AddByte
|
||||
bcs .9
|
||||
|
||||
iny
|
||||
|
@ -263,18 +253,18 @@ SLISTX.SListNewKey
|
|||
bne .1
|
||||
|
||||
lda #0 Data Len lo = 0
|
||||
jsr SLIST.AddDataByte
|
||||
jsr BLISTX.AddByte
|
||||
bcs .9
|
||||
|
||||
lda #0 Data Len hi = 0
|
||||
jsr SLIST.AddDataByte
|
||||
jsr BLISTX.AddByte
|
||||
bcs .9
|
||||
|
||||
lda #0 Ending Len = 0
|
||||
jsr SLIST.AddDataByte
|
||||
jsr BLISTX.AddByte
|
||||
bcs .9
|
||||
|
||||
>LDYA SLIST.KeyID.Save
|
||||
>LDYA SLIST.KeyID
|
||||
ldx SLIST.KeyLen
|
||||
* clc
|
||||
rts
|
||||
|
@ -283,67 +273,25 @@ SLISTX.SListNewKey
|
|||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SLISTX.SListLookup
|
||||
jsr SLIST.Search
|
||||
SLISTX.Lookup jsr SLIST.Search
|
||||
bcs .9
|
||||
|
||||
ldx SLIST.KeyLen
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SLISTX.SListFree
|
||||
pha
|
||||
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 lda $ffff,x SELF MODIFIED
|
||||
beq .8
|
||||
|
||||
jsr K.FreeMem
|
||||
inx
|
||||
bra .1
|
||||
|
||||
.8 pla
|
||||
jmp K.FreeMem
|
||||
*--------------------------------------
|
||||
SLISTX.SListNew >LDYAI 128 32k Max before out of memory!!!
|
||||
ldx #S.MEM.F.INIT0+8 index
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPSListIBlkPtr
|
||||
stx .8+1
|
||||
|
||||
>LDYAI 256
|
||||
ldx #4 data
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPSListDBlkPtr
|
||||
|
||||
lda #0
|
||||
sta (ZPSListDBlkPtr)
|
||||
txa
|
||||
sta (ZPSListIBlkPtr)
|
||||
|
||||
.8 lda #$ff SELF MODIFIED
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* PRIVATE
|
||||
*--------------------------------------
|
||||
SLIST.Search jsr K.GetMemPtr
|
||||
>STYA ZPSListIBlkPtr
|
||||
>STYA IBlkPtr
|
||||
|
||||
lda (ZPSListIBlkPtr)
|
||||
lda (IBlkPtr)
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPSListDBlkPtr
|
||||
>STYA DBlkPtr
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.1 iny
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
beq .11
|
||||
|
||||
jsr SHARED.IsIDValid
|
||||
|
@ -351,29 +299,29 @@ SLIST.Search jsr K.GetMemPtr
|
|||
|
||||
.11 sty SLIST.KeyLen
|
||||
|
||||
stz SLIST.BytePtr
|
||||
stz SLIST.BlockPtr
|
||||
stz iByte
|
||||
stz iBlk
|
||||
|
||||
.2 >LDYA SLIST.KeyID
|
||||
>STYA SLIST.KeyID.Save
|
||||
.2 >LDYA KeyID
|
||||
>STYA SLIST.KeyID
|
||||
|
||||
ldy SLIST.BytePtr
|
||||
lda (ZPSListDBlkPtr),y
|
||||
ldy iByte
|
||||
lda (DBlkPtr),y
|
||||
beq .9
|
||||
|
||||
cmp SLIST.KeyLen
|
||||
bne .5
|
||||
|
||||
jsr SLIST.GetNextByte Skip Len
|
||||
jsr BLISTX.GetNByte Skip Len
|
||||
|
||||
ldy #0
|
||||
|
||||
.3 phy
|
||||
jsr SLIST.GetNextByte
|
||||
jsr BLISTX.GetNByte
|
||||
sta .4+1
|
||||
ply
|
||||
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
|
||||
.4 cmp #$ff SELF MODIFIED
|
||||
bne .5
|
||||
|
@ -382,11 +330,11 @@ SLIST.Search jsr K.GetMemPtr
|
|||
cpy SLIST.KeyLen
|
||||
bne .3
|
||||
|
||||
>LDYA SLIST.KeyID.Save
|
||||
>LDYA SLIST.KeyID
|
||||
clc
|
||||
rts
|
||||
|
||||
.5 >LDYA SLIST.KeyID.Save
|
||||
.5 >LDYA SLIST.KeyID
|
||||
|
||||
jsr SLIST.Select.I move back...
|
||||
jsr SLIST.Next
|
||||
|
@ -397,17 +345,17 @@ SLIST.Search jsr K.GetMemPtr
|
|||
rts
|
||||
*--------------------------------------
|
||||
SLIST.Select jsr K.GetMemPtr
|
||||
>STYA ZPSListIBlkPtr
|
||||
>STYA IBlkPtr
|
||||
|
||||
>LDYA TXTPTR
|
||||
|
||||
SLIST.Select.I >STYA SLIST.KeyID
|
||||
SLIST.Select.I >STYA KeyID
|
||||
|
||||
ldy SLIST.BlockPtr
|
||||
ldy iBlk
|
||||
|
||||
lda (ZPSListIBlkPtr),y
|
||||
lda (IBlkPtr),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPSListDBlkPtr
|
||||
>STYA DBlkPtr
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -419,90 +367,36 @@ SLIST.SkipData jsr SLIST.GetDataLen
|
|||
ldx SLIST.DataLen+1
|
||||
SLIST.SkipDataAX
|
||||
clc
|
||||
adc SLIST.BytePtr
|
||||
sta SLIST.BytePtr
|
||||
adc iByte
|
||||
sta iByte
|
||||
txa
|
||||
adc SLIST.BlockPtr
|
||||
sta SLIST.BlockPtr
|
||||
adc iBlk
|
||||
sta iBlk
|
||||
tay
|
||||
lda (ZPSListIBlkPtr),y
|
||||
lda (IBlkPtr),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPSListDBlkPtr
|
||||
>STYA DBlkPtr
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLIST.SkipKey ldy SLIST.BytePtr
|
||||
lda (ZPSListDBlkPtr),y Get KeyLen
|
||||
SLIST.SkipKey ldy iByte
|
||||
lda (DBlkPtr),y Get KeyLen
|
||||
sec
|
||||
adc SLIST.BytePtr
|
||||
sta SLIST.BytePtr
|
||||
bcs SLIST.ToNextBlock
|
||||
adc iByte
|
||||
sta iByte
|
||||
bcc .8
|
||||
|
||||
jmp BLISTX.2NBlk
|
||||
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SLIST.GetDataLen
|
||||
jsr SLIST.GetNextByte Get DataLenLo
|
||||
jsr BLISTX.GetNByte Get DataLenLo
|
||||
sta SLIST.DataLen
|
||||
jsr SLIST.GetNextByte Get DataLenHI
|
||||
jsr BLISTX.GetNByte Get DataLenHI
|
||||
sta SLIST.DataLen+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLIST.GetNextByte
|
||||
ldy SLIST.BytePtr
|
||||
lda (ZPSListDBlkPtr),y
|
||||
SLIST.ToNextByte
|
||||
inc SLIST.BytePtr
|
||||
bne .8
|
||||
|
||||
pha
|
||||
jsr SLIST.ToNextBlock
|
||||
pla
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
SLIST.AddDataByte
|
||||
phy
|
||||
ldy SLIST.BytePtr
|
||||
sta (ZPSListDBlkPtr),y
|
||||
inc SLIST.BytePtr
|
||||
bne .8
|
||||
|
||||
phx
|
||||
>LDYAI 256
|
||||
ldx #4
|
||||
jsr MEM.GetMem.YAX
|
||||
bcs .9
|
||||
|
||||
>STYA ZPSListDBlkPtr
|
||||
txa
|
||||
inc SLIST.BlockPtr
|
||||
ldy SLIST.BlockPtr
|
||||
sta (ZPSListIBlkPtr),y
|
||||
|
||||
* stz SLIST.BytePtr
|
||||
plx
|
||||
|
||||
.8 ply
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 plx
|
||||
ply
|
||||
rts
|
||||
*--------------------------------------
|
||||
SLIST.SetBlockByte
|
||||
ldy SLIST.BytePtr
|
||||
sta (ZPSListDBlkPtr),y
|
||||
inc SLIST.BytePtr
|
||||
bne SLIST.ToNextBlock.RTS
|
||||
*--------------------------------------
|
||||
SLIST.ToNextBlock
|
||||
inc SLIST.BlockPtr
|
||||
ldy SLIST.BlockPtr
|
||||
lda (ZPSListIBlkPtr),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPSListDBlkPtr
|
||||
SLIST.ToNextBlock.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.slistx
|
||||
LOAD usr/src/sys/kernel.s
|
||||
|
|
|
@ -56,7 +56,7 @@ K.SetAttr jsr PFT.CheckPath1
|
|||
K.ChMod jsr PFT.CheckPath2
|
||||
bcs K.ChMod.RET4
|
||||
|
||||
jsr STAT.PullPathAndMode
|
||||
jsr STAT.PM
|
||||
|
||||
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
||||
|
||||
|
@ -100,14 +100,14 @@ K.FStat jsr PFT.CheckNode2
|
|||
jsr PFT.YAToMLIPATH
|
||||
|
||||
jsr FS.Stat.203
|
||||
bcs K.Stat.Store.RTS
|
||||
bcs STAT.RTS
|
||||
|
||||
ldy #S.FD.REG.REF
|
||||
lda (pFD),y
|
||||
sta K.MLI.PARAMS+1
|
||||
|
||||
>MLICALL MLIGETEOF
|
||||
bcs K.Stat.Store.RTS
|
||||
bcs STAT.RTS
|
||||
|
||||
ldx #2
|
||||
|
||||
|
@ -124,8 +124,7 @@ K.Stat.Store.2 sta $ffff,y SELF MODIFIED
|
|||
bpl K.Stat.Store.1
|
||||
|
||||
* clc
|
||||
K.Stat.Store.RTS
|
||||
rts
|
||||
STAT.RTS rts
|
||||
*/--------------------------------------
|
||||
* # Stat
|
||||
* Return information about a file
|
||||
|
@ -166,7 +165,7 @@ K.Stat jsr PFT.CheckPath2
|
|||
K.MKDir jsr PFT.CheckPath2
|
||||
bcs K.ChMod.RET4
|
||||
|
||||
jsr STAT.PullPathAndMode
|
||||
jsr STAT.PM
|
||||
|
||||
lda #S.FI.T.DIR
|
||||
sta K.MLI.PARAMS+4
|
||||
|
@ -187,11 +186,11 @@ K.MKDir jsr PFT.CheckPath2
|
|||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MKFIFO jsr STAT.PullPathAndMode
|
||||
K.MKFIFO jsr STAT.PM
|
||||
|
||||
>LDYAI 512
|
||||
jsr K.pipe
|
||||
bcs K.Stat.Store.RTS
|
||||
bcs STAT.RTS
|
||||
|
||||
ldy #0
|
||||
.1 lda STAT.FIFO,y
|
||||
|
@ -227,7 +226,7 @@ K.MKFIFO jsr STAT.PullPathAndMode
|
|||
*\--------------------------------------
|
||||
K.MkNod >PULLB IO.hFD
|
||||
|
||||
jsr STAT.PullPathAndMode
|
||||
jsr STAT.PM
|
||||
|
||||
K.MkNod.I ldx #2
|
||||
|
||||
|
@ -307,8 +306,7 @@ K.Pipe sta .1+1 SIZE HI
|
|||
.99
|
||||
rts
|
||||
*--------------------------------------
|
||||
STAT.PullPathAndMode
|
||||
>PULLW K.S.STAT+S.STAT.MODE
|
||||
STAT.PM >PULLW K.S.STAT+S.STAT.MODE
|
||||
>PULLW ZPPtr1 pathname
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -50,7 +50,7 @@ K.FPutC jsr PFT.CheckNodeA
|
|||
>PUSHA
|
||||
|
||||
>PUSHWI K.IOBuf buf
|
||||
jsr UNISTD.Write
|
||||
jsr IO.Write
|
||||
bcc .8 pop char...
|
||||
|
||||
cmp #E.NODATA
|
||||
|
@ -158,7 +158,7 @@ K.FPutS jsr PFT.CheckNode2 set IO.hFD
|
|||
>PUSHA push len LO
|
||||
|
||||
>PUSHW ZPPtr2
|
||||
jsr UNISTD.Write
|
||||
jsr IO.Write
|
||||
bcc K.PutS.RET3
|
||||
|
||||
cmp #E.NODATA
|
||||
|
@ -240,7 +240,7 @@ K.FGetS jsr PFT.CheckNode4
|
|||
cmp #C.CR
|
||||
beq .8
|
||||
|
||||
jsr SHARED.PutCharPtr2
|
||||
jsr SHARED.PutCP2
|
||||
|
||||
inc ZPPtr1
|
||||
bne .4
|
||||
|
@ -299,28 +299,28 @@ K.GetChar ldy #S.PS.hStdIn
|
|||
* A = char
|
||||
*\--------------------------------------
|
||||
K.GetC jsr PFT.CheckNodeA
|
||||
bcs K.GetC.RTS
|
||||
bcs .9
|
||||
|
||||
jsr STDIO.Get.1
|
||||
bcc .8
|
||||
|
||||
cmp #E.NODATA
|
||||
sec
|
||||
bne K.GetC.RTS I/O error
|
||||
bne .9 I/O error
|
||||
|
||||
inc 0 = BLOCKING
|
||||
rts
|
||||
|
||||
.8 lda K.IOBuf
|
||||
|
||||
K.GetC.RTS rts
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
STDIO.Get.1 lda #0
|
||||
>PUSHA
|
||||
inc read 1 byte
|
||||
>PUSHA
|
||||
>PUSHWI K.IOBuf
|
||||
jmp UNISTD.READ
|
||||
jmp IO.Read
|
||||
*/--------------------------------------
|
||||
* # ungetc
|
||||
* push byte back into input stream
|
||||
|
@ -376,7 +376,7 @@ K.FOpen jsr PFT.CheckPath4
|
|||
inc pStack discard filename
|
||||
inc pStack
|
||||
|
||||
jmp UNISTD.Open
|
||||
jmp IO.Open
|
||||
|
||||
.9 >POP 6
|
||||
.99 rts
|
||||
|
@ -394,7 +394,7 @@ K.FOpen jsr PFT.CheckPath4
|
|||
K.FClose jsr PFT.CheckNodeA
|
||||
bcs K.FRead.RTS
|
||||
|
||||
jmp UNISTD.Close
|
||||
jmp IO.Close
|
||||
*/--------------------------------------
|
||||
* # FRead (BLOCKING)
|
||||
* Read bytes from file
|
||||
|
@ -412,7 +412,7 @@ K.FClose jsr PFT.CheckNodeA
|
|||
K.FRead jsr PFT.CheckNodeA
|
||||
bcs K.FWrite.RET4
|
||||
|
||||
jsr UNISTD.Read
|
||||
jsr IO.Read
|
||||
bcs K.FWrite.9
|
||||
|
||||
K.FRead.RTS rts
|
||||
|
@ -433,7 +433,7 @@ K.FRead.RTS rts
|
|||
K.FWrite jsr PFT.CheckNodeA
|
||||
bcs K.FWrite.RET4
|
||||
|
||||
jsr UNISTD.Write
|
||||
jsr IO.Write
|
||||
bcc K.FWrite.RTS
|
||||
|
||||
K.FWrite.9 cmp #E.NODATA
|
||||
|
@ -720,8 +720,8 @@ K.Rename jsr PFT.CheckPath2
|
|||
.OR ZPTMP+5 5 Bytes
|
||||
PrintF.Cnt .BS 2
|
||||
PrintF.hFILE .BS 1
|
||||
STDIO.StackBytePtr .BS 1
|
||||
STDIO.ExitPopCnt .BS 1
|
||||
STDIO.iStkB .BS 1
|
||||
STDIO.PopCnt .BS 1
|
||||
.ED
|
||||
*--------------------------------------
|
||||
K.PrintF.PadL .EQ FAC+5
|
||||
|
@ -745,9 +745,9 @@ K.PrintF.1 sec format string->ptr2
|
|||
stx pIOBuf
|
||||
sta pIOBuf+1 Output buffer->pIOBuf
|
||||
|
||||
sty STDIO.ExitPopCnt Total bytes to POP
|
||||
sty STDIO.PopCnt Total bytes to POP
|
||||
|
||||
.1 jsr SHARED.GetCharPtr2
|
||||
.1 jsr SHARED.GetCP2
|
||||
bne .22
|
||||
|
||||
jmp .8 end of format..
|
||||
|
@ -764,7 +764,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
cmp #'0' ...a 0...mmm... padding char?
|
||||
bne .4
|
||||
sta K.PrintF.PadC
|
||||
jsr SHARED.NextCharPtr2 skip 0 ...
|
||||
jsr SHARED.NextCP2 skip 0 ...
|
||||
lda (ZPPtr2)
|
||||
beq .7
|
||||
|
||||
|
@ -780,7 +780,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
lda #C.SPACE
|
||||
sta K.PrintF.PadC
|
||||
|
||||
.5 jsr SHARED.AddYToPtr2 skip all processed chars
|
||||
.5 jsr SHARED.AddY2P2 skip all processed chars
|
||||
|
||||
lda (ZPPtr2)
|
||||
beq .7
|
||||
|
@ -792,7 +792,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
bpl .61
|
||||
bra .20 unknown ...
|
||||
|
||||
.62 jsr SHARED.NextCharPtr2
|
||||
.62 jsr SHARED.NextCP2
|
||||
txa yes, jmp to it!
|
||||
asl
|
||||
tax
|
||||
|
@ -805,7 +805,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
.10 cmp #'\'
|
||||
bne .20
|
||||
|
||||
jsr SHARED.GetCharPtr2
|
||||
jsr SHARED.GetCP2
|
||||
beq .99
|
||||
ldx #PrintFTBL2.Cnt-1
|
||||
.12 cmp PrintFTBL2,x
|
||||
|
@ -819,7 +819,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
jsr MATH.Hex2ACC32
|
||||
bcs .99
|
||||
|
||||
jsr SHARED.AddYToPtr2
|
||||
jsr SHARED.AddY2P2
|
||||
.14 lda ACC32
|
||||
bra .20
|
||||
.19 lda PrintFTBL2.OUT,x
|
||||
|
@ -849,6 +849,7 @@ K.PrintF.1 sec format string->ptr2
|
|||
.80 ldy PrintF.Cnt A=0, Writing to buffer, append \0
|
||||
sta (pIOBuf),y
|
||||
clc
|
||||
|
||||
.81 >LDYA PrintF.Cnt
|
||||
* clc
|
||||
.9 jmp STDIO.Exit
|
||||
|
@ -869,7 +870,7 @@ PrintF.ESC jmp (.1,x)
|
|||
.DA PrintF.I,PrintF.II,PrintF.L
|
||||
.DA PrintF.S,PrintF.SS
|
||||
*--------------------------------------
|
||||
PrintF.B jsr STDIO.GetStackByte
|
||||
PrintF.B jsr STDIO.GetStkB
|
||||
bcs PrintF.B.RTS
|
||||
ldy #8
|
||||
|
||||
|
@ -913,7 +914,7 @@ PrintF.NUM sty .2+1
|
|||
ror ACC32.Sign save signed/unsigned flag
|
||||
jsr M32.ACC32Z
|
||||
|
||||
.1 jsr STDIO.GetStackByte
|
||||
.1 jsr STDIO.GetStkB
|
||||
bcs PrintF.B.RTS
|
||||
|
||||
sta ACC32-1,y PULL 4,2 or 1
|
||||
|
@ -962,12 +963,13 @@ PrintF.F clc
|
|||
ldy pStack+1 A,Y = float
|
||||
ldx #FPU.SETFAC
|
||||
jsr GP.ROMCALL
|
||||
ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY
|
||||
|
||||
ldy #FOUTBuf+1 FOUT.1 will do a DEY
|
||||
ldx #FPU.FOUT
|
||||
jsr GP.ROMCALL
|
||||
|
||||
PrintF.StrNum ldy #0
|
||||
.2 lda A2osX.NumStrBuf,y
|
||||
.2 lda FOUTBuf,y
|
||||
beq .8
|
||||
iny
|
||||
jsr PrintF.PutC
|
||||
|
@ -988,11 +990,11 @@ PrintF.SS ldy #$00 PSTR
|
|||
|
||||
sty .1+1
|
||||
|
||||
jsr STDIO.GetStackByte
|
||||
jsr STDIO.GetStkB
|
||||
bcs .9
|
||||
|
||||
sta ZPPtr1+1
|
||||
jsr STDIO.GetStackByte
|
||||
jsr STDIO.GetStkB
|
||||
bcs .9
|
||||
|
||||
sta ZPPtr1
|
||||
|
@ -1040,26 +1042,26 @@ PrintF.SS ldy #$00 PSTR
|
|||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
PrintF.HH jsr STDIO.GetStackByte
|
||||
bcs PrintF.PutC.RTS
|
||||
PrintF.HH jsr STDIO.GetStkB
|
||||
bcs STDIO.RTS
|
||||
pha LO byte
|
||||
jsr STDIO.GetStackByte
|
||||
jsr STDIO.GetStkB
|
||||
plx
|
||||
bcs PrintF.PutC.RTS
|
||||
bcs STDIO.RTS
|
||||
pha
|
||||
txa
|
||||
jsr PrintF.H.1
|
||||
plx
|
||||
bcs PrintF.PutC.RTS
|
||||
bcs STDIO.RTS
|
||||
txa
|
||||
bra PrintF.H.1
|
||||
*--------------------------------------
|
||||
PrintF.H jsr STDIO.GetStackByte
|
||||
bcs PrintF.PutC.RTS
|
||||
PrintF.H jsr STDIO.GetStkB
|
||||
bcs STDIO.RTS
|
||||
|
||||
PrintF.H.1 jsr STDIO.A2HexAX
|
||||
jsr PrintF.PutC
|
||||
bcs PrintF.PutC.RTS
|
||||
bcs STDIO.RTS
|
||||
txa
|
||||
*--------------------------------------
|
||||
PrintF.PutC phy
|
||||
|
@ -1078,7 +1080,7 @@ PrintF.PutC phy
|
|||
|
||||
.9 lda #E.BUF
|
||||
sec
|
||||
PrintF.PutC.RTS rts
|
||||
STDIO.RTS rts
|
||||
*/--------------------------------------
|
||||
* # ScanF (BLOCKING)
|
||||
* # FScanF (BLOCKING)
|
||||
|
@ -1142,7 +1144,7 @@ K.SScanF.1 clc format string->ptr1
|
|||
stx ZPPtr2
|
||||
sta ZPPtr2+1 Output buffer->ZPPtr2
|
||||
|
||||
sty STDIO.ExitPopCnt Total bytes to POP
|
||||
sty STDIO.PopCnt Total bytes to POP
|
||||
|
||||
ldx PrintF.hFILE
|
||||
beq .1
|
||||
|
@ -1155,10 +1157,10 @@ K.SScanF.1 clc format string->ptr1
|
|||
bcc .1
|
||||
|
||||
tax
|
||||
bne PrintF.PutC.RTS
|
||||
bne STDIO.RTS
|
||||
>RET 4
|
||||
|
||||
.1 jsr SHARED.GetCharPtr1 End Of format?
|
||||
.1 jsr SHARED.GetCP1 End Of format?
|
||||
beq .8
|
||||
|
||||
cmp #'%' Escape ?
|
||||
|
@ -1169,7 +1171,7 @@ K.SScanF.1 clc format string->ptr1
|
|||
|
||||
sta .11+1
|
||||
|
||||
jsr SHARED.GetCharPtr2
|
||||
jsr SHARED.GetCP2
|
||||
beq .9
|
||||
|
||||
.11 cmp #$ff Same char in string?
|
||||
|
@ -1177,18 +1179,18 @@ K.SScanF.1 clc format string->ptr1
|
|||
|
||||
bra .9
|
||||
|
||||
.12 jsr SHARED.GetCharPtr2
|
||||
.12 jsr SHARED.GetCP2
|
||||
beq .9
|
||||
cmp #C.SPACE
|
||||
bne .9
|
||||
|
||||
.13 jsr SHARED.GetCharPtr2
|
||||
.13 jsr SHARED.GetCP2
|
||||
cmp #C.SPACE another space ?
|
||||
beq .13
|
||||
|
||||
bra .1
|
||||
|
||||
.2 jsr SHARED.GetCharPtr1 Get specifier after %
|
||||
.2 jsr SHARED.GetCP1 Get specifier after %
|
||||
beq .9 unexpected End of format after "%" ?
|
||||
|
||||
ldx #K.SScanFJMP-K.SScanFTBL-2
|
||||
|
@ -1203,10 +1205,10 @@ K.SScanF.1 clc format string->ptr1
|
|||
sec
|
||||
jmp STDIO.Exit
|
||||
|
||||
.4 jsr STDIO.GetStackByte
|
||||
.4 jsr STDIO.GetStkB
|
||||
bcs .9
|
||||
sta ZPPtr3+1
|
||||
jsr STDIO.GetStackByte
|
||||
jsr STDIO.GetStkB
|
||||
bcs .9
|
||||
sta ZPPtr3
|
||||
|
||||
|
@ -1250,7 +1252,7 @@ K.SScanF.H lda K.SScanFTBL+1,x Get VAR size
|
|||
|
||||
jsr MATH.Hex2ACC32
|
||||
|
||||
K.SScanF.GetVAL jsr SHARED.AddYToPtr2 Y=char count parsed
|
||||
K.SScanF.GetVAL jsr SHARED.AddY2P2 Y=char count parsed
|
||||
|
||||
.1 ply get back VAL size
|
||||
|
||||
|
@ -1277,7 +1279,7 @@ K.SScanF.S ldy #$ff
|
|||
.2 lda #0 add \0 to param ptr
|
||||
sta (ZPPtr3),y
|
||||
|
||||
K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed
|
||||
K.SScanF.Fwd jmp SHARED.AddY2P2 Y=char count parsed
|
||||
*--------------------------------------
|
||||
* IN:
|
||||
* CC : format in ZPPtr1
|
||||
|
@ -1297,7 +1299,7 @@ STDIO.GetParams stz PrintF.Cnt
|
|||
lda (pStack) Bytecount
|
||||
|
||||
tay
|
||||
sty STDIO.StackBytePtr
|
||||
sty STDIO.iStkB
|
||||
|
||||
iny
|
||||
lda (pStack),y format LO
|
||||
|
@ -1340,22 +1342,15 @@ STDIO.GetParams stz PrintF.Cnt
|
|||
.1 ldx #K.IOBuf
|
||||
lda /K.IOBuf
|
||||
|
||||
STDIO.GetParams.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
STDIO.GetStackPtr
|
||||
jsr STDIO.GetStackByte
|
||||
bcs STDIO.GetParams.RTS
|
||||
tax
|
||||
*--------------------------------------
|
||||
STDIO.GetStackByte
|
||||
phy
|
||||
STDIO.GetStkB phy
|
||||
|
||||
ldy STDIO.StackBytePtr
|
||||
ldy STDIO.iStkB
|
||||
beq .9
|
||||
|
||||
lda (pStack),y
|
||||
dec STDIO.StackBytePtr
|
||||
dec STDIO.iStkB
|
||||
|
||||
ply
|
||||
clc
|
||||
|
@ -1372,7 +1367,7 @@ STDIO.Exit php
|
|||
|
||||
lda pStack
|
||||
sec
|
||||
adc STDIO.ExitPopCnt
|
||||
adc STDIO.PopCnt
|
||||
sta pStack
|
||||
|
||||
pla
|
||||
|
|
|
@ -43,7 +43,7 @@ K.AToF >STYA TXTPTR Ptr to source string
|
|||
jsr CHARGOT
|
||||
|
||||
ldx #FPU.FIN
|
||||
jmp GP.RomCallGetFacOnStack
|
||||
jmp GP.GetFac
|
||||
*/--------------------------------------
|
||||
* # StrToL/StrToUL
|
||||
* Convert String to 32 bits (unsigned) int
|
||||
|
@ -340,7 +340,7 @@ K.Expand ldy #2
|
|||
.10 lda (TXTPTR) End of CSTR?
|
||||
beq .80
|
||||
|
||||
jsr SHARED.TXTPTR.Next
|
||||
jsr SHARED.TXTPTRn
|
||||
|
||||
.11 cmp #'''
|
||||
bne .21
|
||||
|
@ -374,13 +374,13 @@ K.Expand ldy #2
|
|||
|
||||
dec ENV.VarEndChar "}" expected
|
||||
|
||||
jsr SHARED.TXTPTR.Next skip "{"
|
||||
jsr SHARED.TXTPTRn skip "{"
|
||||
bra .40
|
||||
|
||||
.31 jsr ENV.SysVar 0-9 *#?@$!
|
||||
bcs .40
|
||||
|
||||
.35 jsr SHARED.TXTPTR.Next skip $x
|
||||
.35 jsr SHARED.TXTPTRn skip $x
|
||||
bra .10
|
||||
|
||||
.40 jsr ENV.ExpandStrVar
|
||||
|
@ -408,7 +408,7 @@ K.Expand ldy #2
|
|||
|
||||
jsr SHARED.IsIDValid
|
||||
bcs .72
|
||||
jsr SHARED.TXTPTR.Next
|
||||
jsr SHARED.TXTPTRn
|
||||
bra .70
|
||||
|
||||
.72 lda ENV.VarEndChar
|
||||
|
@ -465,7 +465,7 @@ ENV.SysVarsNum jsr MATH.A2STR10NP
|
|||
|
||||
ldy #0
|
||||
|
||||
.1 lda A2osX.NumStrBuf,y
|
||||
.1 lda FOUTBuf,y
|
||||
beq ENV.SysVarsNum.8
|
||||
|
||||
iny
|
||||
|
|
|
@ -35,8 +35,8 @@ K.StrLen >STYA .1+1
|
|||
* `char * strcat ( char * destination, const char * source );`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHWI destination`
|
||||
* `>PUSHWI source`
|
||||
* `>LDYAI destination`
|
||||
* `>SYSCALL strcat`
|
||||
* ## RETURN VALUE
|
||||
* Y,A = destination
|
||||
|
@ -50,8 +50,8 @@ K.StrCat sec
|
|||
* `char * strcpy ( char * destination, const char * source );`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHWI destination`
|
||||
* `>PUSHWI source`
|
||||
* `>LDYAI destination`
|
||||
* `>SYSCALL strcpy`
|
||||
* ## RETURN VALUE
|
||||
* Y,A = destination
|
||||
|
@ -59,11 +59,11 @@ K.StrCat sec
|
|||
K.StrCpy clc
|
||||
phy
|
||||
pha
|
||||
jsr SHARED.SPtr1PPtr2
|
||||
jsr SHARED.PullP2P1
|
||||
|
||||
bcc .2
|
||||
|
||||
.1 jsr SHARED.GetCharPtr1
|
||||
.1 jsr SHARED.GetCP1
|
||||
bne .1
|
||||
|
||||
.2 ldy #0
|
||||
|
@ -185,8 +185,8 @@ K.StrLwr ldx #2
|
|||
* `int strcmp(const char *s1, const char *s2);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHWI s1`
|
||||
* `>PUSHWI s2`
|
||||
* `>LDYAI s1`
|
||||
* `>SYSCALL strcmp`
|
||||
* ## RETURN VALUE
|
||||
* CC : match
|
||||
|
@ -203,8 +203,8 @@ K.StrCmp sec
|
|||
* `int strcasecmp(const char *s1, const char *s2);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHWI s1`
|
||||
* `>PUSHWI s2`
|
||||
* `>LDYAI s1`
|
||||
* `>SYSCALL strcasecmp`
|
||||
* ## RETURN VALUE
|
||||
* CC : match
|
||||
|
@ -213,19 +213,19 @@ K.StrCmp sec
|
|||
* CS, Y,A > 0 or < 0
|
||||
*\--------------------------------------
|
||||
K.StrCaseCmp clc
|
||||
jsr SHARED.SPtr1PPtr2
|
||||
jsr SHARED.PullP2P1
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda (ZPPtr1),y
|
||||
beq .7
|
||||
|
||||
jsr K.StrCaseCmp.toUpper
|
||||
jsr .80
|
||||
sta .2+1
|
||||
lda (ZPPtr2),y
|
||||
beq .9
|
||||
|
||||
jsr K.StrCaseCmp.toUpper
|
||||
jsr .80
|
||||
|
||||
.2 eor #$ff SELF MODIFIED
|
||||
bne .9
|
||||
|
@ -252,22 +252,19 @@ K.StrCaseCmp clc
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.StrCaseCmp.toUpper
|
||||
bcs .9
|
||||
.80 bcs .99
|
||||
|
||||
cmp #'a'
|
||||
bcc .9
|
||||
bcc .99
|
||||
|
||||
cmp #'z'+1
|
||||
bcs .1
|
||||
bcs .81
|
||||
|
||||
eor #$20
|
||||
|
||||
.1 clc
|
||||
.81 clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SHARED.SPtr1PPtr2
|
||||
>STYA ZPPtr1
|
||||
>PULLW ZPPtr2
|
||||
rts
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.string
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
STRVX.StrVFree jsr K.FreeMem
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
STRVX.StrVNew jsr K.GetMem
|
||||
bcs .9
|
||||
|
||||
|
@ -21,7 +26,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
|||
ldy #$ff
|
||||
|
||||
.1 iny
|
||||
jsr SHARED.FORPNT.GetY
|
||||
jsr SHARED.FORPNTgY
|
||||
bne .1
|
||||
|
||||
tya
|
||||
|
@ -44,7 +49,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
|||
.2 ldy #$ff
|
||||
|
||||
.3 iny
|
||||
jsr SHARED.FORPNT.GetY
|
||||
jsr SHARED.FORPNTgY
|
||||
sta (ZPPtr1),y
|
||||
bne .3
|
||||
|
||||
|
@ -74,14 +79,14 @@ STRVX.StrVSet jsr STRVX.GetID
|
|||
sta (ZPPtr2),y
|
||||
bne .6
|
||||
|
||||
jsr SHARED.AddYp1ToPtr1
|
||||
jsr SHARED.AddYp1ToPtr2
|
||||
jsr SHARED.AddYp12P1
|
||||
jsr SHARED.AddYp12P2
|
||||
bra .40
|
||||
*--------------------------------------
|
||||
.7 ldy #$ff
|
||||
|
||||
.8 iny
|
||||
jsr SHARED.FORPNT.GetY
|
||||
jsr SHARED.FORPNTgY
|
||||
bne .8
|
||||
|
||||
tya
|
||||
|
@ -109,7 +114,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
|||
.10 ldy #$ff
|
||||
|
||||
.11 iny
|
||||
jsr SHARED.FORPNT.GetY
|
||||
jsr SHARED.FORPNTgY
|
||||
sta (ZPPtr1),y
|
||||
bne .11
|
||||
|
||||
|
@ -138,7 +143,7 @@ STRVX.StrVGet jsr STRVX.GetID
|
|||
|
||||
.5 iny
|
||||
lda (ZPPtr1),y
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
bne .5
|
||||
|
||||
>LDYA FORPNT
|
||||
|
@ -149,11 +154,6 @@ STRVX.StrVGet jsr STRVX.GetID
|
|||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
STRVX.StrVFree jsr K.FreeMem
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
STRVX.GetID jsr K.GetMemPtr
|
||||
>STYA ZPPtr1 strV
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ DRV.TERM cld
|
|||
*--------------------------------------
|
||||
TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
tay
|
||||
bra TERM.TOAUX
|
||||
|
|
|
@ -41,7 +41,7 @@ TERMX .DA TERMX.STATUS
|
|||
TERMX.STATUS tya
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne .3
|
||||
|
||||
ldy #S.DIB-1
|
||||
|
@ -55,13 +55,13 @@ TERMX.STATUS tya
|
|||
dey
|
||||
bne .2
|
||||
|
||||
ldy #S.DCB.TTY.STATUS
|
||||
ldy #S.DCB.TTY.S
|
||||
lda (ZPDCBPtr),y
|
||||
sta (ZPBufPtr)
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
.3 cmp #S.IOCTL.S.EOF
|
||||
bne .9
|
||||
|
||||
jsr TERMX.ISOPENED
|
||||
|
@ -120,7 +120,7 @@ TERMX.OPEN jsr TERMX.ISOPENED
|
|||
|
||||
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||
|
||||
ldy #S.DCB.TTY.STATUS
|
||||
ldy #S.DCB.TTY.S
|
||||
lda (ZPDCBPtr),y
|
||||
ora #S.DIB.S.OPENED
|
||||
ora TERMX.DIB+S.DIB.S
|
||||
|
@ -171,7 +171,7 @@ TERMX.CLOSE jsr TERMX.ISOPENED
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
TERMX.ISOPENED ldy #S.DCB.TTY.STATUS
|
||||
TERMX.ISOPENED ldy #S.DCB.TTY.S
|
||||
lda (ZPDCBPtr),y
|
||||
bit #S.DIB.S.OPENED
|
||||
rts
|
||||
|
@ -279,7 +279,7 @@ TERMX.WRITE jsr TERMX.CUROFF
|
|||
inc ZPCnt+1
|
||||
beq .8
|
||||
|
||||
.2 ldy #S.DCB.TTY.MODE
|
||||
.2 ldy #S.DCB.TTY.M
|
||||
lda (ZPDCBPtr),y
|
||||
tax
|
||||
jsr .3
|
||||
|
@ -306,7 +306,7 @@ TERMX.OUT jsr TERM.GetBufByte
|
|||
cmp #IAC
|
||||
bne .1
|
||||
|
||||
lda #S.DCB.TTY.MODE.IAC
|
||||
lda #S.DCB.TTY.M.IAC
|
||||
jmp TERMX.SETM
|
||||
|
||||
.1 cmp #C.DEL
|
||||
|
@ -421,10 +421,10 @@ TERMX.OUT.SI clc
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
TERMX.OUT.ESC lda #S.DCB.TTY.MODE.ESC
|
||||
TERMX.OUT.ESC lda #S.DCB.TTY.M.ESC
|
||||
bra TERMX.SETM
|
||||
*--------------------------------------
|
||||
TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE
|
||||
TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.M
|
||||
|
||||
ldx #EscCodes.Cnt-1
|
||||
.2 cmp EscCodes,x
|
||||
|
@ -450,19 +450,18 @@ TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE
|
|||
.DA Scroll.Dn M
|
||||
.DA Scroll.Up D
|
||||
.DA RESET c
|
||||
.DA TERMX.SETM.RTS [
|
||||
.DA TERMX.SETM.RTS (
|
||||
.DA TERMX.SETM.RTS )
|
||||
.DA TERMX.RTS [
|
||||
.DA TERMX.RTS (
|
||||
.DA TERMX.RTS )
|
||||
*--------------------------------------
|
||||
TERMX.SETM0 lda #0
|
||||
TERMX.SETM ldy #S.DCB.TTY.MODE
|
||||
TERMX.SETM ldy #S.DCB.TTY.M
|
||||
sta (ZPDCBPtr),y
|
||||
ldy #S.DCB.TTY.INBUF
|
||||
lda #S.DCB.TTY.INBUF
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
|
||||
TERMX.SETM.RTS rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
TERMX.CSI ldy #S.DCB.TTY.INBUF
|
||||
lda (ZPDCBPtr),y
|
||||
|
@ -501,12 +500,12 @@ TERMX.CSI.Exec stz CsiH
|
|||
|
||||
sta CsiH
|
||||
|
||||
.1 jsr SHARED.NextCharPtr2
|
||||
.1 jsr SHARED.NextCP2
|
||||
|
||||
.2 jsr MATH.Dec2ACC32
|
||||
bcs .5
|
||||
|
||||
jsr SHARED.AddYToPtr2
|
||||
jsr SHARED.AddY2P2
|
||||
lda #255
|
||||
ldx ACC32+1
|
||||
bne .3
|
||||
|
@ -921,12 +920,12 @@ COUT.IAC.DONT
|
|||
COUT.IAC.EXIT
|
||||
*--------------------------------------
|
||||
RESET.MODE lda #0
|
||||
ldy #S.DCB.TTY.MODE
|
||||
ldy #S.DCB.TTY.M
|
||||
sta (ZPDCBPtr),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
RESET ldy #S.DCB.TTY.MODE
|
||||
.1 lda RESET.VALUES-S.DCB.TTY.MODE,y
|
||||
RESET ldy #S.DCB.TTY.M
|
||||
.1 lda RESET.VALUES-S.DCB.TTY.M,y
|
||||
sta (ZPDCBPtr),y
|
||||
iny
|
||||
cpy #S.DCB.TTY.INBUF+1
|
||||
|
@ -1076,16 +1075,16 @@ TERMX.CBLNK bit bActive
|
|||
.9 rts
|
||||
|
||||
TERMX.CUROFF bit bActive
|
||||
bpl TERMX.CBLNK.RTS
|
||||
bpl TERMX.RTS
|
||||
ldy #S.DCB.TTY.bCURON
|
||||
lda (ZPDCBPtr),y
|
||||
beq TERMX.CBLNK.RTS
|
||||
beq TERMX.RTS
|
||||
|
||||
TERMX.CBLNK.1 lda (ZPDCBPtr),y
|
||||
bne TERMX.CBLNK.OFF
|
||||
|
||||
jsr GetCharAtCurPos
|
||||
bcs TERMX.CBLNK.RTS Out of screen
|
||||
bcs TERMX.RTS Out of screen
|
||||
|
||||
and #$80
|
||||
eor #" "
|
||||
|
@ -1101,14 +1100,14 @@ TERMX.CBLNK.SET
|
|||
TERMX.CBLNK.OFF
|
||||
jsr GetCharAtCurPos
|
||||
bcc TERMX.CBLNK.SET if not Out of screen
|
||||
TERMX.CBLNK.RTS
|
||||
rts
|
||||
|
||||
TERMX.RTS rts
|
||||
*--------------------------------------
|
||||
DecOut jsr MATH.A2STR10NP
|
||||
|
||||
ldx #0
|
||||
.1 lda A2osX.NumStrBuf,x
|
||||
beq TERMX.CBLNK.RTS
|
||||
.1 lda FOUTBuf,x
|
||||
beq TERMX.RTS
|
||||
inx
|
||||
jsr Char.Out.Put
|
||||
bra .1
|
||||
|
@ -1225,7 +1224,7 @@ TERMX.CLRSCR.2 sty .1+1
|
|||
*--------------------------------------
|
||||
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||
lda (ZPDCBPtr),y
|
||||
bmi TERMX.Title.RTS
|
||||
bmi TERMX.RTS2
|
||||
|
||||
lda #$ff
|
||||
sta (ZPDCBPtr),y
|
||||
|
@ -1240,7 +1239,7 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
|||
|
||||
ldy #0
|
||||
|
||||
.1 jsr SHARED.TXTPTR.GetNext
|
||||
.1 jsr SHARED.TXTPTRgn
|
||||
beq .3
|
||||
|
||||
cmp #$40
|
||||
|
@ -1264,11 +1263,12 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
|||
cpy #80
|
||||
bne .4
|
||||
|
||||
TERMX.Title.RTS rts
|
||||
TERMX.RTS2 rts
|
||||
|
||||
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
||||
lda (ZPDCBPtr),y
|
||||
bpl TERMX.Title.RTS
|
||||
bpl TERMX.RTS2
|
||||
|
||||
lda #$0
|
||||
sta (ZPDCBPtr),y
|
||||
*--------------------------------------
|
||||
|
@ -1455,7 +1455,7 @@ CtrlChars.Cnt .EQ *-CtrlChars
|
|||
*--------------------------------------
|
||||
EscCodes .AZ "78MDc[()"
|
||||
EscCodes.Cnt .EQ *-EscCodes
|
||||
EscModes .DA #0,#0,#0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1
|
||||
EscModes .DA #0,#0,#0,#0,#0,#S.DCB.TTY.M.CSI,#S.DCB.TTY.M.G0,#S.DCB.TTY.M.G1
|
||||
CsiCodes .AS "hlmnrABCDJKH"
|
||||
CsiCodes.Cnt .EQ *-CsiCodes
|
||||
*--------------------------------------
|
||||
|
|
|
@ -13,17 +13,17 @@ DAY0 .EQ 4 day 0 was a thursday
|
|||
* TXTPTR format
|
||||
*--------------------------------------
|
||||
TIMEX.StrFTime
|
||||
.1 jsr SHARED.TXTPTR.GetNext
|
||||
.1 jsr SHARED.TXTPTRgn
|
||||
beq .8
|
||||
|
||||
cmp #'%'
|
||||
beq .2
|
||||
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
bra .1
|
||||
|
||||
.2 ldx #K.StrFTime.Cnt-1
|
||||
jsr SHARED.TXTPTR.GetNext
|
||||
jsr SHARED.TXTPTRgn
|
||||
beq .8
|
||||
|
||||
.3 cmp K.StrFTime.Tbl,x
|
||||
|
@ -47,7 +47,7 @@ TIMEX.StrFTime
|
|||
.7 jmp (K.StrFTime.JMP,x)
|
||||
|
||||
.8 lda #0 Terminate C string
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -83,7 +83,7 @@ K.StrFTime.STR sta ZPPtr4
|
|||
bcc .10
|
||||
ldx #3
|
||||
|
||||
.10 jsr SHARED.ZPPtr3.GetY get required S.Time field value
|
||||
.10 jsr SHARED.P3gY get required S.Time field value
|
||||
|
||||
tay
|
||||
beq .2 Illegal value, print ???
|
||||
|
@ -100,7 +100,7 @@ K.StrFTime.STR sta ZPPtr4
|
|||
|
||||
.3 iny
|
||||
lda (ZPPtr4),y
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
tya
|
||||
cmp (ZPPtr4)
|
||||
beq .8
|
||||
|
@ -110,22 +110,22 @@ K.StrFTime.STR sta ZPPtr4
|
|||
.8 rts
|
||||
*--------------------------------------
|
||||
K.StrFTime.II ldy #S.Time.HOUR
|
||||
jsr SHARED.ZPPtr3.GetY
|
||||
jsr SHARED.P3gY
|
||||
cmp #12
|
||||
bcc K.StrFTime.addDecA
|
||||
sbc #12
|
||||
bra K.StrFTime.addDecA
|
||||
|
||||
K.StrFTime.P ldy #S.Time.HOUR
|
||||
jsr SHARED.ZPPtr3.GetY
|
||||
jsr SHARED.P3gY
|
||||
cmp #12
|
||||
bcc .1
|
||||
lda #'p'
|
||||
.HS 2C bit abs
|
||||
.1 lda #'a'
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
jsr SHARED.FORPNTpn
|
||||
lda #'m'
|
||||
jmp SHARED.FORPNT.PutNext
|
||||
jmp SHARED.FORPNTpn
|
||||
t
|
||||
K.StrFTime.YY ldy #S.Time.CENTURY
|
||||
jsr K.StrFTime.addDecPtr3Y
|
||||
|
@ -133,16 +133,16 @@ K.StrFTime.YY ldy #S.Time.CENTURY
|
|||
K.StrFTime.AtX ldy K.StrFTime.OfsX-7,x
|
||||
*--------------------------------------
|
||||
K.StrFTime.addDecPtr3Y
|
||||
jsr SHARED.ZPPtr3.GetY
|
||||
jsr SHARED.P3gY
|
||||
K.StrFTime.addDecA
|
||||
ldx #2
|
||||
ldy #'0'
|
||||
clc
|
||||
jsr MATH.A2STR10
|
||||
lda A2osX.NumStrBuf
|
||||
jsr SHARED.FORPNT.PutNext
|
||||
lda A2osX.NumStrBuf+1
|
||||
jmp SHARED.FORPNT.PutNext
|
||||
lda FOUTBuf
|
||||
jsr SHARED.FORPNTpn
|
||||
lda FOUTBuf+1
|
||||
jmp SHARED.FORPNTpn
|
||||
*--------------------------------------
|
||||
TIMEX.DAY >PSTR "???"
|
||||
>PSTR "Monday"
|
||||
|
@ -173,25 +173,25 @@ TIMEX.PTime2Time.BAD
|
|||
rts
|
||||
TIMEX.PTime2Time
|
||||
ldy #3
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
and #%11100000
|
||||
bne TIMEX.PTime2Time.BAD
|
||||
|
||||
dey
|
||||
jsr SHARED.TXTPTR.GetY
|
||||
jsr SHARED.TXTPTRgY
|
||||
and #%11000000
|
||||
bne TIMEX.PTime2Time.BAD
|
||||
|
||||
dey ldy #1
|
||||
|
||||
jsr SHARED.TXTPTR.GetY Get Year
|
||||
jsr SHARED.TXTPTRgY Get Year
|
||||
lsr C is high bit of month
|
||||
ldy #S.Time.YEAR
|
||||
jsr SHARED.FORPNT.PutY set year
|
||||
jsr SHARED.FORPNTpY set year
|
||||
sta ARG32+3 for computing Century/WDAY later
|
||||
|
||||
ldy #0
|
||||
jsr SHARED.TXTPTR.GetY Get Month/day
|
||||
jsr SHARED.TXTPTRgY Get Month/day
|
||||
|
||||
tax save Day
|
||||
ror C is high bit of month
|
||||
|
@ -205,7 +205,7 @@ TIMEX.PTime2Time
|
|||
bcs TIMEX.PTime2Time.BAD
|
||||
|
||||
ldy #S.Time.MONTH
|
||||
jsr SHARED.FORPNT.PutY set month
|
||||
jsr SHARED.FORPNTpY set month
|
||||
sta K.ComputeWDAY.1+1
|
||||
|
||||
txa get back day
|
||||
|
@ -216,7 +216,7 @@ TIMEX.PTime2Time
|
|||
bcs TIMEX.PTime2Time.BAD
|
||||
|
||||
iny
|
||||
jsr SHARED.FORPNT.PutY set day
|
||||
jsr SHARED.FORPNTpY set day
|
||||
|
||||
dec adjust range 0.30 for MOD 7
|
||||
sta ARG32.Sign For later...
|
||||
|
@ -231,22 +231,22 @@ TIMEX.PTime2Time
|
|||
eor #1 toggle C
|
||||
adc #19 set date before 1970 -> 20xx
|
||||
ldy #0
|
||||
jsr SHARED.FORPNT.PutY set Century
|
||||
jsr SHARED.FORPNTpY set Century
|
||||
sta ARG32+2 for computing WDAY later
|
||||
|
||||
ldy #2
|
||||
jsr SHARED.TXTPTR.GetY Get Min
|
||||
jsr SHARED.TXTPTRgY Get Min
|
||||
tax
|
||||
iny
|
||||
jsr SHARED.TXTPTR.GetY Get Hour
|
||||
jsr SHARED.TXTPTRgY Get Hour
|
||||
ldy #S.Time.HOUR
|
||||
jsr SHARED.FORPNT.PutY set hour
|
||||
jsr SHARED.FORPNTpY set hour
|
||||
iny
|
||||
txa
|
||||
jsr SHARED.FORPNT.PutY set min
|
||||
jsr SHARED.FORPNTpY set min
|
||||
iny
|
||||
lda #0
|
||||
jsr SHARED.FORPNT.PutY set seconds (ProDOS does not provide it)
|
||||
jsr SHARED.FORPNTpY set seconds (ProDOS does not provide it)
|
||||
*--------------------------------------
|
||||
* 1/1/1970 was Thursday...if not leap, add one, if leap add 2
|
||||
*--------------------------------------
|
||||
|
@ -324,7 +324,7 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month
|
|||
ldy #S.Time.WDAY
|
||||
|
||||
* clc
|
||||
jmp SHARED.FORPNT.PutY
|
||||
jmp SHARED.FORPNTpY
|
||||
*--------------------------------------
|
||||
* TXTPTR ctime
|
||||
* FORPNT S.TIME
|
||||
|
@ -332,7 +332,7 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month
|
|||
TIMEX.CTime2Time
|
||||
ldy #3
|
||||
|
||||
.1 jsr SHARED.TXTPTR.GetY
|
||||
.1 jsr SHARED.TXTPTRgY
|
||||
sta ARG32,y ARG = ctime
|
||||
dey
|
||||
bpl .1
|
||||
|
@ -366,7 +366,7 @@ TIMEX.CTime2Time
|
|||
|
||||
tya
|
||||
ldy #S.Time.WDAY
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
|
||||
ldy #CENT0
|
||||
sty ZPPtr3
|
||||
|
@ -402,11 +402,11 @@ K.CTime2Time.Y
|
|||
|
||||
lda ZPPtr3
|
||||
ldy #S.Time.CENTURY
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
|
||||
ldy #S.Time.YEAR
|
||||
lda ZPPtr3+1
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
K.CTime2Time.MD
|
||||
ldx #1 X = January
|
||||
|
||||
|
@ -442,13 +442,13 @@ K.CTime2Time.MD
|
|||
.4 pla
|
||||
ldy #S.TIME.MONTH
|
||||
txa
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
|
||||
iny S.TIME.DAY
|
||||
|
||||
lda ARG32
|
||||
inc
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
|
||||
K.CTime2Time.HMS
|
||||
ldx #3
|
||||
|
@ -467,7 +467,7 @@ K.CTime2Time.HMS
|
|||
|
||||
dey #S.TIME.HOUR
|
||||
lda ARG32
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
|
||||
clc
|
||||
rts
|
||||
|
@ -479,7 +479,7 @@ K.CTime2Time.HMS
|
|||
jsr M32.DIVMOD
|
||||
ply
|
||||
lda TMP32
|
||||
jsr SHARED.FORPNT.PutY
|
||||
jsr SHARED.FORPNTpY
|
||||
rts
|
||||
*--------------------------------------
|
||||
* In :
|
||||
|
|
|
@ -21,12 +21,12 @@ K.Open jsr PFT.YAToMLIPATH
|
|||
stz IO.Open.AUXTYPE
|
||||
stz IO.Open.AUXTYPE+1
|
||||
*--------------------------------------
|
||||
UNISTD.Open ldx #5 /dev/
|
||||
IO.Open ldx #5 /dev/
|
||||
cpx K.MLI.PATH
|
||||
bcs .8
|
||||
|
||||
.1 lda K.MLI.PATH,x
|
||||
cmp UNISTD.DEV-1,x
|
||||
cmp IO.DEV-1,x
|
||||
bne .8
|
||||
dex
|
||||
bne .1
|
||||
|
@ -47,11 +47,11 @@ UNISTD.Open ldx #5 /dev/
|
|||
.2
|
||||
* .DA STDIO.IOERR REG
|
||||
.DA STDIO.IOERR DIR
|
||||
.DA IO.OPEN.CDEV
|
||||
.DA IO.OPEN.BDEV
|
||||
.DA IO.OPEN.DEV
|
||||
.DA IO.OPEN.DEV
|
||||
.DA STDIO.IOERR LNK
|
||||
.DA IO.OPEN.DSOCK
|
||||
.DA IO.OPEN.SSOCK
|
||||
.DA IO.OPEN.SOCK
|
||||
.DA IO.OPEN.SOCK
|
||||
.DA IO.OPEN.PIPE
|
||||
|
||||
.8 jmp FS.OPEN.REG
|
||||
|
@ -68,16 +68,16 @@ UNISTD.Open ldx #5 /dev/
|
|||
*\--------------------------------------
|
||||
K.Close jsr DEV.GetPFD
|
||||
|
||||
UNISTD.Close lda (pFD) #S.FD.T
|
||||
IO.Close lda (pFD) #S.FD.T
|
||||
tax
|
||||
jmp (.1,x)
|
||||
.1 .DA FS.CLOSE.REG
|
||||
.DA FS.CLOSE.DIR
|
||||
.DA IO.CLOSE.CDEV
|
||||
.DA IO.CLOSE.BDEV
|
||||
.DA IO.CLOSE.DEV
|
||||
.DA IO.CLOSE.DEV
|
||||
.DA STDIO.IOERR LNK
|
||||
.DA IO.CLOSE.DSOCK
|
||||
.DA IO.CLOSE.SSOCK
|
||||
.DA IO.CLOSE.SOCK
|
||||
.DA IO.CLOSE.SOCK
|
||||
.DA IO.CLOSE.PIPE
|
||||
*/--------------------------------------
|
||||
* # read
|
||||
|
@ -95,7 +95,7 @@ UNISTD.Close lda (pFD) #S.FD.T
|
|||
*\--------------------------------------
|
||||
K.Read jsr DEV.GetPFD
|
||||
|
||||
UNISTD.Read lda (pFD) #S.FD.T
|
||||
IO.Read lda (pFD) #S.FD.T
|
||||
tax
|
||||
jmp (.1,x)
|
||||
.1 .DA FS.READ.REG
|
||||
|
@ -122,7 +122,7 @@ UNISTD.Read lda (pFD) #S.FD.T
|
|||
*\--------------------------------------
|
||||
K.Write jsr DEV.GetPFD
|
||||
|
||||
UNISTD.Write lda (pFD) #S.FD.T
|
||||
IO.Write lda (pFD) #S.FD.T
|
||||
tax
|
||||
jmp (.1,x)
|
||||
.1 .DA FS.WRITE.REG
|
||||
|
@ -134,19 +134,16 @@ UNISTD.Write lda (pFD) #S.FD.T
|
|||
.DA IO.WRITE.SSOCK
|
||||
.DA IO.WRITE.PIPE
|
||||
*--------------------------------------
|
||||
IO.OPEN.CDEV
|
||||
IO.OPEN.BDEV ldx #IOCTL.OPEN
|
||||
IO.OPEN.DEV ldx #IOCTL.OPEN
|
||||
lda IO.hDevNod
|
||||
jsr DEV.pDrvJmp
|
||||
bcs IO.WRITE.CDEV.RTS
|
||||
bcs IO.RTS
|
||||
*--------------------------------------
|
||||
IO.OPEN.DSOCK
|
||||
IO.OPEN.SSOCK lda IO.hDevNod
|
||||
IO.OPEN.SOCK lda IO.hDevNod
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.CLOSE.CDEV
|
||||
IO.CLOSE.BDEV ldx #IOCTL.CLOSE
|
||||
IO.CLOSE.DEV ldx #IOCTL.CLOSE
|
||||
lda IO.hDevNod
|
||||
jmp DEV.pDrvJmp
|
||||
*--------------------------------------
|
||||
|
@ -160,17 +157,13 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
|
|||
|
||||
>LDYAI K.S.IOCTL
|
||||
jsr DEV.pDrvJmp
|
||||
bcs .9
|
||||
bcs IO.RTS
|
||||
|
||||
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
|
||||
.9
|
||||
IO.WRITE.CDEV.RTS
|
||||
rts
|
||||
IO.RTS rts
|
||||
*--------------------------------------
|
||||
IO.CLOSE.DSOCK
|
||||
IO.CLOSE.SSOCK
|
||||
ldy #S.FD.SSOCK.CLOSE
|
||||
IO.CLOSE.SOCK ldy #S.FD.SSOCK.CLOSE
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
||||
|
@ -184,14 +177,14 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
|||
lda (pFD),y
|
||||
tax Function Offset in LIB
|
||||
|
||||
ldy #S.FD.SSOCK.IOHANDLER
|
||||
ldy #S.FD.SSOCK.IOH
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
lda IO.hFD
|
||||
.1 jmp $FFFF SELF MODIFIED
|
||||
*--------------------------------------
|
||||
IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
|
||||
IO.EOF.CDEV lda #S.IOCTL.S.EOF
|
||||
jmp DEV.GetDevStatus
|
||||
*/--------------------------------------
|
||||
* # ChOwn
|
||||
|
@ -206,12 +199,12 @@ IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
|
|||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.ChOwn jsr PFT.CheckPath2
|
||||
bcs K.ChOwn.RET4
|
||||
bcs .9
|
||||
|
||||
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
||||
|
||||
>MLICALL MLIACL
|
||||
bcs K.ChOwn.RET4
|
||||
bcs .9
|
||||
|
||||
lda (pStack)
|
||||
bmi .1
|
||||
|
@ -229,9 +222,9 @@ K.ChOwn jsr PFT.CheckPath2
|
|||
|
||||
>MLICALL MLIACL
|
||||
|
||||
K.ChOwn.RET4 >RET 4
|
||||
.9 >RET 4
|
||||
*--------------------------------------
|
||||
UNISTD.DEV .AS "/dev/"
|
||||
IO.DEV .AS "/dev/"
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/kernel.s.unistd
|
||||
|
|
|
@ -23,31 +23,32 @@ NEW
|
|||
A2osX.Unpak >STYA ZPOutBufPtr
|
||||
.INB usr/src/shared/x.unpak.s
|
||||
|
||||
PAKME.MAIN .DA A2osX.MAIN
|
||||
PAKME.AUX .DA A2osX.AUX
|
||||
PAKME.GP .DA A2osX.GP
|
||||
PAKME.D1 .DA A2osX.D1
|
||||
PAKME.D2 .DA A2osX.D2
|
||||
PAKME.E0 .DA A2osX.E0
|
||||
PAKME.MAIN .DA MAIN
|
||||
PAKME.AUX .DA AUX
|
||||
PAKME.GP .DA GP
|
||||
PAKME.D1 .DA D1
|
||||
PAKME.D2 .DA D2
|
||||
PAKME.E0 .DA E0
|
||||
|
||||
A2osX.MAIN .DA #0
|
||||
.DA A2osX.MAIN.S
|
||||
MAIN .DA #0
|
||||
.DA MAIN.S
|
||||
|
||||
A2osX.MAIN.B .PH A2osX.EndTables
|
||||
MAIN.B .PH A2osX.EndTables
|
||||
.INB usr/src/sys/kernel.s.core
|
||||
.INB usr/src/sys/kernel.s.drv
|
||||
.INB usr/src/sys/kernel.s.pft
|
||||
.INB usr/src/sys/kernel.s.fs
|
||||
.INB usr/src/sys/kernel.s.mathf
|
||||
Mem.MLoMem .EQ *
|
||||
.EP
|
||||
A2osX.MAIN.S .EQ *-A2osX.MAIN.B
|
||||
MAIN.S .EQ *-MAIN.B
|
||||
|
||||
A2osX.AUX .DA #0
|
||||
.DA A2osX.AUX.S
|
||||
AUX .DA #0
|
||||
.DA AUX.S
|
||||
|
||||
A2osX.AUX.B .PH Mem.XHiMem
|
||||
AUX.B .PH Mem.XHiMem
|
||||
|
||||
.DA SHARED.TXTPTR.GetNext
|
||||
.DA SHARED.TXTPTRgn
|
||||
|
||||
.INB usr/src/sys/kernel.s.jmpx
|
||||
.INB usr/src/sys/kernel.s.termx
|
||||
|
@ -57,24 +58,23 @@ A2osX.AUX.B .PH Mem.XHiMem
|
|||
.INB usr/src/sys/kernel.s.md5x
|
||||
.INB usr/src/sys/kernel.s.pwdx
|
||||
.INB usr/src/sys/kernel.s.slistx
|
||||
* .INB usr/src/sys/kernel.s.blistx
|
||||
.INB usr/src/sys/kernel.s.blistx
|
||||
.INB usr/src/sys/kernel.s.errorx
|
||||
.EP
|
||||
A2osX.AUX.S .EQ *-A2osX.AUX.B
|
||||
AUX.S .EQ *-AUX.B
|
||||
|
||||
A2osX.GP .DA #0
|
||||
.DA A2osX.GP.S
|
||||
GP .DA #0
|
||||
.DA GP.S
|
||||
|
||||
A2osX.GP.B .PH A2osX.SYSCALL
|
||||
GP.B .PH A2osX.SYSCALL
|
||||
.INB usr/src/sys/kernel.s.gp
|
||||
A2osX.GP.SC .EQ GP.CodeEnd-GP.CodeStart
|
||||
.EP
|
||||
A2osX.GP.S .EQ *-A2osX.GP.B
|
||||
GP.S .EQ *-GP.B
|
||||
|
||||
A2osX.D1 .DA #0
|
||||
.DA A2osX.D1.S
|
||||
D1 .DA #0
|
||||
.DA D1.S
|
||||
|
||||
A2osX.D1.B .PH $D000
|
||||
D1.B .PH $D000
|
||||
.DA #RRAMWRAMBNK1
|
||||
.INB usr/src/sys/kernel.s.stat
|
||||
.INB usr/src/sys/kernel.s.dirent
|
||||
|
@ -83,12 +83,12 @@ A2osX.D1.B .PH $D000
|
|||
.INB usr/src/sys/kernel.s.dev
|
||||
.INB usr/src/sys/kernel.s.pipe
|
||||
.EP
|
||||
A2osX.D1.S .EQ *-A2osX.D1.B
|
||||
D1.S .EQ *-D1.B
|
||||
|
||||
A2osX.D2 .DA #0
|
||||
.DA A2osX.D2.S
|
||||
D2 .DA #0
|
||||
.DA D2.S
|
||||
|
||||
A2osX.D2.B .PH $D000
|
||||
D2.B .PH $D000
|
||||
.DA #RRAMWRAMBNK2
|
||||
.INB usr/src/sys/kernel.s.mount
|
||||
.INB usr/src/sys/kernel.s.arg
|
||||
|
@ -98,12 +98,12 @@ A2osX.D2.B .PH $D000
|
|||
.INB usr/src/sys/kernel.s.bin
|
||||
.INB usr/src/sys/kernel.s.ps
|
||||
.EP
|
||||
A2osX.D2.S .EQ *-A2osX.D2.B
|
||||
D2.S .EQ *-D2.B
|
||||
|
||||
A2osX.E0 .DA #0
|
||||
.DA A2osX.E0.S
|
||||
E0 .DA #0
|
||||
.DA E0.S
|
||||
|
||||
A2osX.E0.B .PH $E000
|
||||
E0.B .PH $E000
|
||||
.INB usr/src/sys/kernel.s.jmp
|
||||
.INB usr/src/sys/kernel.s.irq
|
||||
.INB usr/src/sys/kernel.s.shared
|
||||
|
@ -127,7 +127,8 @@ DevMgr.Free .DA DevMgr.FreeMem
|
|||
.DA DevMgr.HiMem
|
||||
DevMgr.FreeMem .EQ *
|
||||
.EP
|
||||
A2osX.E0.S .EQ *-A2osX.E0.B
|
||||
|
||||
E0.S .EQ *-E0.B
|
||||
|
||||
.AS "PAKME" TAG
|
||||
.DA $2000 BIN ORG
|
||||
|
|
Loading…
Reference in New Issue