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. | |
|
| 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. | |
|
| 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. | |
|
| 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. | |
|
| 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. | |
|
| 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). | |
|
| BL | -- n | | | Leave the ASCII character value for space (decimal 32). | |
|
||||||
|
|
|
@ -122,7 +122,7 @@ Create a hDEV
|
||||||
# OpenDir
|
# OpenDir
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int hDIR opendir (const char * dirpath);`
|
`short int hDIR opendir (const char * dirpath);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>LDYA dirpath`
|
`>LDYA dirpath`
|
||||||
|
@ -231,17 +231,21 @@ Return X+Y, X-Y, X*Y, X/Y, X mod Y....
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
On stack (long)
|
On stack (long)
|
||||||
|
|
||||||
# FAdd,FSub,FMult,FDiv,FPwr
|
# FAdd,FSub,FMul,FDiv,FPwr
|
||||||
Return X+Y, X-Y, X*Y, X/Y, X^Y
|
Return X*Y, X/Y, X+Y, X-Y
|
||||||
|
|
||||||
|
## C
|
||||||
|
`float pwr ( float x, float y);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
`>PUSHF X (float)`
|
`>PUSHF X (float)`
|
||||||
`>PUSHF Y (float)`
|
`>PUSHF Y (float)`
|
||||||
|
`>FPU fmul`
|
||||||
|
`>FPU fdiv`
|
||||||
|
`>FPU fmod` TODO
|
||||||
`>FPU fadd`
|
`>FPU fadd`
|
||||||
`>FPU fsub`
|
`>FPU fsub`
|
||||||
`>FPU fmult`
|
|
||||||
`>FPU fdiv`
|
|
||||||
`>FPU fpwr`
|
`>FPU fpwr`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -424,7 +428,7 @@ Load a file in AUX memory (Stock Objects)
|
||||||
# GetStkObj
|
# GetStkObj
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int *ptr getstkobj (shoirt int hStkObj);`
|
`int *ptr getstkobj (short int hStkObj);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`lda hStkObj`
|
`lda hStkObj`
|
||||||
|
@ -480,12 +484,11 @@ A = Child PSID
|
||||||
`int kill(short int pid, short int sig);`
|
`int kill(short int pid, short int sig);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
|
`>PUSHB pid`
|
||||||
`>PUSHB sig`
|
`>PUSHB sig`
|
||||||
`lda pid`
|
|
||||||
`>SYSCALL kill`
|
`>SYSCALL kill`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A = Child PSID
|
|
||||||
|
|
||||||
# LoadTxtFile
|
# LoadTxtFile
|
||||||
Load TXT a file in memory (with ending 0)
|
Load TXT a file in memory (with ending 0)
|
||||||
|
@ -1355,8 +1358,8 @@ Concatenate strings
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHWI destination`
|
||||||
`>PUSHWI source`
|
`>PUSHWI source`
|
||||||
`>LDYAI destination`
|
|
||||||
`>SYSCALL strcat`
|
`>SYSCALL strcat`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -1370,8 +1373,8 @@ Copy string
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHWI destination`
|
||||||
`>PUSHWI source`
|
`>PUSHWI source`
|
||||||
`>LDYAI destination`
|
|
||||||
`>SYSCALL strcpy`
|
`>SYSCALL strcpy`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -1416,8 +1419,8 @@ Compare 2 strings
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHWI s1`
|
||||||
`>PUSHWI s2`
|
`>PUSHWI s2`
|
||||||
`>LDYAI s1`
|
|
||||||
`>SYSCALL strcmp`
|
`>SYSCALL strcmp`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -1434,8 +1437,8 @@ Compare 2 strings, ignoring case
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHWI s1`
|
||||||
`>PUSHWI s2`
|
`>PUSHWI s2`
|
||||||
`>LDYAI s1`
|
|
||||||
`>SYSCALL strcasecmp`
|
`>SYSCALL strcasecmp`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -1444,11 +1447,21 @@ CS : no match
|
||||||
CC, Y,A=0
|
CC, Y,A=0
|
||||||
CS, Y,A > 0 or < 0
|
CS, Y,A > 0 or < 0
|
||||||
|
|
||||||
|
# StrVSet
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>PUSHB hSTRV`
|
||||||
|
`>PUSHW id`
|
||||||
|
`>PUSHW ptr`
|
||||||
|
`>SYSCALL StrVSet`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
|
||||||
# StrVGet
|
# StrVGet
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>PUSHB hSTRV`
|
`>PUSHB hSTRV`
|
||||||
`>PUSHB index`
|
`>PUSHW id`
|
||||||
`>PUSHW ptr`
|
`>PUSHW ptr`
|
||||||
`>SYSCALL StrVGet`
|
`>SYSCALL StrVGet`
|
||||||
|
|
||||||
|
@ -1456,25 +1469,21 @@ CS : no match
|
||||||
CC: Y,A = Ptr
|
CC: Y,A = Ptr
|
||||||
CS: Y,A = NULL
|
CS: Y,A = NULL
|
||||||
|
|
||||||
# StrVShift
|
# StrVNew
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>PUSHB hSTRV`
|
`>LDYA size`
|
||||||
`>PUSHB index`
|
`>SYSCALL StrVNew`
|
||||||
`>SYSCALL StrVShift`
|
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
||||||
# StrVAdd
|
# StrVFree
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>PUSHB hSTRV`
|
`lda hSTRV`
|
||||||
`>PUSHW str`
|
`>SYSCALL StrVFree`
|
||||||
`>SYSCALL StrVAdd`
|
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
CC : str added to hSTRV
|
|
||||||
CS : hSTRV full
|
|
||||||
|
|
||||||
# Time
|
# Time
|
||||||
Get System Time in Buffer
|
Get System Time in Buffer
|
||||||
|
|
|
@ -6,7 +6,7 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors.
|
||||||
# D2TrkRead16s
|
# D2TrkRead16s
|
||||||
Write a track (16 sectors)
|
Write a track (16 sectors)
|
||||||
PUSHB = DSSS0000
|
PUSHB = DSSS0000
|
||||||
PUSHB = TrackNum * 4 : 0->136+
|
PUSHB = TrackNum * 4 : 0->136+
|
||||||
PUSHW = Ptr to 16*256 buffer
|
PUSHW = Ptr to 16*256 buffer
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -16,7 +16,9 @@ Write a track (16 sectors)
|
||||||
# D2TrkWrite16s
|
# D2TrkWrite16s
|
||||||
Write a track (16 sectors)
|
Write a track (16 sectors)
|
||||||
PUSHB = DSSS0000
|
PUSHB = DSSS0000
|
||||||
PUSHB = TrackNum * 4 : 0->136+
|
PUSHB = VolNum
|
||||||
|
PUSHB = HeadNum (0,1)
|
||||||
|
PUSHB = TrackNum * 4 : 0->136+
|
||||||
PUSHW = Ptr to 16*256 buffer
|
PUSHW = Ptr to 16*256 buffer
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
@ -38,7 +40,7 @@ Write a track (NIBBLE)
|
||||||
Compute space needed for ProDOS Catalog
|
Compute space needed for ProDOS Catalog
|
||||||
|
|
||||||
## C
|
## C
|
||||||
int getprodoscatsize (short int options, short int catsize, int devsize );
|
int getprodoscatsize (short int options, short int catsize, int devsize );
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
@ -46,7 +48,7 @@ int getprodoscatsize (short int options, short int catsize, int devsize );
|
||||||
PUSHB = Catalog Size (in blocks)
|
PUSHB = Catalog Size (in blocks)
|
||||||
PUSHB = Options
|
PUSHB = Options
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
X=BlockCount (max 22)
|
X=BlockCount (max 22)
|
||||||
Y,A=BufSize (max $4400)
|
Y,A=BufSize (max $4400)
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -269,60 +269,128 @@ CORE.Run lda #$0 RTS
|
||||||
|
|
||||||
jmp (ZPCodeBufPtr)
|
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
|
ldx #0
|
||||||
|
|
||||||
.1 ldy #$ff
|
.1 ldy #$ff
|
||||||
|
|
||||||
.2 jsr .7 get next valid char in src text
|
.2 jsr .10 get next valid char in src text
|
||||||
bcs .3
|
bcs .4
|
||||||
|
|
||||||
.20 jsr CORE.ToUpperCase
|
jsr CORE.ToUpperCase
|
||||||
eor (ZPPtr1),y match table char ?
|
eor (ZPPtr1),y match table char ?
|
||||||
asl compare only 7 bits
|
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
|
bcc .2 not last char in this keyword
|
||||||
|
|
||||||
jsr .7 next char in text...
|
jsr .10 next char in text...
|
||||||
bcc .4 valid....failed
|
bcc .4 valid....failed
|
||||||
|
|
||||||
.8 tya Keyword Len
|
.3 tya Keyword Len
|
||||||
|
|
||||||
jmp CORE.SkipA
|
jmp CORE.SkipA
|
||||||
|
|
||||||
.3 dey
|
.4 dey
|
||||||
lda (ZPPtr1),y was last char in this keyword ?
|
lda (ZPPtr1),y was last char in this keyword ?
|
||||||
bmi .8
|
bmi .3
|
||||||
|
|
||||||
iny
|
iny
|
||||||
.41 jsr CORE.IncPtr1 skip chars to next keyword
|
.5 jsr CORE.IncPtr1 skip chars to next keyword
|
||||||
|
|
||||||
.4 lda (ZPPtr1)
|
.6 lda (ZPPtr1)
|
||||||
bpl .41
|
bpl .5
|
||||||
|
|
||||||
jsr CORE.IncPtr1
|
jsr CORE.IncPtr1
|
||||||
|
|
||||||
.6 inx
|
|
||||||
inx
|
inx
|
||||||
lda (ZPPtr1) Array Ending 0, lookup failed
|
lda (ZPPtr1) Array Ending 0, lookup failed
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
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...
|
lda (ZPInputBufPtr),y Get Src text char...
|
||||||
beq .9 end of text
|
beq .9 end of text
|
||||||
|
|
||||||
cmp #'$'
|
cmp #'$'
|
||||||
bne .70
|
bne .11
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.70 jmp CORE.IsLetterOrDigit CS=end of valid chars
|
.11 jmp CORE.IsLetterOrDigit CS=end of valid chars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.IncPtr1 inc ZPPtr1
|
CORE.IncPtr1 inc ZPPtr1
|
||||||
bne .8
|
bne .8
|
||||||
|
@ -517,22 +585,22 @@ CORE.ToUpperCase
|
||||||
CORE.ToUpperCase.RTS
|
CORE.ToUpperCase.RTS
|
||||||
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
|
beq .8
|
||||||
|
|
||||||
inx
|
dex
|
||||||
cpx #ACOS.AOPSChars.Cnt
|
bpl .1
|
||||||
bcc .1
|
|
||||||
|
|
||||||
|
plx
|
||||||
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 txa
|
.8 plx
|
||||||
asl
|
clc
|
||||||
tax
|
|
||||||
|
|
||||||
* clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.IsEndExp cmp #')'
|
CORE.IsEndExp cmp #')'
|
||||||
|
|
|
@ -15,7 +15,7 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.10 jsr CORE.GetCharNB
|
.10 jsr CORE.GetCharNB
|
||||||
bcs .39
|
bcs .39
|
||||||
|
|
||||||
.11 cmp #'('
|
.11 cmp #'('
|
||||||
bne .12
|
bne .12
|
||||||
|
|
||||||
|
@ -27,11 +27,11 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
|
|
||||||
jsr CORE.GetCharNB
|
jsr CORE.GetCharNB
|
||||||
bcs .39
|
bcs .39
|
||||||
|
|
||||||
cmp #')'
|
cmp #')'
|
||||||
sec
|
sec
|
||||||
bne .39
|
bne .39
|
||||||
|
|
||||||
jsr CORE.GetNextCharNB skip )
|
jsr CORE.GetNextCharNB skip )
|
||||||
bra .41
|
bra .41
|
||||||
|
|
||||||
|
@ -81,8 +81,8 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
|
|
||||||
.50 jsr CORE.IsEndExp
|
.50 jsr CORE.IsEndExp
|
||||||
bcs .80
|
bcs .80
|
||||||
|
|
||||||
jsr EXP.GetOP
|
jsr CORE.LookupOPS
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
stx EXP.AOPS
|
stx EXP.AOPS
|
||||||
|
@ -95,8 +95,9 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
|
|
||||||
inc pStack prev op has precedence
|
inc pStack prev op has precedence
|
||||||
|
|
||||||
tax
|
tay
|
||||||
jsr EXP.OPjmpX go compute (arg1 op1 arg2)
|
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
|
.62 lda EXP.AOPS we must compute arg2 op2 arg3 before
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
@ -106,10 +107,11 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
jmp .11
|
jmp .11
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.80 >PULLA
|
.80 >PULLA
|
||||||
tax
|
tay
|
||||||
bmi .88 nothing to do
|
bmi .88 nothing to do
|
||||||
|
|
||||||
jsr EXP.OPjmpX
|
ldx ACOS.OPS.MAP-1,y
|
||||||
|
jsr CODE.FPUCALL
|
||||||
bra .80
|
bra .80
|
||||||
|
|
||||||
.90 lda #E.ESYN
|
.90 lda #E.ESYN
|
||||||
|
@ -132,7 +134,6 @@ EXP.Eval.R lda EXP.AOPS
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.FNjmpX jmp (J.ACOS.FN,x)
|
EXP.FNjmpX jmp (J.ACOS.FN,x)
|
||||||
EXP.OPjmpX jmp (J.ACOS.AOPS,x)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.CreateStrConst
|
EXP.CreateStrConst
|
||||||
lda #'$'
|
lda #'$'
|
||||||
|
@ -174,20 +175,6 @@ EXP.CreateStrConst
|
||||||
* sec
|
* sec
|
||||||
rts
|
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
|
EXP.Int16 >PUSHW ZPInputBufPtr
|
||||||
>PUSHWI ZPInputBufPtr
|
>PUSHWI ZPInputBufPtr
|
||||||
>PUSHBI 10
|
>PUSHBI 10
|
||||||
|
@ -247,21 +234,6 @@ EXP.VARLookup >LDA.G hVars
|
||||||
sec
|
sec
|
||||||
rts
|
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
|
MAN
|
||||||
SAVE usr/src/bin/acos.s.exp
|
SAVE usr/src/bin/acos.s.exp
|
||||||
|
|
|
@ -61,7 +61,7 @@ CS.START cld
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START Code Size (without Constants)
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA DS.END-DS.START Data SegmentSize
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #128 Stack Size
|
.DA #256 Stack Size
|
||||||
.DA #ZS.END-ZS.START Zero Page Size
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -84,13 +84,7 @@ L.MSG.FWREFERR .DA MSG.FWREFERR
|
||||||
L.MSG.STR .DA MSG.STR
|
L.MSG.STR .DA MSG.STR
|
||||||
L.MSG.INT16 .DA MSG.INT16
|
L.MSG.INT16 .DA MSG.INT16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.ACOS.AOPS .DA ACOS.AOPS
|
L.ACOS.OPS .DA ACOS.OPS
|
||||||
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.KW .DA ACOS.KW
|
L.ACOS.KW .DA ACOS.KW
|
||||||
J.ACOS.KW .DA KW.ADDINT
|
J.ACOS.KW .DA KW.ADDINT
|
||||||
.DA KW.APPEND
|
.DA KW.APPEND
|
||||||
|
@ -515,26 +509,34 @@ MSG.INT16 .AZ "%I"
|
||||||
OptionList .AS "DdTt"
|
OptionList .AS "DdTt"
|
||||||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ACOS.AOPSChars .AS "+-*/"
|
ACOS.OPSChars .AS "+-*/<>="
|
||||||
ACOS.AOPSChars.Cnt .EQ *-ACOS.AOPSChars
|
ACOS.OPSChars.Cnt .EQ *-ACOS.OPSChars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ACOS.AOPS .AT "MOD"
|
ACOS.OPS .AT "*"
|
||||||
.HS 00
|
.AT "/"
|
||||||
*--------------------------------------
|
.AT "MOD"
|
||||||
ACOS.BOPS .AT "="
|
.AT "+"
|
||||||
.AT "<>"
|
.AT "-"
|
||||||
.AT "><"
|
|
||||||
.AT "<"
|
.AT "<"
|
||||||
.AT ">"
|
|
||||||
.AT "<="
|
.AT "<="
|
||||||
.AT "=<"
|
.AT "=<"
|
||||||
|
.AT ">"
|
||||||
.AT ">="
|
.AT ">="
|
||||||
.AT "=>"
|
.AT "=>"
|
||||||
.AT "NOT"
|
.AT "<>"
|
||||||
|
.AT "><"
|
||||||
|
.AT "="
|
||||||
|
* .AT "NOT"
|
||||||
.AT "AND"
|
.AT "AND"
|
||||||
.AT "OR"
|
.AT "OR"
|
||||||
.HS 00
|
.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"
|
ACOS.KW .AT "ADDINT"
|
||||||
.AT "APPEND"
|
.AT "APPEND"
|
||||||
.AT "BYTE"
|
.AT "BYTE"
|
||||||
|
|
|
@ -387,14 +387,14 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
EXP.OP.MUL >PUSHL SRC.ARG
|
EXP.OP.MUL >PUSHL SRC.ARG
|
||||||
>PUSHL SRC.ACC
|
>PUSHL SRC.ACC
|
||||||
>FPU MUL32
|
>FPU uMUL
|
||||||
>PULLL SRC.ACC
|
>PULLL SRC.ACC
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*---------------------------------------
|
*---------------------------------------
|
||||||
EXP.OP.DIV >PUSHL SRC.ARG
|
EXP.OP.DIV >PUSHL SRC.ARG
|
||||||
>PUSHL SRC.ACC
|
>PUSHL SRC.ACC
|
||||||
>FPU DIV32
|
>FPU uDIV
|
||||||
>PULLL SRC.ACC
|
>PULLL SRC.ACC
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -279,13 +279,14 @@ CS.RUN.SetAttr >PUSHW ZPFullPath
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -255,13 +255,14 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -296,13 +296,14 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -257,13 +257,14 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -238,13 +238,14 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -171,7 +171,7 @@ CSH.Run.1 cmp #C.CR empty line....
|
||||||
cmp #';'
|
cmp #';'
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.99 lda #CSH.E.SYNTAX
|
.99 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ CSH.COMMENTS jsr CSH.GetNextChar
|
||||||
|
|
||||||
jmp CSH.SkipLine skip line.....
|
jmp CSH.SkipLine skip line.....
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -339,9 +339,9 @@ CSH.AddSymbol >LDA.G CSH.hSymbols
|
||||||
>SYSCALL SListAddData
|
>SYSCALL SListAddData
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 lda #CSH.E.OOM
|
.99 lda #E.OOM
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
CSH.TMISMATCH lda #CSH.E.TMISMATCH
|
CSH.TMISMATCH lda #E.TMISMATCH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -367,7 +367,7 @@ CSH.fDeclaration
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -381,7 +381,7 @@ CSH.GetDeclaration
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.8 >LEAVE
|
.8 >LEAVE
|
||||||
rts
|
rts
|
||||||
|
@ -422,7 +422,7 @@ CSH.SetVarValueFromStack
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #CSH.E.TMISMATCH
|
.99 lda #E.TMISMATCH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -551,7 +551,7 @@ CSH.GetVarValueOnStack
|
||||||
clc X = Var Type
|
clc X = Var Type
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 lda #CSH.E.TMISMATCH
|
.99 lda #E.TMISMATCH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -598,7 +598,7 @@ CSH.CheckStack tax
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -614,12 +614,13 @@ CSH.Push pha
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pla
|
.9 pla
|
||||||
lda #CSH.E.SOVERFLW
|
lda #E.STKOVERFLOW
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.Pop >LDA.G CSH.StackPtr
|
CSH.Pop >LDA.G CSH.StackPtr
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
inc
|
inc
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -628,7 +629,7 @@ CSH.Pop >LDA.G CSH.StackPtr
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.STACKERR
|
.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -711,7 +712,7 @@ CSH.CheckSpace jsr CSH.GetChar
|
||||||
jsr CSH.GetNextCharNB
|
jsr CSH.GetNextCharNB
|
||||||
bcc CSH.GetNextCharNB.RTS
|
bcc CSH.GetNextCharNB.RTS
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -16,7 +16,7 @@ CSH.DIR jsr CSH.GetNextCharNB
|
||||||
|
|
||||||
jmp (J.CSH.DIRS,x)
|
jmp (J.CSH.DIRS,x)
|
||||||
|
|
||||||
.91 lda #CSH.E.INVDIR
|
.91 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -63,7 +63,7 @@ CSH.DIR.DEFINE jsr CSH.CheckSpace
|
||||||
|
|
||||||
jmp CSH.SkipLine
|
jmp CSH.SkipLine
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -105,7 +105,7 @@ CSH.DIR.INCLUDE >STZ.G PathBuf
|
||||||
cpy #64
|
cpy #64
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
|
|
|
@ -2,14 +2,30 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* A = Type, X = OP
|
* Y = Type, A = OP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.BOP.EXEC jmp (J.CSH.BOPS,x)
|
CSH.BOP.EXEC cpy #CSH.T.UINT
|
||||||
*--------------------------------------
|
bcs .1
|
||||||
CSH.BOPS.ADD asl
|
|
||||||
tax
|
|
||||||
jmp (J.CSH.BOPS.ADDt,x)
|
|
||||||
|
|
||||||
|
|
||||||
|
.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.ADDi8
|
||||||
CSH.BOPS.ADDu8 clc
|
CSH.BOPS.ADDu8 clc
|
||||||
>PULLA
|
>PULLA
|
||||||
|
@ -17,24 +33,8 @@ CSH.BOPS.ADDu8 clc
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
clc
|
clc
|
||||||
rts
|
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
|
CSH.BOPS.SUB
|
||||||
tax
|
|
||||||
jmp (J.CSH.BOPS.SUBt,x)
|
|
||||||
|
|
||||||
CSH.BOPS.SUBi8
|
CSH.BOPS.SUBi8
|
||||||
CSH.BOPS.SUBu8 sec
|
CSH.BOPS.SUBu8 sec
|
||||||
ldy #1
|
ldy #1
|
||||||
|
@ -44,52 +44,8 @@ CSH.BOPS.SUBu8 sec
|
||||||
inc pStack
|
inc pStack
|
||||||
clc
|
clc
|
||||||
rts
|
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
|
CSH.BOPS.SHL
|
||||||
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.SHL8 lda (pStack)
|
CSH.BOPS.SHL8 lda (pStack)
|
||||||
tax
|
tax
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -106,80 +62,20 @@ CSH.BOPS.SHL8 lda (pStack)
|
||||||
.8 inc pStack
|
.8 inc pStack
|
||||||
clc
|
clc
|
||||||
rts
|
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.SHR
|
||||||
|
|
||||||
CSH.BOPS.L
|
CSH.BOPS.L
|
||||||
CSH.BOPS.G
|
CSH.BOPS.G
|
||||||
CSH.BOPS.LE
|
CSH.BOPS.LE
|
||||||
CSH.BOPS.GE
|
CSH.BOPS.GE
|
||||||
CSH.BOPS.EQ
|
CSH.BOPS.EQ
|
||||||
CSH.BOPS.NE
|
CSH.BOPS.NE
|
||||||
|
|
||||||
CSH.BOPS.AND
|
CSH.BOPS.AND
|
||||||
CSH.BOPS.OR
|
CSH.BOPS.OR
|
||||||
CSH.BOPS.EOR
|
CSH.BOPS.EOR
|
||||||
|
|
||||||
CSH.BOPS.LAND
|
CSH.BOPS.LAND
|
||||||
CSH.BOPS.LOR
|
CSH.BOPS.LOR
|
||||||
|
|
||||||
|
@ -224,7 +120,8 @@ EXEC.puts >PULLYA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXEC.printf >SYSCALL PrintF
|
EXEC.printf
|
||||||
|
>SYSCALL PrintF
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -115,9 +115,8 @@ CSH.ExpEval ldx ZPPtr1
|
||||||
cmp ZPPtr2+1
|
cmp ZPPtr2+1
|
||||||
bcc .33 OP(n) has precedence, on stack : V1,V2
|
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)
|
jsr CSH.BOP.EXEC compute V(n-1) <OP(n-1)> V(n)
|
||||||
bcc .32
|
bcc .32
|
||||||
|
|
||||||
|
@ -129,16 +128,16 @@ CSH.ExpEval ldx ZPPtr1
|
||||||
|
|
||||||
jmp .10 go check for next token
|
jmp .10 go check for next token
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.80 plx any OP on stack ?
|
.80 pla any OP on stack ?
|
||||||
bmi .88
|
bmi .88
|
||||||
|
|
||||||
lda ZPPtr2 Var Type
|
ldy ZPPtr2 Var Type
|
||||||
jsr CSH.BOP.EXEC
|
jsr CSH.BOP.EXEC
|
||||||
bcc .80
|
bcc .80
|
||||||
|
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.ESYN
|
||||||
|
|
||||||
.99 plx
|
.99 plx
|
||||||
bpl .99
|
bpl .99
|
||||||
|
@ -186,7 +185,8 @@ CSH.AddContCharP
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.9 lda #CSH.E.SYNTAX
|
|
||||||
|
.9 lda #E.ESYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -194,11 +194,9 @@ CSH.GetNumOnStack
|
||||||
txa
|
txa
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
cpx #CSH.T.ULONG+1
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
cpx #CSH.T.FLOAT
|
cpx #CSH.T.FLOAT
|
||||||
bne .1
|
bcc .1
|
||||||
|
bne .99
|
||||||
|
|
||||||
>PUSHW ZPInputBufPtr
|
>PUSHW ZPInputBufPtr
|
||||||
>PUSHWI ZPInputBufPtr
|
>PUSHWI ZPInputBufPtr
|
||||||
|
@ -244,7 +242,7 @@ CSH.GetNumOnStack
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 lda #CSH.E.TMISMATCH
|
.99 lda #E.TMISMATCH
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -52,7 +52,7 @@ CSH.IF jsr CSH.GetCharNB
|
||||||
.6 jsr CSH.SkipBlock
|
.6 jsr CSH.SkipBlock
|
||||||
|
|
||||||
bcc .99
|
bcc .99
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -76,7 +76,7 @@ CSH.BREAK
|
||||||
CSH.CONTINUE
|
CSH.CONTINUE
|
||||||
CSH.SIZEOF
|
CSH.SIZEOF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.TYPEDEF lda #CSH.E.SYNTAX
|
CSH.TYPEDEF lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -124,7 +124,7 @@ CSH.CONST lda ZPVarQual
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -157,7 +157,7 @@ CSH.UNSIGNED clc
|
||||||
|
|
||||||
.9 plp
|
.9 plp
|
||||||
|
|
||||||
lda #CSH.E.SYNTAX
|
lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -172,7 +172,7 @@ CSH.SHORT jsr CSH.CheckSpace
|
||||||
cpx #4 only int allowed
|
cpx #4 only int allowed
|
||||||
beq CSH.SCHAR
|
beq CSH.SCHAR
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -272,7 +272,7 @@ CSH.TYPE stx ZPVarType
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -389,9 +389,9 @@ CSH.fCall ldx ZPPtr1
|
||||||
plx restore returned type
|
plx restore returned type
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.90 lda #CSH.E.SYNTAX
|
.90 lda #E.CSYN
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
.91 lda #CSH.E.TMISMATCH
|
.91 lda #E.TMISMATCH
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.9 plx Discard function index
|
.9 plx Discard function index
|
||||||
|
|
|
@ -10,20 +10,22 @@ NEW
|
||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.E.SYNTAX .EQ $C0
|
CSH.T.VOID .EQ 0
|
||||||
CSH.E.STACKERR .EQ $C2
|
CSH.T.UCHAR .EQ 1
|
||||||
CSH.E.SOVERFLW .EQ $C3
|
CSH.T.SCHAR .EQ 2
|
||||||
*E.NOWHILE .EQ $C4
|
CSH.T.UINT .EQ 3
|
||||||
*E.NOFOR .EQ $C5
|
CSH.T.SINT .EQ 4
|
||||||
*E.NOIF .EQ $C6
|
CSH.T.ULONG .EQ 5
|
||||||
CSH.E.UNEXPEOF .EQ $C8
|
CSH.T.SLONG .EQ 6
|
||||||
CSH.E.UNDEF .EQ $C9
|
CSH.T.FLOAT .EQ 7
|
||||||
CSH.E.INVDIR .EQ $CA
|
CSH.T.VARIADIC .EQ $FF
|
||||||
*
|
*--------------------------------------
|
||||||
CSH.E.NOVERFLW .EQ $D0
|
CSH.Q.POINTER .EQ %01000000
|
||||||
CSH.E.TMISMATCH .EQ $D1
|
CSH.Q.PPOINTER .EQ %10000000
|
||||||
CSH.E.OOM .EQ $D2
|
CSH.Q.PPPOINTER .EQ %11000000
|
||||||
CSH.E.DUP .EQ $D3
|
CSH.Q.PCONST .EQ %00100000
|
||||||
|
CSH.Q.CONST .EQ %00010000
|
||||||
|
CSH.Q.FUNC .EQ %00001000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Zero Page Segment, up to 32 bytes
|
* Zero Page Segment, up to 32 bytes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -86,16 +88,16 @@ L.MSG.DEBUG .DA MSG.DEBUG
|
||||||
L.MSG.ERR .DA MSG.ERR
|
L.MSG.ERR .DA MSG.ERR
|
||||||
L.ENV.INCLUDE .DA ENV.INCLUDE
|
L.ENV.INCLUDE .DA ENV.INCLUDE
|
||||||
L.CSH.BOPS .DA CSH.BOPS
|
L.CSH.BOPS .DA CSH.BOPS
|
||||||
J.CSH.BOPS .DA CSH.BOPS.ADD
|
J.CSH.BOPS .DA CSH.BOPS.MUL
|
||||||
.DA CSH.BOPS.SUB
|
|
||||||
.DA CSH.BOPS.MUL
|
|
||||||
.DA CSH.BOPS.DIV
|
.DA CSH.BOPS.DIV
|
||||||
.DA CSH.BOPS.MOD
|
.DA CSH.BOPS.MOD
|
||||||
|
.DA CSH.BOPS.ADD
|
||||||
|
.DA CSH.BOPS.SUB
|
||||||
.DA CSH.BOPS.SHL
|
.DA CSH.BOPS.SHL
|
||||||
.DA CSH.BOPS.SHR
|
.DA CSH.BOPS.SHR
|
||||||
.DA CSH.BOPS.L
|
.DA CSH.BOPS.L
|
||||||
.DA CSH.BOPS.G
|
|
||||||
.DA CSH.BOPS.LE
|
.DA CSH.BOPS.LE
|
||||||
|
.DA CSH.BOPS.G
|
||||||
.DA CSH.BOPS.GE
|
.DA CSH.BOPS.GE
|
||||||
.DA CSH.BOPS.EQ
|
.DA CSH.BOPS.EQ
|
||||||
.DA CSH.BOPS.NE
|
.DA CSH.BOPS.NE
|
||||||
|
@ -104,30 +106,6 @@ J.CSH.BOPS .DA CSH.BOPS.ADD
|
||||||
.DA CSH.BOPS.EOR
|
.DA CSH.BOPS.EOR
|
||||||
.DA CSH.BOPS.LAND
|
.DA CSH.BOPS.LAND
|
||||||
.DA CSH.BOPS.LOR
|
.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.FN .DA CSH.FN
|
||||||
L.CSH.DIRS .DA CSH.DIRS
|
L.CSH.DIRS .DA CSH.DIRS
|
||||||
L.CSH.KW .DA CSH.KW
|
L.CSH.KW .DA CSH.KW
|
||||||
|
@ -450,23 +428,6 @@ OptionList .AS "DdTt"
|
||||||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
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 .AS "!~+-*/%=&|^<>"
|
||||||
CSH.OPChars.Cnt .EQ *-CSH.OPChars
|
CSH.OPChars.Cnt .EQ *-CSH.OPChars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -505,16 +466,16 @@ CSH.AOPS >PSTR "="
|
||||||
* Bitwise Operators: & | ^ ~
|
* Bitwise Operators: & | ^ ~
|
||||||
* Logical Operators: && ||
|
* Logical Operators: && ||
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.BOPS >PSTR "+"
|
CSH.BOPS >PSTR "*"
|
||||||
>PSTR "-"
|
|
||||||
>PSTR "*"
|
|
||||||
>PSTR "/"
|
>PSTR "/"
|
||||||
>PSTR "%"
|
>PSTR "%"
|
||||||
|
>PSTR "+"
|
||||||
|
>PSTR "-"
|
||||||
>PSTR "<<"
|
>PSTR "<<"
|
||||||
>PSTR ">>"
|
>PSTR ">>"
|
||||||
>PSTR "<"
|
>PSTR "<"
|
||||||
>PSTR ">"
|
|
||||||
>PSTR "<="
|
>PSTR "<="
|
||||||
|
>PSTR ">"
|
||||||
>PSTR ">="
|
>PSTR ">="
|
||||||
>PSTR "=="
|
>PSTR "=="
|
||||||
>PSTR "!="
|
>PSTR "!="
|
||||||
|
@ -525,6 +486,8 @@ CSH.BOPS >PSTR "+"
|
||||||
>PSTR "||"
|
>PSTR "||"
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL
|
||||||
|
*--------------------------------------
|
||||||
* Reserved Directives:
|
* Reserved Directives:
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.DIRS >PSTR "define"
|
CSH.DIRS >PSTR "define"
|
||||||
|
@ -559,7 +522,7 @@ CSH.TYPES >PSTR "void"
|
||||||
CSH.FTYPES >PSTR "fastcall"
|
CSH.FTYPES >PSTR "fastcall"
|
||||||
* .HS 00
|
* .HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.TYPESIZE .HS 0001020405010204
|
CSH.TYPESIZE .HS 0001010202040405
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.FN
|
CSH.FN
|
||||||
* float cos ( float x );
|
* float cos ( float x );
|
||||||
|
|
|
@ -126,10 +126,11 @@ CS.RUN lda #C.SPACE
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
beq .80
|
beq .80
|
||||||
|
|
||||||
|
>PUSHW ZPBufPtr
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPBufPtr
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
jsr CS.RUN.OUT
|
jsr CS.RUN.OUT
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -136,8 +136,8 @@ CS.RUN.DUMP >PUSHB ETKCFG+S.NETCFG.DevID
|
||||||
|
|
||||||
>LEA.G DCB.NIC
|
>LEA.G DCB.NIC
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
>PUSHB ETKCFG+S.NETCFG.DevID
|
>PUSHB ETKCFG+S.NETCFG.DevID
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
|
|
|
@ -3,11 +3,11 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Lookup >LDYA L.KEYWORDS
|
KW.Lookup >LDYA L.KEYWORDS
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.1 ldy #$ff
|
.1 ldy #$ff
|
||||||
|
|
||||||
.2 jsr .7 get next valid char in src text
|
.2 jsr .7 get next valid char in src text
|
||||||
bcs .3
|
bcs .3
|
||||||
|
|
||||||
|
@ -24,8 +24,8 @@ KW.Lookup >LDYA L.KEYWORDS
|
||||||
.8 tya Keyword Len
|
.8 tya Keyword Len
|
||||||
|
|
||||||
jsr NextKW
|
jsr NextKW
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 dey
|
.3 dey
|
||||||
|
@ -50,7 +50,7 @@ KW.Lookup >LDYA L.KEYWORDS
|
||||||
.7 iny
|
.7 iny
|
||||||
lda (ZPCLBufPtr),y Get Src text char...
|
lda (ZPCLBufPtr),y Get Src text char...
|
||||||
beq .9 end of text
|
beq .9 end of text
|
||||||
|
|
||||||
jmp IsSpaceOrCR CS=end of valid chars
|
jmp IsSpaceOrCR CS=end of valid chars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.INVALID lda #E.CSYN
|
KW.INVALID lda #E.CSYN
|
||||||
|
@ -61,7 +61,7 @@ KW.qDUP lda (pStack)
|
||||||
ldy #1
|
ldy #1
|
||||||
ora (pStack),y
|
ora (pStack),y
|
||||||
bne KW.DUP
|
bne KW.DUP
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -70,10 +70,10 @@ KW.DUP lda pStack
|
||||||
|
|
||||||
cmp #$FF
|
cmp #$FF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #2
|
cmp #2
|
||||||
bcc .99
|
bcc .99
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
@ -81,25 +81,25 @@ KW.DUP lda pStack
|
||||||
>PUSHA
|
>PUSHA
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.STACKERROR
|
.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #E.STKOVERFLOW
|
.99 lda #E.STKOVERFLOW
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DROP lda pStack
|
KW.DROP lda pStack
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
inc pStack
|
inc pStack
|
||||||
beq .9
|
beq .9
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.STACKERROR
|
.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -107,16 +107,16 @@ KW.DROP lda pStack
|
||||||
KW.SWAP ldy #3
|
KW.SWAP ldy #3
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
pha
|
pha
|
||||||
|
|
||||||
dey #2
|
dey #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda (pStack)
|
lda (pStack)
|
||||||
tax
|
tax
|
||||||
pla
|
pla
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
txa
|
txa
|
||||||
sta (pStack),y #2
|
sta (pStack),y #2
|
||||||
|
|
||||||
|
@ -136,10 +136,10 @@ KW.SWAP ldy #3
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.OVER jsr CheckStackPop4
|
KW.OVER jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #2
|
cmp #2
|
||||||
bcc .99
|
bcc .99
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
@ -155,19 +155,19 @@ KW.OVER jsr CheckStackPop4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.ROT lda pStack
|
KW.ROT lda pStack
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
cmp #$FB
|
cmp #$FB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #5
|
ldy #5
|
||||||
lda (pStack),y n1 HI
|
lda (pStack),y n1 HI
|
||||||
pha
|
pha
|
||||||
dey
|
dey
|
||||||
lda (pStack),y n1 LO
|
lda (pStack),y n1 LO
|
||||||
pha
|
pha
|
||||||
|
|
||||||
.1 dey
|
.1 dey
|
||||||
|
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
@ -177,101 +177,101 @@ KW.ROT lda pStack
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
pla
|
pla
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 lda #E.STACKERROR
|
.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Add jsr CheckStackPop4
|
KW.Add jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>FPU ADD16
|
>FPU iADD
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DAdd >FPU ADD32
|
KW.DAdd >FPU lADD
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Sub jsr CheckStackPop4
|
KW.Sub jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>FPU SUB16
|
>FPU iSUB
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DSub >FPU SUB32
|
KW.DSub >FPU lSUB
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Mul jsr CheckStackPop4
|
KW.Mul jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>FPU IMUL16
|
>FPU iMUL
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Div jsr KW.DivMoD.1
|
KW.Div jsr KW.DivMoD.1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA ZPPtr2
|
>LDYA ZPPtr2
|
||||||
jsr KW.PushWSigned
|
jsr KW.PushWSigned
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.Mod jsr KW.DivMoD.1
|
KW.Mod jsr KW.DivMoD.1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW ZPPtr3
|
>PUSHW ZPPtr3
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DivMod jsr KW.DivMoD.1
|
KW.DivMod jsr KW.DivMoD.1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW ZPPtr3
|
>PUSHW ZPPtr3
|
||||||
>LDYA ZPPtr2
|
>LDYA ZPPtr2
|
||||||
jsr KW.PushWSigned
|
jsr KW.PushWSigned
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.MulDivMod
|
KW.MulDivMod
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.MulDiv
|
KW.MulDiv
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DivMoD.1 jsr CheckStackPop4
|
KW.DivMoD.1 jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr KW.GetPtr1Ptr2Sign
|
jsr KW.GetPtr1Ptr2Sign
|
||||||
|
|
||||||
stz ZPPtr3
|
stz ZPPtr3
|
||||||
stz ZPPtr3+1
|
stz ZPPtr3+1
|
||||||
|
|
||||||
ldx #16
|
ldx #16
|
||||||
|
|
||||||
.1 asl ZPPtr2
|
.1 asl ZPPtr2
|
||||||
rol ZPPtr2+1
|
rol ZPPtr2+1
|
||||||
rol ZPPtr3
|
rol ZPPtr3
|
||||||
rol ZPPtr3+1
|
rol ZPPtr3+1
|
||||||
|
|
||||||
sec
|
sec
|
||||||
lda ZPPtr3
|
lda ZPPtr3
|
||||||
sbc ZPPtr1
|
sbc ZPPtr1
|
||||||
|
@ -279,58 +279,58 @@ KW.DivMoD.1 jsr CheckStackPop4
|
||||||
lda ZPPtr3+1
|
lda ZPPtr3+1
|
||||||
sbc ZPPtr1+1
|
sbc ZPPtr1+1
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.2 sta ZPPtr3+1
|
.2 sta ZPPtr3+1
|
||||||
pla
|
pla
|
||||||
sta ZPPtr3
|
sta ZPPtr3
|
||||||
inc ZPPtr2
|
inc ZPPtr2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.GetPtr1Ptr2Sign
|
KW.GetPtr1Ptr2Sign
|
||||||
>PULLW ZPPtr1
|
>PULLW ZPPtr1
|
||||||
sta Sign
|
sta Sign
|
||||||
|
|
||||||
asl
|
asl
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
lda ZPPtr1
|
lda ZPPtr1
|
||||||
clc
|
clc
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #1
|
adc #1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
|
||||||
lda ZPPtr1+1
|
lda ZPPtr1+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #0
|
adc #0
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
.1 >PULLW ZPPtr2
|
.1 >PULLW ZPPtr2
|
||||||
|
|
||||||
asl
|
asl
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
lda ZPPtr2
|
lda ZPPtr2
|
||||||
clc
|
clc
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #1
|
adc #1
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
|
|
||||||
lda ZPPtr2+1
|
lda ZPPtr2+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #0
|
adc #0
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
lda Sign
|
lda Sign
|
||||||
eor #$80
|
eor #$80
|
||||||
sta Sign
|
sta Sign
|
||||||
|
@ -339,29 +339,29 @@ KW.GetPtr1Ptr2Sign
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.PushWSigned bit Sign
|
KW.PushWSigned bit Sign
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
tya
|
tya
|
||||||
|
|
||||||
clc
|
clc
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #1
|
adc #1
|
||||||
tay
|
tay
|
||||||
|
|
||||||
pla
|
pla
|
||||||
eor #$ff
|
eor #$ff
|
||||||
adc #0
|
adc #0
|
||||||
|
|
||||||
.8 >PUSHYA
|
.8 >PUSHYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.MAX jsr CheckStackPop4
|
KW.MAX jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda (pStack) LO
|
lda (pStack) LO
|
||||||
ldy #2
|
ldy #2
|
||||||
cmp (pStack),y
|
cmp (pStack),y
|
||||||
|
|
||||||
dey #1
|
dey #1
|
||||||
|
|
||||||
lda (pStack),y HI
|
lda (pStack),y HI
|
||||||
|
@ -369,20 +369,20 @@ KW.MAX jsr CheckStackPop4
|
||||||
iny #3
|
iny #3
|
||||||
sbc (pStack),y
|
sbc (pStack),y
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
jsr KW.SWAP
|
jsr KW.SWAP
|
||||||
|
|
||||||
.1 jmp KW.DROP
|
.1 jmp KW.DROP
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.MIN jsr CheckStackPop4
|
KW.MIN jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda (pStack) LO
|
lda (pStack) LO
|
||||||
ldy #2
|
ldy #2
|
||||||
cmp (pStack),y
|
cmp (pStack),y
|
||||||
|
|
||||||
dey #1
|
dey #1
|
||||||
|
|
||||||
lda (pStack),y HI
|
lda (pStack),y HI
|
||||||
|
@ -390,12 +390,12 @@ KW.MIN jsr CheckStackPop4
|
||||||
iny #3
|
iny #3
|
||||||
sbc (pStack),y
|
sbc (pStack),y
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
jsr KW.SWAP
|
jsr KW.SWAP
|
||||||
|
|
||||||
.1 jmp KW.DROP
|
.1 jmp KW.DROP
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.ABS ldy #1
|
KW.ABS ldy #1
|
||||||
|
|
||||||
|
@ -451,7 +451,7 @@ KW.DNEGATE.8 clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.AND jsr CheckStackPop4
|
KW.AND jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
and (pStack)
|
and (pStack)
|
||||||
|
@ -469,7 +469,7 @@ KW.AND jsr CheckStackPop4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.OR jsr CheckStackPop4
|
KW.OR jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
ora (pStack)
|
ora (pStack)
|
||||||
|
@ -487,7 +487,7 @@ KW.OR jsr CheckStackPop4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.XOR jsr CheckStackPop4
|
KW.XOR jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
eor (pStack)
|
eor (pStack)
|
||||||
|
@ -505,7 +505,7 @@ KW.XOR jsr CheckStackPop4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.LWR jsr CheckStackPop4
|
KW.LWR jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
cmp (pStack)
|
cmp (pStack)
|
||||||
|
@ -527,7 +527,7 @@ KW.LWR jsr CheckStackPop4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.GTR jsr CheckStackPop4
|
KW.GTR jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
cmp (pStack)
|
cmp (pStack)
|
||||||
|
@ -548,7 +548,7 @@ KW.GTR jsr CheckStackPop4
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ;
|
* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ;
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.EQ jsr CheckStackPop4
|
KW.EQ jsr CheckStackPop4
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -569,12 +569,12 @@ KW.EQ jsr CheckStackPop4
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.1 inc pStack
|
.1 inc pStack
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
|
@ -592,15 +592,15 @@ KW.ZERO clc
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
ora (pStack)
|
ora (pStack)
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.9 lda #0
|
.9 lda #0
|
||||||
ror
|
ror
|
||||||
|
|
||||||
inc pStack
|
inc pStack
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -652,7 +652,7 @@ KW.D. >PUSHW L.FMT.int32
|
||||||
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>RET 4
|
>RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.D.R
|
KW.D.R
|
||||||
|
@ -661,7 +661,7 @@ KW.D.R
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.CR >PUSHW L.MSG.ECHOCRLF
|
KW.CR >PUSHW L.MSG.ECHOCRLF
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -670,13 +670,13 @@ KW.SPACE lda #C.SPACE
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.SPACES >PULLA
|
KW.SPACES >PULLA
|
||||||
|
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.1 dec
|
.1 dec
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
pla
|
pla
|
||||||
|
@ -688,38 +688,38 @@ KW.SPACES >PULLA
|
||||||
KW.PRINT >LDYAI 256
|
KW.PRINT >LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
phx
|
phx
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPCLBufPtr),y
|
lda (ZPCLBufPtr),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
eor #'"
|
eor #'"
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.2 sta (ZPPtr1),y
|
.2 sta (ZPPtr1),y
|
||||||
tya
|
tya
|
||||||
adc ZPCLBufPtr
|
adc ZPCLBufPtr
|
||||||
sta ZPCLBufPtr
|
sta ZPCLBufPtr
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
inc ZPCLBufPtr+1
|
inc ZPCLBufPtr+1
|
||||||
|
|
||||||
.3 >LDYA ZPPtr1
|
.3 >LDYA ZPPtr1
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.DUMP
|
KW.DUMP
|
||||||
|
@ -735,9 +735,9 @@ KW.TERMINAL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.KEY >SYSCALL GetChar
|
KW.KEY >SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.EMIT >PULLA
|
KW.EMIT >PULLA
|
||||||
|
@ -773,7 +773,7 @@ KW.OCTAL lda #E.SYN
|
||||||
KW.FETCHSP lda pStack+1
|
KW.FETCHSP lda pStack+1
|
||||||
ldy pStack
|
ldy pStack
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc
|
inc
|
||||||
|
|
||||||
.1 >PUSHYA
|
.1 >PUSHYA
|
||||||
|
@ -785,7 +785,7 @@ KW.FETCHW lda (pStack)
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
sta ZPAddrPtr+1
|
sta ZPAddrPtr+1
|
||||||
|
|
||||||
lda (ZPAddrPtr)
|
lda (ZPAddrPtr)
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
lda (ZPAddrPtr),y
|
lda (ZPAddrPtr),y
|
||||||
|
@ -836,7 +836,7 @@ KW.CMOVE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.FILL >PULLA
|
KW.FILL >PULLA
|
||||||
bra KW.FILL2
|
bra KW.FILL2
|
||||||
|
|
||||||
KW.ERASE lda #0
|
KW.ERASE lda #0
|
||||||
bra KW.FILL2
|
bra KW.FILL2
|
||||||
|
|
||||||
|
@ -848,14 +848,14 @@ KW.FILL2 tax
|
||||||
tay
|
tay
|
||||||
|
|
||||||
>PULLW ZPAddrPtr
|
>PULLW ZPAddrPtr
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
|
||||||
.1 dey
|
.1 dey
|
||||||
sta (ZPAddrPtr),y
|
sta (ZPAddrPtr),y
|
||||||
cpy #0
|
cpy #0
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -866,10 +866,10 @@ KW.HERE >PUSHW ZPDataPtr
|
||||||
KW.PAD >PUSHW ZPOutputBufPtr
|
KW.PAD >PUSHW ZPOutputBufPtr
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
KW.ALLOT.9 lda #E.STACKERROR
|
KW.ALLOT.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.ALLOT lda #SYM.T.VAR
|
KW.ALLOT lda #SYM.T.VAR
|
||||||
sta ZPType
|
sta ZPType
|
||||||
|
@ -879,36 +879,36 @@ KW.ALLOT lda #SYM.T.VAR
|
||||||
|
|
||||||
cmp #$FF
|
cmp #$FF
|
||||||
bcs KW.ALLOT.9
|
bcs KW.ALLOT.9
|
||||||
|
|
||||||
>PUSHB.G hSList
|
>PUSHB.G hSList
|
||||||
>PUSHW ZPCLBufPtr
|
>PUSHW ZPCLBufPtr
|
||||||
|
|
||||||
>SYSCALL SListNewKey
|
>SYSCALL SListNewKey
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPKeyID
|
>STYA ZPKeyID
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr NextKW
|
jsr NextKW
|
||||||
|
|
||||||
>LDYA ZPDataPtr
|
>LDYA ZPDataPtr
|
||||||
>STYA ZPAddrPtr
|
>STYA ZPAddrPtr
|
||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
clc
|
clc
|
||||||
adc ZPDataPtr
|
adc ZPDataPtr
|
||||||
sta ZPDataPtr
|
sta ZPDataPtr
|
||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
adc ZPDataPtr+1
|
adc ZPDataPtr+1
|
||||||
sta ZPDataPtr+1
|
sta ZPDataPtr+1
|
||||||
|
|
||||||
>PUSHB.G hSList
|
>PUSHB.G hSList
|
||||||
>PUSHW ZPKeyID
|
>PUSHW ZPKeyID
|
||||||
>PUSHWI ZPType
|
>PUSHWI ZPType
|
||||||
>PUSHWI 4
|
>PUSHWI 4
|
||||||
>SYSCALL SListAddData
|
>SYSCALL SListAddData
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.nCOMPILE
|
KW.nCOMPILE
|
||||||
|
@ -925,16 +925,16 @@ KW.ASSEMBLER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.VLIST stz ZPPtr1
|
KW.VLIST stz ZPPtr1
|
||||||
stz ZPPtr1+1
|
stz ZPPtr1+1
|
||||||
|
|
||||||
.1 >LDYA ZPPtr1
|
.1 >LDYA ZPPtr1
|
||||||
>STYA ZPKeyID
|
>STYA ZPKeyID
|
||||||
|
|
||||||
>PUSHB.G hSList
|
>PUSHB.G hSList
|
||||||
>PUSHW ZPKeyID
|
>PUSHW ZPKeyID
|
||||||
>PUSHW ZPOutputBufPtr
|
>PUSHW ZPOutputBufPtr
|
||||||
>SYSCALL SListGetByID
|
>SYSCALL SListGetByID
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>STYA ZPPtr1 Save Next ID
|
>STYA ZPPtr1 Save Next ID
|
||||||
|
|
||||||
jsr CS.RUN.GetSymbolData
|
jsr CS.RUN.GetSymbolData
|
||||||
|
@ -958,13 +958,13 @@ KW.VLIST stz ZPPtr1
|
||||||
>PUSHBI 6
|
>PUSHBI 6
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
jmp .1
|
jmp .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
KW.VC.9 lda #E.STACKERROR
|
KW.VC.9 lda #E.STACKERROR
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.VARIABLE lda #SYM.T.VAR
|
KW.VARIABLE lda #SYM.T.VAR
|
||||||
bra KM.VC
|
bra KM.VC
|
||||||
|
@ -978,40 +978,40 @@ KM.VC sta ZPType
|
||||||
|
|
||||||
cmp #$FF
|
cmp #$FF
|
||||||
bcs KW.VC.9
|
bcs KW.VC.9
|
||||||
|
|
||||||
>PUSHB.G hSList
|
>PUSHB.G hSList
|
||||||
>PUSHW ZPCLBufPtr
|
>PUSHW ZPCLBufPtr
|
||||||
|
|
||||||
>SYSCALL SListNewKey
|
>SYSCALL SListNewKey
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPKeyID
|
>STYA ZPKeyID
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr NextKW
|
jsr NextKW
|
||||||
|
|
||||||
bit ZPType
|
bit ZPType
|
||||||
bvs .1
|
bvs .1
|
||||||
|
|
||||||
>PULLW ZPAddrPtr
|
>PULLW ZPAddrPtr
|
||||||
|
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.1 >PULLA
|
.1 >PULLA
|
||||||
sta (ZPDataPtr)
|
sta (ZPDataPtr)
|
||||||
>PULLA
|
>PULLA
|
||||||
ldy #1
|
ldy #1
|
||||||
sta (ZPDataPtr),y
|
sta (ZPDataPtr),y
|
||||||
|
|
||||||
>LDYA ZPDataPtr
|
>LDYA ZPDataPtr
|
||||||
>STYA ZPAddrPtr
|
>STYA ZPAddrPtr
|
||||||
|
|
||||||
lda ZPDataPtr
|
lda ZPDataPtr
|
||||||
clc
|
clc
|
||||||
adc #2
|
adc #2
|
||||||
sta ZPDataPtr
|
sta ZPDataPtr
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
inc ZPDataPtr+1
|
inc ZPDataPtr+1
|
||||||
|
|
||||||
.2 >PUSHB.G hSList
|
.2 >PUSHB.G hSList
|
||||||
|
@ -1027,18 +1027,18 @@ KW.BCOLON >PUSHB.G hSList
|
||||||
|
|
||||||
>SYSCALL SListNewKey
|
>SYSCALL SListNewKey
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPKeyID
|
>STYA ZPKeyID
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr NextKW
|
jsr NextKW
|
||||||
|
|
||||||
lda #SYM.T.CODE
|
lda #SYM.T.CODE
|
||||||
sta ZPType
|
sta ZPType
|
||||||
|
|
||||||
>LDYA ZPCodePtr
|
>LDYA ZPCodePtr
|
||||||
>STYA ZPAddrPtr
|
>STYA ZPAddrPtr
|
||||||
|
|
||||||
>PUSHB.G hSList
|
>PUSHB.G hSList
|
||||||
>PUSHW ZPKeyID
|
>PUSHW ZPKeyID
|
||||||
>PUSHWI ZPType
|
>PUSHWI ZPType
|
||||||
|
|
|
@ -423,7 +423,7 @@ CS.RUN.LOOP >SLEEP
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
>SYSCALL GetErrorMessage
|
>SYSCALL GetErrMsg
|
||||||
>LDYA ZPCLBuf
|
>LDYA ZPCLBuf
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
bcc CS.RUN.LOOP
|
bcc CS.RUN.LOOP
|
||||||
|
|
|
@ -211,8 +211,8 @@ CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID
|
||||||
|
|
||||||
>LEA.G DCB.NIC
|
>LEA.G DCB.NIC
|
||||||
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
>STYA.G IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
>STA.G IOCTL+S.IOCTL.STATCODE
|
>STA.G IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
>PUSHB IPCFG+S.NETCFG.DevID
|
>PUSHB IPCFG+S.NETCFG.DevID
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
|
|
18
BIN/LC.S.txt
18
BIN/LC.S.txt
|
@ -97,6 +97,7 @@ CS.RUN >INC.G ArgIndex
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPNewPath
|
>STYA ZPNewPath
|
||||||
txa
|
txa
|
||||||
>STA.G hSrcNewPath
|
>STA.G hSrcNewPath
|
||||||
|
@ -218,11 +219,12 @@ CS.RUN.FILE jsr FilterMatch
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW ZPFullPath
|
|
||||||
jsr CS.RUN.GetNewPath
|
jsr CS.RUN.GetNewPath
|
||||||
>PUSHYA
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
|
>PUSHW ZPNewPath
|
||||||
>SYSCALL Rename
|
>SYSCALL Rename
|
||||||
jsr CS.RUN.CheckErr
|
bra CS.RUN.CheckErr
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -246,28 +248,30 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetNewPath
|
CS.RUN.GetNewPath
|
||||||
|
>PUSHW ZPNewPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPNewPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPNewPath
|
||||||
|
|
||||||
>LDYA ZPFileName
|
>LDYA ZPFileName
|
||||||
>SYSCALL StrLwr
|
>SYSCALL StrLwr
|
||||||
|
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPNewPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -278,6 +278,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath
|
||||||
tay
|
tay
|
||||||
lda Nod.Table.hName-2,y
|
lda Nod.Table.hName-2,y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
|
>PUSHYA
|
||||||
>SYSCALL StrCmp
|
>SYSCALL StrCmp
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
|
@ -347,18 +348,15 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BuildFilePath
|
CS.RUN.BuildFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>LDYA ZPFullPath
|
|
||||||
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.OpenFile >PUSHW ZPFullPath
|
CS.RUN.OpenFile >PUSHW ZPFullPath
|
||||||
|
|
|
@ -502,8 +502,8 @@ CMD.REN lda (ZPArgVBufPtr)
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
>PUSHW ZPPtr2
|
||||||
>PUSHW ZPArgVBufPtr
|
>PUSHW ZPArgVBufPtr
|
||||||
>LDYA ZPPtr2
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
|
|
||||||
lda ZPTmpW
|
lda ZPTmpW
|
||||||
|
@ -776,6 +776,7 @@ CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult
|
||||||
dey get hVALUE
|
dey get hVALUE
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
|
>PUSHYA
|
||||||
>SYSCALL StrCmp
|
>SYSCALL StrCmp
|
||||||
ror CS if !=
|
ror CS if !=
|
||||||
and #$80
|
and #$80
|
||||||
|
@ -832,8 +833,8 @@ CMD.FOR jsr CORE.StkGetCtx
|
||||||
|
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
beq CMD.E.CSYN
|
beq CMD.E.CSYN
|
||||||
|
>PUSHW L.IN
|
||||||
>PUSHW ZPArgVBufPtr
|
>PUSHW ZPArgVBufPtr
|
||||||
>LDYA L.IN
|
|
||||||
>SYSCALL StrCaseCmp
|
>SYSCALL StrCaseCmp
|
||||||
bcs CMD.E.CSYN
|
bcs CMD.E.CSYN
|
||||||
|
|
||||||
|
|
|
@ -219,29 +219,38 @@ EXP.OP.UNARY.X jsr CMD.CALL.GETFUNC
|
||||||
bra EXP.OP.UNARY.DEF.8 TRUE
|
bra EXP.OP.UNARY.DEF.8 TRUE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.TEST.BINARY lda CORE.Operator
|
EXP.TEST.BINARY lda CORE.Operator
|
||||||
cmp #6 =, !=, <= <, >=, >
|
cmp #6
|
||||||
bcs EXP.TEST.BINARY.NUM
|
bcc EXP.TEST.BINARY.NUM
|
||||||
>LDYA ZPArgVBufPrev
|
|
||||||
|
>LDYA ZPArgVBufPrev =, !=, <= <, >=, >
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
jsr CORE.ArgV.Next
|
jsr CORE.ArgV.Next
|
||||||
beq EXP.TEST.BINARY.ESYN
|
beq EXP.TEST.BINARY.ESYN
|
||||||
|
|
||||||
>PUSHW ZPPtr1
|
>PUSHW ZPPtr1
|
||||||
>LDYA ZPArgVBufPtr
|
>PUSHW ZPArgVBufPtr
|
||||||
>SYSCALL StrCmp
|
>SYSCALL StrCmp
|
||||||
bcs .1 CS if !=
|
bcs .1 CS if !=
|
||||||
|
|
||||||
lda #%010 010 str1 = str2
|
lda #%010 010 str1 = str2
|
||||||
bra EXP.TEST.BINARY.END
|
bra .3
|
||||||
|
|
||||||
.1 asl CS if <
|
.1 asl CS if <
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
lda #%100 010 str1 < str2
|
lda #%100 010 str1 < str2
|
||||||
bra EXP.TEST.BINARY.END
|
bra .3
|
||||||
|
|
||||||
.2 lda #%001 010 str1 > str2
|
.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
|
EXP.TEST.BINARY.ESYN4
|
||||||
jsr IncPStack4
|
jsr IncPStack4
|
||||||
|
@ -259,26 +268,18 @@ EXP.TEST.BINARY.NUM
|
||||||
jsr EXP.GetInt32Arg
|
jsr EXP.GetInt32Arg
|
||||||
bcs EXP.TEST.BINARY.ESYN4
|
bcs EXP.TEST.BINARY.ESYN4
|
||||||
|
|
||||||
>FPU CMP32
|
lda CORE.Operator
|
||||||
|
* clc
|
||||||
|
adc #FPU.lL
|
||||||
tax
|
tax
|
||||||
bmi .4 ACC < ARG
|
jsr A2osX.FPUCALL
|
||||||
|
|
||||||
bne .5
|
lda (pStack)
|
||||||
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
|
|
||||||
beq .8 false
|
beq .8 false
|
||||||
|
|
||||||
lda #$80 true
|
lda #$80 true
|
||||||
|
|
||||||
.8 rts
|
.8 >RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.GetInt8Exp jsr EXP.GET
|
EXP.GetInt8Exp jsr EXP.GET
|
||||||
bcc EXP.GetInt8YA
|
bcc EXP.GetInt8YA
|
||||||
|
|
|
@ -269,7 +269,7 @@ IO.PrintErrMsg ldy #S.PS.RC
|
||||||
|
|
||||||
>PUSHW ZPCLBuf
|
>PUSHW ZPCLBuf
|
||||||
|
|
||||||
>SYSCALL GetErrorMessage
|
>SYSCALL GetErrMsg
|
||||||
|
|
||||||
.8 ldy #S.PS.hStdErr
|
.8 ldy #S.PS.hStdErr
|
||||||
lda (pPS),y
|
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 "-X"
|
||||||
.AT "-Z"
|
.AT "-Z"
|
||||||
.HS 00
|
.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 "<="
|
||||||
.AT ".>"
|
.AT ".>"
|
||||||
.AT ">="
|
.AT ">="
|
||||||
.AT "-EQ"
|
|
||||||
.AT "-NE"
|
|
||||||
.AT "-LT"
|
|
||||||
.AT "-LE"
|
|
||||||
.AT "-GT"
|
|
||||||
.AT "-GE"
|
|
||||||
.HS 00
|
.HS 00
|
||||||
EXP.OP.MATH .AT "+"
|
EXP.OP.MATH .AT "*"
|
||||||
.AT "-"
|
|
||||||
.AT "*"
|
|
||||||
.AT "/"
|
.AT "/"
|
||||||
.AT "MOD"
|
.AT "MOD"
|
||||||
|
.AT "+"
|
||||||
|
.AT "-"
|
||||||
.HS 00
|
.HS 00
|
||||||
EXP.OP.LOGIC .AT "AND"
|
EXP.OP.LOGIC .AT "AND"
|
||||||
.AT "OR"
|
.AT "OR"
|
||||||
.HS 00
|
.HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.OP.BINARY.BITS
|
EXP.OP.BINARY.BITS
|
||||||
.DA #%010
|
.DA #%010 strcmp
|
||||||
.DA #%101
|
.DA #%101
|
||||||
.DA #%100
|
.DA #%100
|
||||||
.DA #%110
|
.DA #%110
|
||||||
.DA #%001
|
.DA #%001
|
||||||
.DA #%011
|
.DA #%011
|
||||||
|
|
||||||
.DA #%010
|
EXP.OP.MATH.FPU .DA #FPU.lMUL,#FPU.lDIV,#FPU.lMOD,#FPU.lADD,#FPU.lSUB
|
||||||
.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
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SET.FLAGS .AS "CXE"
|
SET.FLAGS .AS "CXE"
|
||||||
SET.VARS .DA #bSET.C,#bSET.X,#bSET.E
|
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
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW ZPFullPath
|
|
||||||
jsr CS.RUN.GetNewPath
|
jsr CS.RUN.GetNewPath
|
||||||
>PUSHYA
|
>PUSHW ZPFullPath
|
||||||
|
>PUSHW ZPNewPath
|
||||||
>SYSCALL Rename
|
>SYSCALL Rename
|
||||||
jsr CS.RUN.CheckErr
|
|
||||||
|
bra CS.RUN.CheckErr
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -246,28 +247,29 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetNewPath
|
CS.RUN.GetNewPath
|
||||||
|
>PUSHW ZPNewPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPNewPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
>LDYA ZPFileName
|
>LDYA ZPFileName
|
||||||
>SYSCALL StrUpr
|
>SYSCALL StrUpr
|
||||||
|
|
||||||
|
>PUSHW ZPNewPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPNewPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -157,7 +157,7 @@ CS.RUN.ROOT ldy #0
|
||||||
>PUSHW ZPStrPtr
|
>PUSHW ZPStrPtr
|
||||||
>SYSCALL MD5
|
>SYSCALL MD5
|
||||||
>PUSHW ZPStrPtr
|
>PUSHW ZPStrPtr
|
||||||
>LEA.G PW+S.PW.PASSWD
|
>PUSHEA.G PW+S.PW.PASSWD
|
||||||
>SYSCALL StrCmp
|
>SYSCALL StrCmp
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
|
|
@ -155,10 +155,12 @@ CS.RUN.RmDir lda bDelete
|
||||||
>SYSCALL Remove
|
>SYSCALL Remove
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >PUSHW L.CMD.RM
|
.1 >PUSHW ZPStrPtr
|
||||||
>LDYA ZPStrPtr
|
>PUSHW L.CMD.RM
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPStrPtr
|
||||||
|
|
||||||
lda pData
|
lda pData
|
||||||
clc
|
clc
|
||||||
adc #S.PW.DIR
|
adc #S.PW.DIR
|
||||||
|
@ -166,7 +168,6 @@ CS.RUN.RmDir lda bDelete
|
||||||
lda pData+1
|
lda pData+1
|
||||||
adc /S.PW.DIR
|
adc /S.PW.DIR
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPStrPtr
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
|
|
||||||
>PUSHW ZPStrPtr
|
>PUSHW ZPStrPtr
|
||||||
|
|
|
@ -344,13 +344,14 @@ CS.RUN.CheckErr bcc .9
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetFilePath
|
CS.RUN.GetFilePath
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hSrcBasePath
|
>LDA.G hSrcBasePath
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPFullPath
|
||||||
>PUSHW ZPFileName
|
>PUSHW ZPFileName
|
||||||
>LDYA ZPFullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -355,10 +355,10 @@ STATUS >STYA ZPIOCTL
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -370,7 +370,7 @@ STATUS >STYA ZPIOCTL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.GFX-1
|
ldy #S.DCB.GFX-1
|
||||||
|
|
|
@ -156,10 +156,10 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -172,7 +172,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
@ -183,7 +183,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -199,9 +199,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
.2 lda (ZPBufPtr),y
|
.2 lda (ZPBufPtr),y
|
||||||
|
|
|
@ -157,10 +157,10 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -173,7 +173,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
@ -184,7 +184,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -200,9 +200,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
.2 lda (ZPBufPtr),y
|
.2 lda (ZPBufPtr),y
|
||||||
|
|
|
@ -178,10 +178,10 @@ DRV.CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS >STYA ZPIOCTL
|
STATUS >STYA ZPIOCTL
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldx #S.DIB-1
|
ldx #S.DIB-1
|
||||||
|
@ -204,7 +204,7 @@ STATUS >STYA ZPIOCTL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
stz DCB+S.DCB.NIC.LINK
|
stz DCB+S.DCB.NIC.LINK
|
||||||
|
|
|
@ -153,10 +153,10 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -169,7 +169,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.SND-1
|
ldy #S.DCB.SND-1
|
||||||
|
@ -180,7 +180,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -195,9 +195,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
ldy #S.DCB.SND-1
|
ldy #S.DCB.SND-1
|
||||||
.2 lda (ZPBufPtr),y
|
.2 lda (ZPBufPtr),y
|
||||||
|
|
|
@ -145,11 +145,11 @@ STATUS >STYA ZPIOCTL
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
sta ZPBufPtr+1
|
sta ZPBufPtr+1
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
|
|
@ -155,10 +155,10 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -171,7 +171,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
@ -182,7 +182,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -198,9 +198,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
.2 lda (ZPBufPtr),y
|
.2 lda (ZPBufPtr),y
|
||||||
|
|
|
@ -813,11 +813,11 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
@ -832,7 +832,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
@ -844,7 +844,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -873,9 +873,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
|
|
@ -210,11 +210,11 @@ DRV.CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr GET.IOCTLBUFPTR
|
STATUS jsr GET.IOCTLBUFPTR
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
@ -230,7 +230,7 @@ STATUS jsr GET.IOCTLBUFPTR
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.NIC-1
|
ldy #S.DCB.NIC-1
|
||||||
|
@ -249,9 +249,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr GET.IOCTLBUFPTR
|
CONTROL jsr GET.IOCTLBUFPTR
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.NIC-1
|
ldy #S.DCB.NIC-1
|
||||||
|
|
|
@ -191,10 +191,10 @@ DRV.CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS >STYA ZPIOCTL
|
STATUS >STYA ZPIOCTL
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
ldx #S.DIB-1
|
ldx #S.DIB-1
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
|
@ -213,7 +213,7 @@ STATUS >STYA ZPIOCTL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
stz DCB+S.DCB.NIC.LINK
|
stz DCB+S.DCB.NIC.LINK
|
||||||
|
|
|
@ -205,11 +205,11 @@ DRV.CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr GET.IOCTLBUFPTR
|
STATUS jsr GET.IOCTLBUFPTR
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
@ -225,7 +225,7 @@ STATUS jsr GET.IOCTLBUFPTR
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.NIC-1
|
ldy #S.DCB.NIC-1
|
||||||
|
|
|
@ -256,7 +256,7 @@ SYS.Shift .EQ $68
|
||||||
SYS.ArgV .EQ $6A
|
SYS.ArgV .EQ $6A
|
||||||
SYS.ArgVDup .EQ $6C
|
SYS.ArgVDup .EQ $6C
|
||||||
* ERROR
|
* ERROR
|
||||||
SYS.GetErrorMessage .EQ $6E
|
SYS.GetErrMsg .EQ $6E
|
||||||
* STDLIB
|
* STDLIB
|
||||||
SYS.AToF .EQ $70
|
SYS.AToF .EQ $70
|
||||||
SYS.AToI .EQ $72
|
SYS.AToI .EQ $72
|
||||||
|
@ -398,18 +398,18 @@ IOCTL.IRQ .EQ 20
|
||||||
S.IOCTL.CNT .EQ 0
|
S.IOCTL.CNT .EQ 0
|
||||||
S.IOCTL.UNITNUM .EQ 1
|
S.IOCTL.UNITNUM .EQ 1
|
||||||
S.IOCTL.BUFPTR .EQ 2
|
S.IOCTL.BUFPTR .EQ 2
|
||||||
S.IOCTL.STATCODE .EQ 4 1 BYTE
|
S.IOCTL.S .EQ 4 1 BYTE
|
||||||
S.IOCTL.STATCODE.STATUS .EQ 0
|
S.IOCTL.S.STATUS .EQ 0
|
||||||
S.IOCTL.STATCODE.GETDCB .EQ 1
|
S.IOCTL.S.GETDCB .EQ 1
|
||||||
S.IOCTL.STATCODE.GETNL .EQ 2
|
S.IOCTL.S.GETNL .EQ 2
|
||||||
S.IOCTL.STATCODE.GETDIB .EQ 3
|
S.IOCTL.S.GETDIB .EQ 3
|
||||||
S.IOCTL.STATCODE.EOF .EQ 4
|
S.IOCTL.S.EOF .EQ 4
|
||||||
S.IOCTL.CTRLCODE .EQ 4 1 BYTE
|
S.IOCTL.C .EQ 4 1 BYTE
|
||||||
S.IOCTL.CTRLCODE.RESET .EQ 0
|
S.IOCTL.C.RESET .EQ 0
|
||||||
S.IOCTL.CTRLCODE.SETDCB .EQ 1
|
S.IOCTL.C.SETDCB .EQ 1
|
||||||
S.IOCTL.CTRLCODE.SETNL .EQ 2
|
S.IOCTL.C.SETNL .EQ 2
|
||||||
S.IOCTL.CTRLCODE.IRQ .EQ 3
|
S.IOCTL.C.IRQ .EQ 3
|
||||||
S.IOCTL.CTRLCODE.EJECT .EQ 4
|
S.IOCTL.C.EJECT .EQ 4
|
||||||
S.IOCTL.BLKNUM .EQ 4 3 BYTES
|
S.IOCTL.BLKNUM .EQ 4 3 BYTES
|
||||||
S.IOCTL.BYTECNT .EQ 4 2 BYTES
|
S.IOCTL.BYTECNT .EQ 4 2 BYTES
|
||||||
S.IOCTL.ADDRPTR .EQ 6 3 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.DSOCK .EQ 10
|
||||||
S.FD.T.SSOCK .EQ 12
|
S.FD.T.SSOCK .EQ 12
|
||||||
S.FD.T.PIPE .EQ 14
|
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.REF .EQ 2
|
||||||
S.FD.REG.IOBUF .EQ 3
|
S.FD.REG.IOBUF .EQ 3
|
||||||
|
@ -504,7 +504,7 @@ S.FD.DEV .EQ 12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* S.FD.LNK
|
* S.FD.LNK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.FD.DSOCK.IOHANDLER .EQ 2
|
S.FD.DSOCK.IOH .EQ 2
|
||||||
S.FD.DSOCK.OPEN .EQ 3
|
S.FD.DSOCK.OPEN .EQ 3
|
||||||
S.FD.DSOCK.CLOSE .EQ 4
|
S.FD.DSOCK.CLOSE .EQ 4
|
||||||
S.FD.DSOCK.READ .EQ 5
|
S.FD.DSOCK.READ .EQ 5
|
||||||
|
@ -513,7 +513,7 @@ S.FD.DSOCK.EOF .EQ 7
|
||||||
*
|
*
|
||||||
S.FD.DSOCK .EQ 8
|
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.OPEN .EQ 3
|
||||||
S.FD.SSOCK.CLOSE .EQ 4
|
S.FD.SSOCK.CLOSE .EQ 4
|
||||||
S.FD.SSOCK.READ .EQ 5
|
S.FD.SSOCK.READ .EQ 5
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.SeekTimeR .EQ 48 LIBBLKDEV Recalibration
|
IO.D2.SeekTimeR .EQ 68 LIBBLKDEV Recalibration
|
||||||
IO.D2.SeekTimeF .EQ 48 LIBBLKDEV Track Formatter
|
IO.D2.SeekTimeF .EQ 68 LIBBLKDEV Track Formatter
|
||||||
IO.D2.SeekTimeB .EQ 48 LIBBLKDEV Boot Block
|
IO.D2.SeekTimeB .EQ 68 LIBBLKDEV Boot Block
|
||||||
IO.D2.SeekTimeP .EQ 48 ProDOS.FX initial
|
IO.D2.SeekTimeP .EQ 68 ProDOS.FX initial
|
||||||
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.D2.Ph0Off .EQ $C080
|
IO.D2.Ph0Off .EQ $C080
|
||||||
|
|
176
INC/MACROS.I.txt
176
INC/MACROS.I.txt
|
@ -129,53 +129,149 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* FPU Entry Point
|
* FPU Entry Point
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FPU.ADD16 .EQ 0
|
FPU.wMUL .EQ 0
|
||||||
FPU.SUB16 .EQ 2
|
FPU.wDIV .EQ 2
|
||||||
FPU.MUL16 .EQ 4
|
FPU.wMOD .EQ 4
|
||||||
FPU.IMUL16 .EQ 6
|
FPU.wADD .EQ 6
|
||||||
FPU.DIV16 .EQ 8
|
FPU.wSUB .EQ 8
|
||||||
FPU.IDIV16 .EQ 10
|
|
||||||
FPU.MOD16 .EQ 12
|
|
||||||
FPU.IMOD16 .EQ 14
|
|
||||||
FPU.CMP16 .EQ 16
|
|
||||||
FPU.ICMP16 .EQ 18
|
|
||||||
|
|
||||||
FPU.ADD32 .EQ 20
|
FPU.wSHL .EQ 10
|
||||||
FPU.SUB32 .EQ 22
|
FPU.wSHR .EQ 12
|
||||||
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.FADD .EQ 40
|
FPU.wL .EQ 14
|
||||||
FPU.FSUB .EQ 42
|
FPU.wLE .EQ 16
|
||||||
FPU.FMULT .EQ 44
|
FPU.wG .EQ 18
|
||||||
FPU.FDIV .EQ 46
|
FPU.wGE .EQ 20
|
||||||
FPU.PWR .EQ 48
|
|
||||||
|
|
||||||
FPU.LOG .EQ 50
|
FPU.wE .EQ 22
|
||||||
FPU.SQR .EQ 52
|
FPU.wNE .EQ 24
|
||||||
FPU.EXP .EQ 54
|
|
||||||
FPU.COS .EQ 56
|
|
||||||
FPU.SIN .EQ 58
|
|
||||||
FPU.TAN .EQ 60
|
|
||||||
FPU.ATAN .EQ 62
|
|
||||||
|
|
||||||
FPU.SETARG .EQ 64 fadd.....
|
FPU.wAND .EQ 26
|
||||||
FPU.SETFAC .EQ 66 log...., PrintF
|
FPU.wOR .EQ 28
|
||||||
|
FPU.wxOR .EQ 30
|
||||||
|
|
||||||
FPU.GETFAC .EQ 68 Copy FAC to (FORPNT)
|
FPU.wLAND .EQ 32
|
||||||
FPU.FCOMP .EQ 70
|
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.iSHL .EQ 46
|
||||||
FPU.QINT .EQ 74 lrintf
|
FPU.iSHR .EQ 48
|
||||||
|
|
||||||
FPU.FIN .EQ 76 sscanf
|
FPU.iL .EQ 50
|
||||||
FPU.FOUT .EQ 78 PrintF
|
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
|
.MA FPU
|
||||||
ldx #FPU.]1
|
ldx #FPU.]1
|
||||||
|
|
|
@ -2,12 +2,12 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
|
|
||||||
int fastcall strlen(char*);
|
int fastcall strlen(char*);
|
||||||
// char* strcat(char*,const char*);
|
char* strcat(char*,const char*);
|
||||||
// char* strcpy(char*,const char*);
|
char* strcpy(char*,const char*);
|
||||||
char* fastcall strdup (char*);
|
char* fastcall strdup (char*);
|
||||||
char* fastcall strupr (char*);
|
char* fastcall strupr (char*);
|
||||||
char* fastcall strlwr (char*);
|
char* fastcall strlwr (char*);
|
||||||
// int strcmp(const char *s1, const char *s2);
|
int strcmp(const char*,const char*);
|
||||||
// int strcasecmp(const char *s1, const char *s2);
|
int strcasecmp(const char*,const char *);
|
||||||
MAN
|
MAN
|
||||||
TEXT include/string.h
|
TEXT include/string.h
|
||||||
|
|
|
@ -10,8 +10,8 @@ WND.Init >PUSHBI 0
|
||||||
|
|
||||||
>LDYA L.DCB.GFX
|
>LDYA L.DCB.GFX
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
>PUSHB WND.Screen+S.OBJ.hPARENT
|
>PUSHB WND.Screen+S.OBJ.hPARENT
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
|
|
|
@ -37,8 +37,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
||||||
>LDYA L.DCB.NIC
|
>LDYA L.DCB.NIC
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
|
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
ldx #IOCTL.STATUS
|
ldx #IOCTL.STATUS
|
||||||
jsr CFG.SET.IOCTL
|
jsr CFG.SET.IOCTL
|
||||||
|
@ -51,8 +51,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG
|
||||||
dex
|
dex
|
||||||
bpl .4
|
bpl .4
|
||||||
|
|
||||||
lda #S.IOCTL.CTRLCODE.SETDCB
|
lda #S.IOCTL.C.SETDCB
|
||||||
sta IOCTL+S.IOCTL.CTRLCODE
|
sta IOCTL+S.IOCTL.C
|
||||||
|
|
||||||
ldx #IOCTL.CONTROL
|
ldx #IOCTL.CONTROL
|
||||||
jsr CFG.SET.IOCTL
|
jsr CFG.SET.IOCTL
|
||||||
|
|
|
@ -265,6 +265,7 @@ DNS.FIND.BY.NAME
|
||||||
ldy #S.DNSCACHE.hNAME
|
ldy #S.DNSCACHE.hNAME
|
||||||
lda (ZPCachePtr),y
|
lda (ZPCachePtr),y
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
|
>PUSHYA
|
||||||
>SYSCALL2 StrCaseCmp
|
>SYSCALL2 StrCaseCmp
|
||||||
plx
|
plx
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST ON
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF lib/string.o
|
.TF lib/string.o
|
||||||
|
@ -12,12 +12,20 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>PSTR "strlen"
|
>PSTR "strlen"
|
||||||
.DA CODE.strlen
|
.DA CODE.strlen
|
||||||
|
>PSTR "strcat"
|
||||||
|
.DA CODE.strcat
|
||||||
|
>PSTR "strcpy"
|
||||||
|
.DA CODE.strcpy
|
||||||
>PSTR "strdup"
|
>PSTR "strdup"
|
||||||
.DA CODE.strdup
|
.DA CODE.strdup
|
||||||
>PSTR "strupr"
|
>PSTR "strupr"
|
||||||
.DA CODE.strupr
|
.DA CODE.strupr
|
||||||
>PSTR "strlwr"
|
>PSTR "strlwr"
|
||||||
.DA CODE.strlwr
|
.DA CODE.strlwr
|
||||||
|
>PSTR "strcmp"
|
||||||
|
.DA CODE.strcmp
|
||||||
|
>PSTR "strcasecmp"
|
||||||
|
.DA CODE.strcasecmp
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CODE.strlen .DA #CODE.strlen.L
|
CODE.strlen .DA #CODE.strlen.L
|
||||||
|
@ -25,7 +33,15 @@ CODE.strlen .DA #CODE.strlen.L
|
||||||
CODE.strlen.L .EQ *-CODE.strlen
|
CODE.strlen.L .EQ *-CODE.strlen
|
||||||
rts
|
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
|
CODE.strdup .DA #CODE.strdup.L
|
||||||
>SYSCALL strdup
|
>SYSCALL strdup
|
||||||
|
@ -42,7 +58,15 @@ CODE.strlwr .DA #CODE.strlwr.L
|
||||||
CODE.strlwr.L .EQ *-CODE.strlwr
|
CODE.strlwr.L .EQ *-CODE.strlwr
|
||||||
rts
|
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
|
MAN
|
||||||
SAVE usr/src/lib/string.o.s
|
SAVE usr/src/lib/string.o.s
|
||||||
|
|
|
@ -711,26 +711,26 @@ XRW.TrackSelect lda #2
|
||||||
lda XRW.ReqTrack
|
lda XRW.ReqTrack
|
||||||
bcc .50
|
bcc .50
|
||||||
|
|
||||||
* lsr Track 160 -> 80+Carry
|
lsr Track 160 -> 80+Carry
|
||||||
* pha
|
pha
|
||||||
|
|
||||||
* lda #0 Carry = Head
|
lda #0 Carry = Head
|
||||||
|
|
||||||
* rol
|
rol
|
||||||
* rol A = 0/2
|
rol A = 0/2
|
||||||
|
|
||||||
* ora A2L
|
ora A2L
|
||||||
* tay y = n0/n2
|
tay y = n0/n2
|
||||||
|
|
||||||
* lda IO.D2.Ph0On,y
|
lda IO.D2.Ph0On,y
|
||||||
* lda IO.D2.Ph0On+4,y
|
lda IO.D2.Ph0On+4,y
|
||||||
|
|
||||||
* jsr XRW.Wait100usec
|
jsr XRW.Wait100usec
|
||||||
|
|
||||||
* lda IO.D2.Ph0Off,y
|
lda IO.D2.Ph0Off,y
|
||||||
* lda IO.D2.Ph0Off+4,y
|
lda IO.D2.Ph0Off+4,y
|
||||||
|
|
||||||
* pla
|
pla
|
||||||
|
|
||||||
.50 sta XRW.ReqTrack2
|
.50 sta XRW.ReqTrack2
|
||||||
|
|
||||||
|
|
|
@ -621,10 +621,12 @@ CS.RUN.REQ.GET ldy #0
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
>PUSHEA.G REQ.FullPath
|
||||||
>PUSHW ZPRootDirPtr
|
>PUSHW ZPRootDirPtr
|
||||||
>LEA.G REQ.FullPath
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHEA.G REQ.FullPath
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -635,7 +637,6 @@ CS.RUN.REQ.GET ldy #0
|
||||||
.2 >LDYA ZPPtr2
|
.2 >LDYA ZPPtr2
|
||||||
|
|
||||||
.3 >PUSHYA
|
.3 >PUSHYA
|
||||||
>LEA.G REQ.FullPath
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
|
@ -112,8 +112,8 @@ CS.INIT.DEV >PUSHBI 0
|
||||||
|
|
||||||
>LDYA L.DCB.NIC
|
>LDYA L.DCB.NIC
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR
|
>STYA IOCTL+S.IOCTL.BUFPTR
|
||||||
lda #S.IOCTL.STATCODE.GETDCB
|
lda #S.IOCTL.S.GETDCB
|
||||||
sta IOCTL+S.IOCTL.STATCODE
|
sta IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
>PUSHB DevID
|
>PUSHB DevID
|
||||||
>PUSHBI IOCTL.STATUS
|
>PUSHBI IOCTL.STATUS
|
||||||
|
|
|
@ -393,18 +393,23 @@ CS.RUN.REG jsr CS.RUN.REG.MSG
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
ldy #hDstBasePath
|
ldy #hDstBasePath
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
|
>PUSHYA
|
||||||
>SYSCALL StrCaseCmp
|
>SYSCALL StrCaseCmp
|
||||||
bcs .3 not same dir, go copy/delete
|
bcs .3 not same dir, go copy/delete
|
||||||
|
|
||||||
jsr CS.RUN.Rename
|
jsr CS.RUN.Rename
|
||||||
jsr CS.RUN.CheckErr
|
jsr CS.RUN.CheckErr
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp CS.RUN.NEXT
|
jmp CS.RUN.NEXT
|
||||||
|
|
||||||
.FIN
|
.FIN
|
||||||
.3 jsr CS.RUN.CopyStart
|
.3 jsr CS.RUN.CopyStart
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
jsr CS.RUN.CheckErr
|
jsr CS.RUN.CheckErr
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp CS.RUN.NEXT
|
jmp CS.RUN.NEXT
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
|
@ -624,38 +629,48 @@ CS.RUN.CheckErr bcs .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BuildFilePath
|
CS.RUN.BuildFilePath
|
||||||
ldy #hSrcBasePath
|
|
||||||
jsr CS.RUN.GetPathY
|
|
||||||
>PUSHYA
|
|
||||||
ldy #hSrcFullPath
|
ldy #hSrcFullPath
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
>SYSCALL StrCpy
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHW ZPFileName
|
ldy #hSrcBasePath
|
||||||
>LDYA ZPPtr1
|
|
||||||
>SYSCALL StrCat
|
|
||||||
.DO X.COPY.TO.DEST=1
|
|
||||||
ldy #hDstBasePath
|
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPPtr1
|
||||||
|
>PUSHW ZPFileName
|
||||||
|
>SYSCALL StrCat
|
||||||
|
|
||||||
|
.DO X.COPY.TO.DEST=1
|
||||||
ldy #hDstFullPath
|
ldy #hDstFullPath
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
ldy #hDstBasePath
|
||||||
|
jsr CS.RUN.GetPathY
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
>SYSCALL StrCpy
|
>SYSCALL StrCpy
|
||||||
|
|
||||||
|
>PUSHW ZPPtr1
|
||||||
|
|
||||||
ldy #hDstFileName
|
ldy #hDstFileName
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.1 >PUSHW ZPFileName
|
.1 >PUSHW ZPFileName
|
||||||
|
|
||||||
.2 >LDYA ZPPtr1
|
.2 >SYSCALL StrCat
|
||||||
>SYSCALL StrCat
|
|
||||||
.FIN
|
.FIN
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -484,8 +484,9 @@ EnterSubDirY lda (pData),y
|
||||||
>STYA ZPPtr1 save full path
|
>STYA ZPPtr1 save full path
|
||||||
|
|
||||||
jsr .1 Make sure ending with /
|
jsr .1 Make sure ending with /
|
||||||
|
|
||||||
|
>PUSHW ZPPtr1
|
||||||
>PUSHW ZPPtr2
|
>PUSHW ZPPtr2
|
||||||
>LDYA ZPPtr1
|
|
||||||
>SYSCALL StrCat
|
>SYSCALL StrCat
|
||||||
|
|
||||||
.1 jsr GetPtr1Len
|
.1 jsr GetPtr1Len
|
||||||
|
|
|
@ -404,11 +404,11 @@ DRV.CS.START cld
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS jsr STATUS.CONTROL.Init
|
STATUS jsr STATUS.CONTROL.Init
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne STATUS.DCB
|
bne STATUS.DCB
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
@ -423,7 +423,7 @@ STATUS jsr STATUS.CONTROL.Init
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
@ -436,7 +436,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
lda DIB+S.DIB.S
|
lda DIB+S.DIB.S
|
||||||
|
@ -473,9 +473,9 @@ STATUS.9 lda #MLI.E.BADCTL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CONTROL jsr STATUS.CONTROL.Init
|
CONTROL jsr STATUS.CONTROL.Init
|
||||||
|
|
||||||
ldy #S.IOCTL.CTRLCODE
|
ldy #S.IOCTL.C
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
cmp #S.IOCTL.C.SETDCB
|
||||||
bne STATUS.9
|
bne STATUS.9
|
||||||
|
|
||||||
ldy #S.DCB.COM-1
|
ldy #S.DCB.COM-1
|
||||||
|
|
|
@ -21,7 +21,7 @@ K.Shift jsr K.ArgV
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 jsr SHARED.AddYp1ToPtr1
|
.2 jsr SHARED.AddYp12P1
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ K.Shift jsr K.ArgV
|
||||||
tya
|
tya
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SHARED.AddYp1ToPtr2
|
jsr SHARED.AddYp12P2
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 ldy #S.PS.ARGC
|
.8 ldy #S.PS.ARGC
|
||||||
|
@ -63,10 +63,10 @@ K.ArgV tax save requested arg#
|
||||||
beq .9 yes, not found....
|
beq .9 yes, not found....
|
||||||
dex
|
dex
|
||||||
bmi .7
|
bmi .7
|
||||||
.3 jsr SHARED.GetCharPtr2 skip str
|
.3 jsr SHARED.GetCP2 skip str
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
jsr SHARED.NextCharPtr2 skip \0
|
jsr SHARED.NextCP2 skip \0
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.7 >LDYA ZPPtr2
|
.7 >LDYA ZPPtr2
|
||||||
|
@ -99,7 +99,7 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
||||||
ldx #0 Arg Count
|
ldx #0 Arg Count
|
||||||
ldy #0 bInQuote
|
ldy #0 bInQuote
|
||||||
|
|
||||||
.1 jsr SHARED.GetCharPtr1
|
.1 jsr SHARED.GetCP1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
|
@ -120,18 +120,18 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
||||||
|
|
||||||
inx Found one arg !!!
|
inx Found one arg !!!
|
||||||
lda #0 set this token End
|
lda #0 set this token End
|
||||||
jsr SHARED.PutCharPtr2
|
jsr SHARED.PutCP2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 lda #C.SPACE
|
.4 lda #C.SPACE
|
||||||
.6 jsr SHARED.PutCharPtr2
|
.6 jsr SHARED.PutCP2
|
||||||
|
|
||||||
.7 jsr SHARED.GetCharPtr1
|
.7 jsr SHARED.GetCP1
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
inx
|
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
|
sta (ZPPtr2) set Array Ending 0
|
||||||
phx
|
phx
|
||||||
|
@ -182,15 +182,7 @@ K.ArgVDup >STYA ZPPtr1
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
phx
|
phx
|
||||||
|
|
||||||
jsr ARG.Ptr1Ptr2cpy
|
ldx #0
|
||||||
|
|
||||||
txa Count
|
|
||||||
plx hMem
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
ARG.Ptr1Ptr2cpy ldx #0
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.4 lda (ZPPtr1),y
|
.4 lda (ZPPtr1),y
|
||||||
|
@ -215,7 +207,12 @@ ARG.Ptr1Ptr2cpy ldx #0
|
||||||
.7 lda (ZPPtr1),y
|
.7 lda (ZPPtr1),y
|
||||||
sta (ZPPtr2),y Ending \0 ?
|
sta (ZPPtr2),y Ending \0 ?
|
||||||
bne .5
|
bne .5
|
||||||
rts
|
|
||||||
|
txa Count
|
||||||
|
plx hMem
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.arg
|
SAVE usr/src/sys/kernel.s.arg
|
||||||
|
|
|
@ -172,7 +172,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
||||||
>PUSHYA Push AUXTYPE
|
>PUSHYA Push AUXTYPE
|
||||||
|
|
||||||
jsr K.LoadFile
|
jsr K.LoadFile
|
||||||
bcs BIN.Load.Free.RTS Error Loading file
|
bcs .9 Error Loading file
|
||||||
|
|
||||||
stx BIN.hMem save hMem
|
stx BIN.hMem save hMem
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPPtr1 set ZPPtr1 -> New Code start
|
>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
|
jsr Mem.SetOwnerPS0 this CS is owned by PS 0
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ BIN.Load.1 >PUSHWI K.Buf256
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
ply
|
ply
|
||||||
jsr BIN.ComputeCSEndYA
|
jsr BIN.CompCSEndYA
|
||||||
jsr BIN.RelExe
|
jsr BIN.RelExe
|
||||||
|
|
||||||
>LDYAI K.Buf256 get back bin path
|
>LDYAI K.Buf256 get back bin path
|
||||||
|
@ -221,14 +221,14 @@ BIN.Load.1 >PUSHWI K.Buf256
|
||||||
clc
|
clc
|
||||||
jmp MEM.GetMEMPTR ...and Y,A=PTR to CS
|
jmp MEM.GetMEMPTR ...and Y,A=PTR to CS
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
|
||||||
BIN.Load.Free php
|
BIN.Load.Free php
|
||||||
pha
|
pha
|
||||||
lda BIN.hMem
|
lda BIN.hMem
|
||||||
jsr K.FreeMem
|
jsr K.FreeMem
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
|
|
||||||
BIN.Load.Free.RTS
|
|
||||||
rts Discard Loaded Code, exits CS
|
rts Discard Loaded Code, exits CS
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # InsDrv
|
* # InsDrv
|
||||||
|
@ -247,7 +247,7 @@ BIN.Load.Free.RTS
|
||||||
K.InsDrv >STYA ZPPtr3 SRC PTR for move
|
K.InsDrv >STYA ZPPtr3 SRC PTR for move
|
||||||
>PULLW BIN.R.CS.Start
|
>PULLW BIN.R.CS.Start
|
||||||
>PULLYA DRV.CS.SIZE
|
>PULLYA DRV.CS.SIZE
|
||||||
jsr BIN.ComputeCSEndYA
|
jsr BIN.CompCSEndYA
|
||||||
>PULLA BIN.R.End
|
>PULLA BIN.R.End
|
||||||
sta BIN.R.End
|
sta BIN.R.End
|
||||||
sec
|
sec
|
||||||
|
@ -265,7 +265,7 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move
|
||||||
>STYA ZPPtr4 ...for move...
|
>STYA ZPPtr4 ...for move...
|
||||||
sty .7+1 ...and for exit
|
sty .7+1 ...and for exit
|
||||||
sta .8+1
|
sta .8+1
|
||||||
jsr BIN.ComputeOffsetYA
|
jsr BIN.CompOfsYA
|
||||||
|
|
||||||
lda BIN.R.Size
|
lda BIN.R.Size
|
||||||
eor #$ff
|
eor #$ff
|
||||||
|
@ -305,20 +305,20 @@ BIN.RelExe ldy #H.BIN.T+1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 ldy #H.BIN.JMP relocate Main JMP
|
.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
|
.HS 2C bit abs
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
BIN.RelDrv ldy #2 start after CLD JMP
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr1),y HI in A
|
lda (ZPPtr1),y HI in A
|
||||||
beq .2 $00xx = end of table
|
beq .2 $00xx = end of table
|
||||||
|
|
||||||
dey
|
dey
|
||||||
jsr BIN.RelocateAtPtr1Y
|
jsr BIN.RelAtPtr1Y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -327,7 +327,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
||||||
|
|
||||||
bra .1
|
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
|
* + 1 to skip last 00 from beq .2
|
||||||
* ZPPtr1=Current Code PTR
|
* ZPPtr1=Current Code PTR
|
||||||
lda BIN.R.CS.End
|
lda BIN.R.CS.End
|
||||||
|
@ -353,11 +353,11 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
||||||
and #7 save Opcode length...
|
and #7 save Opcode length...
|
||||||
pha
|
pha
|
||||||
ldy #1
|
ldy #1
|
||||||
jsr BIN.RelocateAtPtr1Y
|
jsr BIN.RelAtPtr1Y
|
||||||
pla get back Opcode length...
|
pla get back Opcode length...
|
||||||
|
|
||||||
.5 tay A = OPCODE length
|
.5 tay A = OPCODE length
|
||||||
jsr SHARED.AddYToPtr1
|
jsr SHARED.AddY2P1
|
||||||
|
|
||||||
.6 cmp BIN.R.Stop A = ZPPtr1
|
.6 cmp BIN.R.Stop A = ZPPtr1
|
||||||
bne .3
|
bne .3
|
||||||
|
@ -369,8 +369,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
||||||
clc Make sure exit with CC
|
clc Make sure exit with CC
|
||||||
rts
|
rts
|
||||||
*-------------------------------------- YA = CS Size
|
*-------------------------------------- YA = CS Size
|
||||||
BIN.ComputeCSEndYA
|
BIN.CompCSEndYA pha
|
||||||
pha
|
|
||||||
tya
|
tya
|
||||||
clc
|
clc
|
||||||
adc BIN.R.CS.Start
|
adc BIN.R.CS.Start
|
||||||
|
@ -380,8 +379,7 @@ BIN.ComputeCSEndYA
|
||||||
sta BIN.R.CS.End+1
|
sta BIN.R.CS.End+1
|
||||||
rts
|
rts
|
||||||
*-------------------------------------- YA = Target Address
|
*-------------------------------------- YA = Target Address
|
||||||
BIN.ComputeOffSetYA
|
BIN.CompOfsYA pha
|
||||||
pha
|
|
||||||
tya
|
tya
|
||||||
sec
|
sec
|
||||||
sbc BIN.R.CS.Start
|
sbc BIN.R.CS.Start
|
||||||
|
@ -391,8 +389,7 @@ BIN.ComputeOffSetYA
|
||||||
sta BIN.R.Offset+1
|
sta BIN.R.Offset+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.RelocateAtPtr1Y
|
BIN.RelAtPtr1Y lda (ZPPtr1),y Get LO
|
||||||
lda (ZPPtr1),y Get LO
|
|
||||||
tax save LO in X
|
tax save LO in X
|
||||||
iny make Y point to HI
|
iny make Y point to HI
|
||||||
lda (ZPPtr1),y Get HI
|
lda (ZPPtr1),y Get HI
|
||||||
|
|
|
@ -1,18 +1,19 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPBLISTXIBlkPtr .EQ ZPMEMMGR+12
|
IBlkPtr .EQ ZPMEMMGR+12
|
||||||
ZPBLISTXDBlkPtr .EQ ZPMEMMGR+14
|
DBlkPtr .EQ ZPMEMMGR+14
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.BytePtr .BS 1
|
KeyID .EQ *
|
||||||
BLISTX.BlockPtr .BS 1
|
iByte .BS 1
|
||||||
|
iBlk .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
||||||
ldx #S.MEM.F.INIT0+8 index
|
ldx #S.MEM.F.INIT0+8 index
|
||||||
jsr MEM.GetMem.YAX
|
jsr MEM.GetMem.YAX
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPBLISTXIBlkPtr
|
>STYA IBlkPtr
|
||||||
stx .8+1
|
stx .8+1
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
|
@ -20,12 +21,12 @@ BLISTX.New >LDYAI 128 32k Max before out of memory!!!
|
||||||
jsr MEM.GetMem.YAX
|
jsr MEM.GetMem.YAX
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPBLISTXDBlkPtr
|
>STYA DBlkPtr
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPBLISTXDBlkPtr)
|
sta (DBlkPtr)
|
||||||
txa
|
txa
|
||||||
sta (ZPBLISTXIBlkPtr)
|
sta (IBlkPtr)
|
||||||
|
|
||||||
.8 lda #$ff SELF MODIFIED
|
.8 lda #$ff SELF MODIFIED
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -47,23 +48,21 @@ BLISTX.Free pha
|
||||||
.8 pla
|
.8 pla
|
||||||
jmp K.FreeMem
|
jmp K.FreeMem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.GetNextByte
|
BLISTX.GetNByte ldy iByte
|
||||||
ldy BLISTX.BytePtr
|
lda (DBlkPtr),y
|
||||||
lda (ZPBLISTXDBlkPtr),y
|
|
||||||
BLISTX.ToNextByte
|
BLISTX.2NByte inc iByte
|
||||||
inc BLISTX.BytePtr
|
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
jsr BLISTX.ToNextBlock
|
jsr BLISTX.2NBlk
|
||||||
pla
|
pla
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.AddDataByte
|
BLISTX.AddByte phy
|
||||||
phy
|
ldy iByte
|
||||||
ldy BLISTX.BytePtr
|
sta (DBlkPtr),y
|
||||||
sta (ZPBLISTXDBlkPtr),y
|
inc iByte
|
||||||
inc BLISTX.BytePtr
|
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
phx
|
phx
|
||||||
|
@ -72,13 +71,13 @@ BLISTX.AddDataByte
|
||||||
jsr MEM.GetMem.YAX
|
jsr MEM.GetMem.YAX
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPBLISTXDBlkPtr
|
>STYA DBlkPtr
|
||||||
txa
|
txa
|
||||||
inc BLISTX.BlockPtr
|
inc iBlk
|
||||||
ldy BLISTX.BlockPtr
|
ldy iBlk
|
||||||
sta (ZPBLISTXIBlkPtr),y
|
sta (IBlkPtr),y
|
||||||
|
|
||||||
* stz BLISTX.BytePtr
|
* stz iByte
|
||||||
plx
|
plx
|
||||||
|
|
||||||
.8 ply
|
.8 ply
|
||||||
|
@ -89,20 +88,18 @@ BLISTX.AddDataByte
|
||||||
ply
|
ply
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.SetBlockByte
|
BLISTX.SetBlkByte
|
||||||
ldy BLISTX.BytePtr
|
ldy iByte
|
||||||
sta (ZPBLISTXDBlkPtr),y
|
sta (DBlkPtr),y
|
||||||
inc BLISTX.BytePtr
|
inc iByte
|
||||||
bne BLISTX.ToNextBlock.RTS
|
bne BLISTX.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLISTX.ToNextBlock
|
BLISTX.2NBlk inc iBlk
|
||||||
inc BLISTX.BlockPtr
|
ldy iBlk
|
||||||
ldy BLISTX.BlockPtr
|
lda (IBlkPtr),y
|
||||||
lda (ZPBLISTXIBlkPtr),y
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPBLISTXDBlkPtr
|
>STYA DBlkPtr
|
||||||
BLISTX.ToNextBlock.RTS
|
BLISTX.RTS rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.blistx
|
SAVE usr/src/sys/kernel.s.blistx
|
||||||
|
|
|
@ -337,10 +337,12 @@ CORE.Dispatch ldx #1 skip PS0
|
||||||
* X unmodified
|
* X unmodified
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.GetPSByID jsr CORE.GetPS
|
CORE.GetPSByID jsr CORE.GetPS
|
||||||
bcs CORE.GetPS.RTS
|
bcs .9
|
||||||
|
|
||||||
lda PS.TABLE.hPS,y
|
lda PS.TABLE.hPS,y
|
||||||
jmp K.GetMemPtr
|
jmp K.GetMemPtr
|
||||||
|
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* X,A unmodified
|
* X,A unmodified
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -362,7 +364,7 @@ CORE.GetPS tay
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
CORE.GetPS.RTS rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*CORE.DumpEvent ldy #S.EVT-1
|
*CORE.DumpEvent ldy #S.EVT-1
|
||||||
*.1 >PUSHB (pEvent),y
|
*.1 >PUSHB (pEvent),y
|
||||||
|
@ -470,35 +472,6 @@ CORE.PSResume sei
|
||||||
inc IRQ.InKernel
|
inc IRQ.InKernel
|
||||||
rti
|
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.VBLState .BS 1
|
||||||
CORE.TickPerSec .BS 1
|
CORE.TickPerSec .BS 1
|
||||||
CORE.TickPer10t .BS 1
|
CORE.TickPer10t .BS 1
|
||||||
|
|
|
@ -9,13 +9,12 @@ C1 .EQ Mem.MHiMem
|
||||||
C2 .EQ Mem.XLoMem
|
C2 .EQ Mem.XLoMem
|
||||||
C3 .EQ Mem.XHiMem
|
C3 .EQ Mem.XHiMem
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C4 .EQ A2osX.GP.SC
|
C4 .EQ GP.CE-GP.CS
|
||||||
C5 .EQ A2osX.AUX.S
|
C5 .EQ AUX.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
C6 .EQ A2osX.D1.S
|
C6 .EQ D1.S
|
||||||
C7 .EQ A2osX.D2.S
|
C7 .EQ D2.S
|
||||||
C8 .EQ A2osX.E0.S
|
C8 .EQ E0.S
|
||||||
C9 .EQ DevMgr.FreeMem
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.DO Mem.MLoMem>$2000
|
.DO Mem.MLoMem>$2000
|
||||||
|
@ -28,17 +27,17 @@ C9 .EQ DevMgr.FreeMem
|
||||||
* ERROR:AUX too big
|
* ERROR:AUX too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.GP.SC>$1D0
|
.DO C4>$1D0
|
||||||
.LIST ON
|
.LIST ON
|
||||||
* ERROR:GP too big
|
* ERROR:GP too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.D1.S>$1000
|
.DO D1.S>$1000
|
||||||
.LIST ON
|
.LIST ON
|
||||||
* ERROR:BNK1 too big
|
* ERROR:BNK1 too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.D2.S>$1000
|
.DO D2.S>$1000
|
||||||
.LIST ON
|
.LIST ON
|
||||||
* ERROR:BNK2 too big
|
* ERROR:BNK2 too big
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
|
|
|
@ -119,10 +119,10 @@ IO.hFD .BS 1
|
||||||
IO.hDevNod .BS 1
|
IO.hDevNod .BS 1
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SaveSM .EQ $100 Aux
|
SaveSM .EQ $100 Aux
|
||||||
A2osX.SaveSX .EQ $101 Aux
|
SaveSX .EQ $101 Aux
|
||||||
A2osX.NumStrLen .EQ $102 Aux
|
*FOUTBufPtr .EQ $102 Aux
|
||||||
A2osX.NumStrBuf .EQ $103 Aux
|
FOUTBuf .EQ $103 Aux
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
|
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
|
||||||
* Main $300 -> 3EF : <free>
|
* Main $300 -> 3EF : <free>
|
||||||
|
@ -186,21 +186,15 @@ H.BIN.CS.SIZE .EQ 8
|
||||||
H.BIN.DS.SIZE .EQ 10
|
H.BIN.DS.SIZE .EQ 10
|
||||||
H.BIN.SS.SIZE .EQ 12
|
H.BIN.SS.SIZE .EQ 12
|
||||||
H.BIN.ZP.SIZE .EQ 13
|
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.DEVID .EQ 0
|
||||||
S.DCB.TTY.STATUS .EQ 1
|
S.DCB.TTY.S .EQ 1
|
||||||
S.DCB.TTY.MODE .EQ 2
|
S.DCB.TTY.M .EQ 2
|
||||||
S.DCB.TTY.MODE.ESC .EQ 2
|
S.DCB.TTY.M.ESC .EQ 2
|
||||||
S.DCB.TTY.MODE.CSI .EQ 4
|
S.DCB.TTY.M.CSI .EQ 4
|
||||||
S.DCB.TTY.MODE.IAC .EQ 6
|
S.DCB.TTY.M.IAC .EQ 6
|
||||||
S.DCB.TTY.MODE.G0 .EQ 8
|
S.DCB.TTY.M.G0 .EQ 8
|
||||||
S.DCB.TTY.MODE.G1 .EQ 10
|
S.DCB.TTY.M.G1 .EQ 10
|
||||||
S.DCB.TTY.CH .EQ 3
|
S.DCB.TTY.CH .EQ 3
|
||||||
S.DCB.TTY.CH.SAVE .EQ 4
|
S.DCB.TTY.CH.SAVE .EQ 4
|
||||||
S.DCB.TTY.CV .EQ 5
|
S.DCB.TTY.CV .EQ 5
|
||||||
|
|
|
@ -59,7 +59,7 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
|
||||||
lda Nod.Table.hFD-2,x
|
lda Nod.Table.hFD-2,x
|
||||||
jsr K.GetMemPtr Y,A = pPD, X = hDevNod
|
jsr K.GetMemPtr Y,A = pPD, X = hDevNod
|
||||||
|
|
||||||
>STYA pFD for UNISTD.Open
|
>STYA pFD for IO.Open
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
@ -107,10 +107,10 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
bcs K.GetDev.9
|
bcs K.GetDev.9
|
||||||
|
|
||||||
lda #S.IOCTL.STATCODE.GETDIB
|
lda #S.IOCTL.S.GETDIB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.GetDevStatus
|
DEV.GetDevStatus
|
||||||
sta K.S.IOCTL+S.IOCTL.STATCODE
|
sta K.S.IOCTL+S.IOCTL.S
|
||||||
|
|
||||||
ldy #S.FD.DEV.DEVID
|
ldy #S.FD.DEV.DEVID
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -132,8 +132,7 @@ DEV.pDrvJmp jmp (pDrv)
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* A = hDEV
|
* A = hDEV
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.MKDev >PULLW ZPPtr2 ptr2=name
|
K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
>PULLW ZPPtr1 ptr1=fd
|
|
||||||
|
|
||||||
ldx #1
|
ldx #1
|
||||||
|
|
||||||
|
@ -193,7 +192,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
|
||||||
|
|
||||||
jsr DEV.GetPDrv
|
jsr DEV.GetPDrv
|
||||||
|
|
||||||
lda #S.IOCTL.STATCODE.STATUS
|
lda #S.IOCTL.S.STATUS
|
||||||
jsr DEV.GetDevStatus
|
jsr DEV.GetDevStatus
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ K.ReadDir.hBuf .BS 1
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir jsr PFT.CheckNodeA
|
K.ReadDir jsr PFT.CheckNodeA
|
||||||
bcs K.ReadDir.RTS
|
bcs DIRENT.RTS
|
||||||
|
|
||||||
ldy #S.FD.REG.REF
|
ldy #S.FD.REG.REF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -60,14 +60,14 @@ K.ReadDir jsr PFT.CheckNodeA
|
||||||
jmp K.ReadDir.DEV
|
jmp K.ReadDir.DEV
|
||||||
|
|
||||||
.1 jmp K.ReadDir.DIR
|
.1 jmp K.ReadDir.DIR
|
||||||
K.ReadDir.NoMore
|
|
||||||
lda #MLI.E.EOF
|
DIRENT.EOF lda #MLI.E.EOF
|
||||||
sec
|
sec
|
||||||
K.ReadDir.RTS rts
|
DIRENT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
bne K.ReadDir.NoMore
|
bne DIRENT.EOF
|
||||||
|
|
||||||
stz K.MLI.PARAMS+1 All Volumes
|
stz K.MLI.PARAMS+1 All Volumes
|
||||||
>LDYAI K.Buf256
|
>LDYAI K.Buf256
|
||||||
|
@ -75,12 +75,12 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
>MLICALL MLIONLINE
|
>MLICALL MLIONLINE
|
||||||
bcs K.ReadDir.RTS
|
bcs DIRENT.RTS
|
||||||
|
|
||||||
>LDYAI 16+S.STAT*18+1 14*(Vols+Stat) + 4*(PFT+Stat) + \0
|
>LDYAI 16+S.STAT*18+1 14*(Vols+Stat) + 4*(PFT+Stat) + \0
|
||||||
|
|
||||||
jsr K.ReadDir.GetBufYA
|
jsr K.ReadDir.GetBufYA
|
||||||
bcs K.ReadDir.RTS
|
bcs DIRENT.RTS
|
||||||
|
|
||||||
lda #16
|
lda #16
|
||||||
sta K.ReadDir.EC
|
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
|
sta (pFD),y Flag that we returned something for next time
|
||||||
jmp K.ReadDir.EXIT
|
jmp K.ReadDir.EXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.DEV
|
K.ReadDir.DEV jmp DIRENT.EOF TODO : /dev
|
||||||
jmp K.ReadDir.NoMore
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,11 @@ DRV.DiskII cld
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA DRV.DiskII.STATUS
|
.1 .DA DRV.DiskII.S
|
||||||
.DA DRV.BLK READ
|
.DA DRV.BLK READ
|
||||||
.DA DRV.BLK WRITE
|
.DA DRV.BLK WRITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.DiskII.STATUS
|
DRV.DiskII.S >LDYAI DRV.DiskII.DIB
|
||||||
>LDYAI DRV.DiskII.DIB
|
|
||||||
jmp DRV.STATUS.YA
|
jmp DRV.STATUS.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
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
|
bcs DRV.RamDrive.9
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA DRV.RamDrive.STATUS
|
.1 .DA DRV.RamDrive.S
|
||||||
.DA DRV.BLK READ
|
.DA DRV.BLK READ
|
||||||
.DA DRV.BLK WRITE
|
.DA DRV.BLK WRITE
|
||||||
.DA DRV.BLK FORMAT
|
.DA DRV.BLK FORMAT
|
||||||
DRV.RamDrive.9 jmp A2osX.BadCall
|
DRV.RamDrive.9 jmp A2osX.BadCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.RamDrive.STATUS
|
DRV.RamDrive.S jsr DRV.Blk
|
||||||
jsr DRV.Blk
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx DRV.RamDrive.DIB+S.DIB.SIZE
|
stx DRV.RamDrive.DIB+S.DIB.SIZE
|
||||||
sty DRV.RamDrive.DIB+S.DIB.SIZE+1
|
sty DRV.RamDrive.DIB+S.DIB.SIZE+1
|
||||||
>LDYAI DRV.RamDrive.DIB
|
>LDYAI DRV.RamDrive.DIB
|
||||||
|
@ -70,14 +69,14 @@ DRV.BlkDev cld
|
||||||
bcs DRV.RamDrive.9
|
bcs DRV.RamDrive.9
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA DRV.BlkDev.STATUS
|
.1 .DA DRV.BlkDev.S
|
||||||
.DA DRV.BLK READ
|
.DA DRV.BLK READ
|
||||||
.DA DRV.BLK WRITE
|
.DA DRV.BLK WRITE
|
||||||
.DA DRV.BLK FORMAT
|
.DA DRV.BLK FORMAT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.BlkDev.STATUS
|
DRV.BlkDev.S jsr DRV.Blk
|
||||||
jsr DRV.Blk
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx DRV.BlkDev.DIB+S.DIB.SIZE
|
stx DRV.BlkDev.DIB+S.DIB.SIZE
|
||||||
sty DRV.BlkDev.DIB+S.DIB.SIZE+1
|
sty DRV.BlkDev.DIB+S.DIB.SIZE+1
|
||||||
|
|
||||||
|
@ -190,7 +189,7 @@ DRV.SmartPort.Cnt
|
||||||
DRV.NULL cld
|
DRV.NULL cld
|
||||||
>STYA pIOCTL
|
>STYA pIOCTL
|
||||||
txa
|
txa
|
||||||
beq DRV.NULL.STATUS
|
beq DRV.NULL.S
|
||||||
jmp (.1-12,x)
|
jmp (.1-12,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1
|
.1
|
||||||
|
@ -202,7 +201,7 @@ DRV.NULL cld
|
||||||
* .DA A2osX.BADCALL INIT
|
* .DA A2osX.BADCALL INIT
|
||||||
.DA DRV.CLCRTS OPEN
|
.DA DRV.CLCRTS OPEN
|
||||||
.DA DRV.CLCRTS CLOSE
|
.DA DRV.CLCRTS CLOSE
|
||||||
.DA DRV.NULL.READ
|
.DA DRV.NULL.R
|
||||||
.DA DRV.CLCRTS WRITE
|
.DA DRV.CLCRTS WRITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED
|
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 #0
|
||||||
.DA K.VER
|
.DA K.VER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.NULL.STATUS >LDYAI DRV.NULL.DIB
|
DRV.NULL.S >LDYAI DRV.NULL.DIB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.STATUS.YA >STYA .2+1
|
DRV.STATUS.YA >STYA .2+1
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (pIOCTL),y
|
lda (pIOCTL),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldx #S.DIB-1
|
ldx #S.DIB-1
|
||||||
|
@ -247,7 +246,7 @@ DRV.STATUS.YA >STYA .2+1
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.NULL.READ ldx #C.EOF
|
DRV.NULL.R ldx #C.EOF
|
||||||
|
|
||||||
ldy #S.IOCTL.BYTECNT
|
ldy #S.IOCTL.BYTECNT
|
||||||
lda #1
|
lda #1
|
||||||
|
|
|
@ -14,7 +14,7 @@ ENVX.PutEnv sta ENVX.hEnv
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
jsr SHARED.TXTPTR.GetY NAME=
|
jsr SHARED.TXTPTRgY NAME=
|
||||||
beq ENVX.PutEnv.9
|
beq ENVX.PutEnv.9
|
||||||
|
|
||||||
cmp #'='
|
cmp #'='
|
||||||
|
@ -51,7 +51,7 @@ ENVX.SetEnv.I
|
||||||
.15 ldy #$ff
|
.15 ldy #$ff
|
||||||
|
|
||||||
.16 iny
|
.16 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .17
|
beq .17
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
|
@ -62,7 +62,7 @@ ENVX.SetEnv.I
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.19 iny
|
.19 iny
|
||||||
jsr SHARED.FORPNT.getY
|
jsr SHARED.FORPNTgY
|
||||||
bne .19
|
bne .19
|
||||||
|
|
||||||
jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
|
jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
|
||||||
|
@ -115,7 +115,7 @@ ENVX.SetEnv.I
|
||||||
.22 ldy #$ff
|
.22 ldy #$ff
|
||||||
|
|
||||||
.23 iny
|
.23 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
beq .24
|
beq .24
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
|
@ -128,7 +128,7 @@ ENVX.SetEnv.I
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.25 iny
|
.25 iny
|
||||||
jsr SHARED.FORPNT.getY
|
jsr SHARED.FORPNTgY
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
bne .25
|
bne .25
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ ENVX.GetEnv sta ENVX.hEnv
|
||||||
|
|
||||||
.4 iny
|
.4 iny
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
>LDYA FORPNT
|
>LDYA FORPNT
|
||||||
|
@ -236,7 +236,7 @@ ENVX.FindEnvVar jsr ENVX.InitEnvP3 Store ENV
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
|
@ -270,7 +270,7 @@ ENVX.FindSIDVar >LDYAI ENVX.SIDVars
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
|
@ -348,7 +348,7 @@ ENVX.SIDVarsGID ldx #S.SESSION.GID
|
||||||
|
|
||||||
jsr MATH.A2STR10NP
|
jsr MATH.A2STR10NP
|
||||||
|
|
||||||
>LDYAI A2osX.NumStrBuf
|
>LDYAI FOUTBuf
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* GetErrorMessage
|
* GetErrMsg
|
||||||
* In :
|
* In :
|
||||||
* Out :
|
* Out :
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.GetErrorMessage
|
K.GetErrMsg >PULLW ZPPtr2 Dst Buf
|
||||||
>PULLW ZPPtr2 Dst Buf
|
|
||||||
>PULLA Err Code
|
>PULLA Err Code
|
||||||
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
jsr ERRORX.GetErrorMessage
|
jsr ERRORX.GetErrMsg
|
||||||
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ERRORX.GetErrorMessage
|
ERRORX.GetErrMsg
|
||||||
ldx #ERRORX.MSG
|
ldx #ERRORX.MSG
|
||||||
stx ZPPtr1
|
stx ZPPtr1
|
||||||
ldx /ERRORX.MSG
|
ldx /ERRORX.MSG
|
||||||
|
|
|
@ -110,7 +110,7 @@ FS.CLOSE.DIR ldy #S.FD.REG.REF
|
||||||
|
|
||||||
sta K.MLI.PARAMS+1
|
sta K.MLI.PARAMS+1
|
||||||
>MLICALL MLICLOSE
|
>MLICALL MLICLOSE
|
||||||
* bcs IO.WRITE.REG.RTS
|
* bcs FS.RTS
|
||||||
|
|
||||||
.1 ldy #S.FD.REG.IOBUF
|
.1 ldy #S.FD.REG.IOBUF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -198,13 +198,13 @@ FS.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
.9
|
.9
|
||||||
FS.MLIOPEN.RTS rts
|
FS.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.Stat bit A2osX.FSID
|
FS.Stat bit A2osX.FSID
|
||||||
bmi FS.Stat.FX
|
bmi FS.Stat.FX
|
||||||
|
|
||||||
FS.Stat.203 >MLICALL MLIGETFILEINFO
|
FS.Stat.203 >MLICALL MLIGETFILEINFO
|
||||||
bcs FS.MLIOPEN.RTS
|
bcs FS.RTS
|
||||||
|
|
||||||
jsr FS.ClrStat
|
jsr FS.ClrStat
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ NEW
|
||||||
* X = SYSfnc.Index
|
* X = SYSfnc.Index
|
||||||
* Y,A = free for Inline param
|
* Y,A = free for Inline param
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.CodeStart jmp GP.SysCall
|
GP.CS jmp GP.SysCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* LIBCALL (AUXLC to AUXLC)
|
* LIBCALL (AUXLC to AUXLC)
|
||||||
* Used by user
|
* Used by user
|
||||||
|
@ -189,7 +189,7 @@ GP.AtkCall dec IRQ.InKernel
|
||||||
|
|
||||||
jsr GO.A2osX
|
jsr GO.A2osX
|
||||||
|
|
||||||
GP.AtkCall.INC inc IRQ.InKernel
|
inc IRQ.InKernel
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Add32,Sub32,Mul32,IMul32,Div32,IDiv32,Mod32,IMod32,Cmp32,ICmp32
|
* # Add32,Sub32,Mul32,IMul32,Div32,IDiv32,Mod32,IMod32,Cmp32,ICmp32
|
||||||
|
@ -204,28 +204,33 @@ GP.AtkCall.INC inc IRQ.InKernel
|
||||||
* On stack (long)
|
* On stack (long)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
GP.FpuCall dec IRQ.InKernel
|
GP.FpuCall dec IRQ.InKernel
|
||||||
cpx #FPU.FADD
|
cpx #FPU.FMUL
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
jsr MATH INT32, direct JMP
|
jsr MATH math16 & math32, direct JMP
|
||||||
bra GP.AtkCall.INC
|
|
||||||
|
inc IRQ.InKernel
|
||||||
|
rts
|
||||||
|
|
||||||
.1 phx
|
.1 phx
|
||||||
jsr GP.SetFAC Get float from stack
|
jsr GP.SetFAC Get float from stack
|
||||||
plx
|
plx
|
||||||
cpx #FPU.PWR+1
|
cpx #FPU.PWR+1
|
||||||
bcs GP.RomCallGetFacOnStack
|
bcs GP.GetFAC
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FAdd,FSub,FMult,FDiv,FPwr
|
* # FAdd,FSub,FMul,FDiv,FPwr
|
||||||
* Return X+Y, X-Y, X*Y, X/Y, X^Y
|
* Return X*Y, X/Y, X+Y, X-Y
|
||||||
|
* ## C
|
||||||
|
* `float pwr ( float x, float y);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
* `>PUSHF X (float)`
|
* `>PUSHF X (float)`
|
||||||
* `>PUSHF Y (float)`
|
* `>PUSHF Y (float)`
|
||||||
|
* `>FPU fmul`
|
||||||
|
* `>FPU fdiv`
|
||||||
|
* `>FPU fmod` TODO
|
||||||
* `>FPU fadd`
|
* `>FPU fadd`
|
||||||
* `>FPU fsub`
|
* `>FPU fsub`
|
||||||
* `>FPU fmult`
|
|
||||||
* `>FPU fdiv`
|
|
||||||
* `>FPU fpwr`
|
* `>FPU fpwr`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* On stack (float)
|
* On stack (float)
|
||||||
|
@ -255,8 +260,7 @@ GP.FpuCall dec IRQ.InKernel
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* On stack (Float)
|
* On stack (Float)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
GP.RomCallGetFacOnStack
|
GP.GetFAC jsr GP.ROMCALL
|
||||||
jsr GP.ROMCALL
|
|
||||||
|
|
||||||
lda pStack
|
lda pStack
|
||||||
ldy pStack+1
|
ldy pStack+1
|
||||||
|
@ -270,7 +274,7 @@ GP.RomCall phx
|
||||||
bit RROMBNK1
|
bit RROMBNK1
|
||||||
plx
|
plx
|
||||||
|
|
||||||
jsr GP.RomCall.JmpX
|
jsr MATHF
|
||||||
|
|
||||||
.8 ldx #$ff
|
.8 ldx #$ff
|
||||||
bit $C000,x
|
bit $C000,x
|
||||||
|
@ -308,7 +312,7 @@ GP.Float ldy #3
|
||||||
sta FAC Positive + Exp=32
|
sta FAC Positive + Exp=32
|
||||||
ldx #FPU.LTOF
|
ldx #FPU.LTOF
|
||||||
|
|
||||||
bra GP.RomCallGetFacOnStack
|
bra GP.GetFAC
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # lrintf
|
* # lrintf
|
||||||
* Return float rounded into a long
|
* Return float rounded into a long
|
||||||
|
@ -373,8 +377,8 @@ GO.A2osX php
|
||||||
* bit RRAMWRAMBNK1
|
* bit RRAMWRAMBNK1
|
||||||
|
|
||||||
tsx
|
tsx
|
||||||
stx A2osX.SaveSX
|
stx SaveSX
|
||||||
ldx A2osX.SaveSM
|
ldx SaveSM
|
||||||
txs
|
txs
|
||||||
sta CLRALTZP
|
sta CLRALTZP
|
||||||
bra GO.EXIT
|
bra GO.EXIT
|
||||||
|
@ -385,8 +389,8 @@ GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3
|
||||||
* bit $C000,x
|
* bit $C000,x
|
||||||
sta SETALTZP
|
sta SETALTZP
|
||||||
tsx
|
tsx
|
||||||
stx A2osX.SaveSM
|
stx SaveSM
|
||||||
ldx A2osX.SaveSX
|
ldx SaveSX
|
||||||
txs
|
txs
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GO.EXIT pha push P on stack
|
GO.EXIT pha push P on stack
|
||||||
|
@ -410,15 +414,15 @@ GP.IRQ cld
|
||||||
|
|
||||||
sta SETALTZP switch to aux LC
|
sta SETALTZP switch to aux LC
|
||||||
tsx
|
tsx
|
||||||
stx A2osX.SaveSM
|
stx SaveSM
|
||||||
ldx A2osX.SaveSX
|
ldx SaveSX
|
||||||
txs
|
txs
|
||||||
|
|
||||||
GP.IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
|
GP.IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED
|
||||||
|
|
||||||
tsx go back to Main
|
tsx go back to Main
|
||||||
stx A2osX.SaveSX
|
stx SaveSX
|
||||||
ldx A2osX.SaveSM
|
ldx SaveSM
|
||||||
txs
|
txs
|
||||||
sta CLRALTZP
|
sta CLRALTZP
|
||||||
rts
|
rts
|
||||||
|
@ -432,7 +436,7 @@ GP.IRQ.Exit stz IRQ.Skip reset flag
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*BrkHandler bra *
|
*BrkHandler bra *
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.CodeEnd .BS $BED0-*
|
GP.CE .BS $BED0-*
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BED0->$BEEF : Public Variables
|
* $BED0->$BEEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -446,7 +450,6 @@ GP.CodeEnd .BS $BED0-*
|
||||||
.DA #0 ChRoot/Preemptive Disabled
|
.DA #0 ChRoot/Preemptive Disabled
|
||||||
.HS 00000000000000 All Slots marked as "Free"
|
.HS 00000000000000 All Slots marked as "Free"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GP.End .EQ *
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.gp
|
SAVE usr/src/sys/kernel.s.gp
|
||||||
LOAD usr/src/sys/kernel.s
|
LOAD usr/src/sys/kernel.s
|
||||||
|
|
|
@ -6,8 +6,8 @@ Kernel.Init2 sei
|
||||||
txs
|
txs
|
||||||
sta SETALTZP
|
sta SETALTZP
|
||||||
|
|
||||||
stx A2osX.SaveSM
|
stx SaveSM
|
||||||
stx A2osX.SaveSX
|
stx SaveSX
|
||||||
|
|
||||||
ldx #Kernel.ZP.S-1
|
ldx #Kernel.ZP.S-1
|
||||||
|
|
||||||
|
@ -35,10 +35,10 @@ Kernel.Init2 sei
|
||||||
>LDYAI Mem.XHiMem
|
>LDYAI Mem.XHiMem
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
lda #A2osX.AUX.S
|
lda #AUX.S
|
||||||
eor #$ff
|
eor #$ff
|
||||||
tax
|
tax
|
||||||
lda /A2osX.AUX.S
|
lda /AUX.S
|
||||||
eor #$ff
|
eor #$ff
|
||||||
pha
|
pha
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ KConfigLoad >LDYAI MSG.KCREAD
|
||||||
|
|
||||||
jsr MLIENTRY Bypass ATALK
|
jsr MLIENTRY Bypass ATALK
|
||||||
.DA #MLIGETFILEINFOEX
|
.DA #MLIGETFILEINFOEX
|
||||||
.DA MLIGETFILEINFOEX00
|
.DA pMLIGFIEX
|
||||||
bcc .1
|
bcc .1
|
||||||
eor #MLI.E.BADCALL
|
eor #MLI.E.BADCALL
|
||||||
beq .2 regular ProDOS
|
beq .2 regular ProDOS
|
||||||
|
@ -237,20 +237,20 @@ KConfigLoad >LDYAI MSG.KCREAD
|
||||||
|
|
||||||
.2 jsr MLI
|
.2 jsr MLI
|
||||||
.DA #MLIOPEN
|
.DA #MLIOPEN
|
||||||
.DA MLIOPEN00
|
.DA pMLIOPEN
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda MLIOPEN00+5
|
lda pMLIOPEN+5
|
||||||
sta MLIREAD00+1
|
sta pMLIREAD+1
|
||||||
sta MLICLOSE00+1
|
sta pMLICLOSE+1
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #MLIREAD
|
.DA #MLIREAD
|
||||||
.DA MLIREAD00
|
.DA pMLIREAD
|
||||||
php
|
php
|
||||||
pha
|
pha
|
||||||
jsr MLI
|
jsr MLI
|
||||||
.DA #MLICLOSE
|
.DA #MLICLOSE
|
||||||
.DA MLICLOSE00
|
.DA pMLICLOSE
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -358,13 +358,13 @@ SysScrInit >LDYAI Mem.XHiMem
|
||||||
SysScrInit.TTYPtrs
|
SysScrInit.TTYPtrs
|
||||||
lda FD.TTY+S.FD.DEV.DCBPTR
|
lda FD.TTY+S.FD.DEV.DCBPTR
|
||||||
sec
|
sec
|
||||||
sbc #TTY.BUF.SIZE+S.DCB.TTY
|
sbc #80*24+S.DCB.TTY
|
||||||
sta FD.TTY+S.FD.DEV.DCBPTR
|
sta FD.TTY+S.FD.DEV.DCBPTR
|
||||||
sta .1+1
|
sta .1+1
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda FD.TTY+S.FD.DEV.DCBPTR+1
|
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 FD.TTY+S.FD.DEV.DCBPTR+1
|
||||||
sta .1+2
|
sta .1+2
|
||||||
|
|
||||||
|
@ -1100,14 +1100,14 @@ EvtMgrInit >LDYAI MSG.EVT
|
||||||
lda /Evt.Table
|
lda /Evt.Table
|
||||||
sta pEvent+1
|
sta pEvent+1
|
||||||
clc
|
clc
|
||||||
EvtMgrInit.RTS rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TskMgrInit >LDYAI MSG.TSK
|
TskMgrInit >LDYAI MSG.TSK
|
||||||
>SYSCALL2 puts
|
>SYSCALL2 puts
|
||||||
|
|
||||||
>LDYAI K.ENV.SIZE get a buffer for ENV
|
>LDYAI K.ENV.SIZE get a buffer for ENV
|
||||||
>SYSCALL NewStkObj Buffer in AUX mem
|
>SYSCALL NewStkObj Buffer in AUX mem
|
||||||
bcs EvtMgrInit.RTS
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
@ -1139,7 +1139,7 @@ TskMgrInit >LDYAI MSG.TSK
|
||||||
|
|
||||||
>LDYAI $2E0 Get ROOT from QC
|
>LDYAI $2E0 Get ROOT from QC
|
||||||
>SYSCALL2 strdup
|
>SYSCALL2 strdup
|
||||||
bcs .9
|
.99 bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hCWD
|
ldy #S.PS.hCWD
|
||||||
|
@ -1148,7 +1148,7 @@ TskMgrInit >LDYAI MSG.TSK
|
||||||
>PUSHWI I.ENV.BOOT
|
>PUSHWI I.ENV.BOOT
|
||||||
>PUSHWI $2C0 Get BOOT from QC
|
>PUSHWI $2C0 Get BOOT from QC
|
||||||
>SYSCALL2 SetEnv
|
>SYSCALL2 SetEnv
|
||||||
.99 bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHWI I.ENV.ROOT
|
>PUSHWI I.ENV.ROOT
|
||||||
>PUSHWI $2E0 Get ROOT from QC
|
>PUSHWI $2E0 Get ROOT from QC
|
||||||
|
@ -1293,24 +1293,23 @@ I.ENV.DRV .AZ "DRV=${BOOT}drv/"
|
||||||
SBININITD .AZ "${ROOT}sbin/initd"
|
SBININITD .AZ "${ROOT}sbin/initd"
|
||||||
.DA #0 end of ARGV for ExecV
|
.DA #0 end of ARGV for ExecV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLIGETFILEINFOEX00
|
pMLIGFIEX .DA #2
|
||||||
.DA #2
|
.DA FNKConfig
|
||||||
.DA MLIOPEN00.FN
|
|
||||||
.BS S.FIEX
|
.BS S.FIEX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLIOPEN00 .DA #3
|
pMLIOPEN .DA #3
|
||||||
.DA MLIOPEN00.FN
|
.DA FNKConfig
|
||||||
.DA $B000
|
.DA $B000
|
||||||
.BS 1
|
.BS 1
|
||||||
MLIOPEN00.FN >PSTR "A2osX.kconfig"
|
FNKConfig >PSTR "A2osX.kconfig"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLIREAD00 .DA #4
|
pMLIREAD .DA #4
|
||||||
.BS 1
|
.BS 1
|
||||||
.DA A2osX.KCONFIG
|
.DA A2osX.KCONFIG
|
||||||
.DA 16
|
.DA 16
|
||||||
.BS 2
|
.BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLICLOSE00 .DA #1
|
pMLICLOSE .DA #1
|
||||||
.BS 1
|
.BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FD.NULL .DA #S.FD.T.CDEV
|
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.Shift $68 : ARG
|
||||||
.DA K.ArgV
|
.DA K.ArgV
|
||||||
.DA K.ArgVDup
|
.DA K.ArgVDup
|
||||||
.DA K.GetErrorMessage
|
.DA K.GetErrMsg
|
||||||
|
|
||||||
.DA K.AToF $70 : STDLIB
|
.DA K.AToF $70 : STDLIB
|
||||||
.DA K.AToI
|
.DA K.AToI
|
||||||
|
|
|
@ -30,15 +30,15 @@ KX.SYSCALL .DA STRVX.StrVNew
|
||||||
.DA PWDX.OpenSession
|
.DA PWDX.OpenSession
|
||||||
.DA PWDX.CloseSession
|
.DA PWDX.CloseSession
|
||||||
|
|
||||||
.DA SLISTX.SListGetData
|
.DA SLISTX.GetData
|
||||||
.DA SLISTX.SListAddData
|
.DA SLISTX.AddData
|
||||||
.DA SLISTX.SListSetData
|
.DA SLISTX.SetData
|
||||||
.DA SLISTX.SListGetByID
|
.DA SLISTX.GetByID
|
||||||
|
|
||||||
.DA SLISTX.SListNewKey
|
.DA SLISTX.NewKey
|
||||||
.DA SLISTX.SListLookup
|
.DA SLISTX.Lookup
|
||||||
.DA SLISTX.SListFree
|
.DA BLISTX.Free
|
||||||
.DA SLISTX.SListNew
|
.DA BLISTX.New
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.jmpx
|
SAVE usr/src/sys/kernel.s.jmpx
|
||||||
|
|
|
@ -2,26 +2,97 @@ NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MATH jmp (.1,x)
|
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.SUB
|
||||||
.DA M16.UMUL
|
|
||||||
.DA M16.IMUL
|
.DA M16.SHL
|
||||||
.DA M16.UDIV
|
.DA M16.SHR
|
||||||
.DA M16.IDIV
|
|
||||||
.DA M16.UMOD
|
.DA M16.L
|
||||||
.DA M16.IMOD
|
.DA M16.LE
|
||||||
.DA M16.CMP UCMP
|
.DA M16.G
|
||||||
.DA M16.CMP ICMP
|
.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.ADD
|
||||||
.DA M32.SUB
|
.DA M32.SUB
|
||||||
.DA M32.UMUL
|
|
||||||
.DA M32.IMUL
|
.DA M32.SHL
|
||||||
.DA M32.UDIV
|
.DA M32.SHR
|
||||||
.DA M32.IDIV
|
|
||||||
.DA M32.UMOD
|
.DA M32.L
|
||||||
.DA M32.IMOD
|
.DA M32.LE
|
||||||
.DA M32.CMP UCMP
|
.DA M32.G
|
||||||
.DA M32.CMP ICMP
|
.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
|
MATH.A2STR10NP ldx #3 3 digit max
|
||||||
ldy #0 Disable Padding
|
ldy #0 Disable Padding
|
||||||
|
@ -38,14 +109,14 @@ MATH.ACC322STR10
|
||||||
stx .5+1 Pad Len
|
stx .5+1 Pad Len
|
||||||
sty .81+1 Pad Char
|
sty .81+1 Pad Char
|
||||||
|
|
||||||
stz A2osX.NumStrLen
|
stz FOUTBuf-1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
lda ACC32+3
|
lda ACC32+3
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
jsr M32.nACC32
|
jsr M32.nACC
|
||||||
|
|
||||||
sec
|
sec
|
||||||
.1 ror ACC32.Sign Save sign
|
.1 ror ACC32.Sign Save sign
|
||||||
|
@ -59,6 +130,7 @@ MATH.ACC322STR10
|
||||||
sed switch to BCD mode
|
sed switch to BCD mode
|
||||||
|
|
||||||
ldx #32 let's roll 32 bits
|
ldx #32 let's roll 32 bits
|
||||||
|
|
||||||
.3 jsr MATH.ACC32x2
|
.3 jsr MATH.ACC32x2
|
||||||
|
|
||||||
ldy #4
|
ldy #4
|
||||||
|
@ -126,9 +198,9 @@ MATH.ACC322STR10
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
.88 ldy A2osX.NumStrLen
|
.88 ldy FOUTBuf-1
|
||||||
inc A2osX.NumStrLen
|
inc FOUTBuf-1
|
||||||
sta A2osX.NumStrBuf,y
|
sta FOUTBuf,y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Convert Hex int at ZPPtr2 to ACC32
|
* Convert Hex int at ZPPtr2 to ACC32
|
||||||
|
@ -136,7 +208,7 @@ MATH.ACC322STR10
|
||||||
MATH.Hex2ACC32 lda (ZPPtr2)
|
MATH.Hex2ACC32 lda (ZPPtr2)
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jsr SHARED.IsHexDigit
|
jsr .80
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr M32.A2ACC32
|
jsr M32.A2ACC32
|
||||||
|
@ -147,7 +219,7 @@ MATH.Hex2ACC32 lda (ZPPtr2)
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SHARED.IsHexDigit
|
jsr .80
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
@ -166,6 +238,29 @@ MATH.Hex2ACC32 lda (ZPPtr2)
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.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
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Convert Decimal int at ZPPtr2 to ACC32
|
* Convert Decimal int at ZPPtr2 to ACC32
|
||||||
|
@ -176,7 +271,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z
|
||||||
eor #'-'
|
eor #'-'
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
jsr SHARED.NextCharPtr2 skip '-'
|
jsr SHARED.NextCP2 skip '-'
|
||||||
sec
|
sec
|
||||||
.10 ror .80+1 set pos/neg flag
|
.10 ror .80+1 set pos/neg flag
|
||||||
|
|
||||||
|
@ -218,7 +313,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z
|
||||||
bpl .88
|
bpl .88
|
||||||
|
|
||||||
phy
|
phy
|
||||||
jsr M32.nACC32
|
jsr M32.nACC
|
||||||
ply
|
ply
|
||||||
|
|
||||||
.88 clc
|
.88 clc
|
||||||
|
@ -251,6 +346,13 @@ MATH.ACC32x2 asl ACC32
|
||||||
rol ACC32+3
|
rol ACC32+3
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
MATH.CMPT .DA #%100 L
|
||||||
|
.DA #%110 LE
|
||||||
|
.DA #%001 G
|
||||||
|
.DA #%011 GE
|
||||||
|
.DA #%010 E
|
||||||
|
.DA #%101 NE
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.math
|
SAVE usr/src/sys/kernel.s.math
|
||||||
LOAD usr/src/sys/kernel.s
|
LOAD usr/src/sys/kernel.s
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
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)
|
M16.ADD lda #$72 ADC (zp)
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
M16.SUB lda #$F2 SBC (zp)
|
M16.SUB lda #$F2 SBC (zp)
|
||||||
|
@ -22,30 +28,99 @@ M16.SUB lda #$F2 SBC (zp)
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Returns:
|
M16.SHL sec
|
||||||
* ff X < Y
|
.HS 90 BCC
|
||||||
* 0 X = Y
|
M16.SHR clc
|
||||||
* 1 X > Y
|
|
||||||
*--------------------------------------
|
|
||||||
*M16.UCMP
|
|
||||||
*M16.ICMP
|
|
||||||
M16.CMP jsr M16.SUB
|
|
||||||
|
|
||||||
tay A = HI byte
|
|
||||||
bmi .2
|
|
||||||
|
|
||||||
.1 ora (pStack) LO byte
|
lda (pStack)
|
||||||
|
inc pStack
|
||||||
|
inc pStack
|
||||||
|
|
||||||
|
tax
|
||||||
beq .8
|
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
|
.HS 2C BIT ABS
|
||||||
|
|
||||||
.2 lda #$ff
|
.1 lda #%100
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
|
||||||
.8 inc pStack
|
.2 lda #%010
|
||||||
inc pStack
|
.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
|
M16.UMUL clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
|
@ -56,19 +131,18 @@ M16.IMUL sec
|
||||||
jsr M16.MUL
|
jsr M16.MUL
|
||||||
|
|
||||||
plp
|
plp
|
||||||
bcc M16.PutTMP32
|
bcc M16.PutTMP
|
||||||
|
|
||||||
M16.ITMP lda ACC32.Sign
|
M16.ITMP lda ACC32.Sign
|
||||||
eor ARG32.Sign
|
eor ARG32.Sign
|
||||||
bpl M16.PutTMP32
|
bpl M16.PutTMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* M16.PutnTMP32
|
* M16.PutnTMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
lda #TMP32
|
lda #TMP32
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M16.PutnARG32
|
M16.PutnARG lda #ARG32
|
||||||
lda #ARG32
|
|
||||||
sta .1+1
|
sta .1+1
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx #3
|
ldx #3
|
||||||
|
@ -84,7 +158,7 @@ M16.PutnARG32
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M16.UDIV clc
|
M16.uDIV clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
M16.IDIV sec
|
M16.IDIV sec
|
||||||
clv
|
clv
|
||||||
|
@ -106,15 +180,15 @@ M16.MOD php
|
||||||
|
|
||||||
lda ACC32.Sign IDIV
|
lda ACC32.Sign IDIV
|
||||||
eor ARG32.Sign
|
eor ARG32.Sign
|
||||||
bpl M16.PutARG32
|
bpl M16.PutARG
|
||||||
bra M16.PutnARG32
|
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
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M16.PutARG32 ldy #ARG32
|
M16.PutARG ldy #ARG32
|
||||||
|
|
||||||
lda $0,y
|
lda $0,y
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
|
@ -151,7 +225,7 @@ M16.MULDIVMOD >PULLW ACC32
|
||||||
.1 lda ACC32.Sign
|
.1 lda ACC32.Sign
|
||||||
bpl M16.RTS
|
bpl M16.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* M16.nACC32
|
* M16.nACC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ldy #ACC32
|
ldy #ACC32
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -198,7 +272,6 @@ M16.MUL stz TMP32
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M16.DIVMOD stz TMP32
|
M16.DIVMOD stz TMP32
|
||||||
|
|
|
@ -1,57 +1,149 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
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)
|
M32.ADD lda #$72 ADC (zp)
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
M32.SUB lda #$F2 SBC (zp)
|
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
|
ldy #4
|
||||||
ldx #4
|
ldx #4
|
||||||
|
|
||||||
.2 lda (pStack),y
|
.1 lda (pStack),y
|
||||||
.3 adc (pStack) SELF MODIFIED
|
.2 adc (pStack) SELF MODIFIED
|
||||||
sta (pStack),y
|
sta (pStack),y
|
||||||
|
|
||||||
inc pStack
|
inc pStack
|
||||||
dex
|
dex
|
||||||
bne .2
|
bne .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Returns:
|
M32.SHL sec
|
||||||
* ff X < Y
|
.HS 90 BCC
|
||||||
* 0 X = Y
|
M32.SHR clc
|
||||||
* 1 X > Y
|
|
||||||
*--------------------------------------
|
|
||||||
*M32.UCMP
|
|
||||||
*M32.ICMP
|
|
||||||
M32.CMP jsr M32.SUB
|
|
||||||
|
|
||||||
tay A = BYTE 3
|
lda (pStack)
|
||||||
bmi .2
|
inc pStack
|
||||||
|
|
||||||
.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
|
|
||||||
inc pStack
|
inc 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
|
M32.UMUL clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
|
@ -62,18 +154,18 @@ M32.IMUL sec
|
||||||
jsr M32.MUL
|
jsr M32.MUL
|
||||||
|
|
||||||
plp
|
plp
|
||||||
bcc M32.PutTMP32
|
bcc M32.PutTMP
|
||||||
|
|
||||||
M32.ITMP lda ACC32.Sign
|
M32.ITMP lda ACC32.Sign
|
||||||
eor ARG32.Sign
|
eor ARG32.Sign
|
||||||
bpl M32.PutTMP32
|
bpl M32.PutTMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* M32.PutnTMP32
|
* M32.PutnTMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
lda #TMP32
|
lda #TMP32
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.PutnARG32 lda #ARG32
|
M32.PutnARG lda #ARG32
|
||||||
sta .1+1
|
sta .1+1
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx #3
|
ldx #3
|
||||||
|
@ -111,15 +203,15 @@ M32.MOD php
|
||||||
|
|
||||||
lda ACC32.Sign IDIV
|
lda ACC32.Sign IDIV
|
||||||
eor ARG32.Sign
|
eor ARG32.Sign
|
||||||
bpl M32.PutARG32
|
bpl M32.PutARG
|
||||||
bra M32.PutnARG32
|
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
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.PutARG32 lda #ARG32
|
M32.PutARG lda #ARG32
|
||||||
sta .1+1
|
sta .1+1
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
|
@ -131,7 +223,7 @@ M32.PutARG32 lda #ARG32
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.PopACC32 ldy #0
|
M32.PopACC ldy #0
|
||||||
|
|
||||||
.1 lda (pStack)
|
.1 lda (pStack)
|
||||||
inc pStack
|
inc pStack
|
||||||
|
@ -143,7 +235,7 @@ M32.PopACC32 ldy #0
|
||||||
sta ACC32.Sign
|
sta ACC32.Sign
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.GetARG32 ldy #0
|
M32.GetARG ldy #0
|
||||||
|
|
||||||
.1 lda (pStack),y
|
.1 lda (pStack),y
|
||||||
sta ARG32,y
|
sta ARG32,y
|
||||||
|
@ -156,8 +248,8 @@ M32.GetARG32 ldy #0
|
||||||
M32.RTS rts
|
M32.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.MULDIVMOD php
|
M32.MULDIVMOD php
|
||||||
jsr M32.PopACC32
|
jsr M32.PopACC
|
||||||
jsr M32.GetARG32
|
jsr M32.GetARG
|
||||||
plp
|
plp
|
||||||
bcc M32.RTS
|
bcc M32.RTS
|
||||||
jsr .1
|
jsr .1
|
||||||
|
@ -165,7 +257,7 @@ M32.MULDIVMOD php
|
||||||
* M32.ARG32ABS
|
* M32.ARG32ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
lda ARG32.Sign
|
lda ARG32.Sign
|
||||||
bmi M32.nARG32
|
bmi M32.nARG
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* M32.ACC32ABS
|
* M32.ACC32ABS
|
||||||
|
@ -173,9 +265,9 @@ M32.MULDIVMOD php
|
||||||
.1 lda ACC32.Sign
|
.1 lda ACC32.Sign
|
||||||
bpl M32.RTS
|
bpl M32.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
M32.nACC32 ldy #ACC32
|
M32.nACC ldy #ACC32
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
M32.nARG32 ldy #ARG32
|
M32.nARG ldy #ARG32
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
sec
|
sec
|
||||||
|
@ -217,15 +309,11 @@ M32.MUL jsr M32.TMP32Z
|
||||||
eor #4
|
eor #4
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.3 asl ACC32
|
.3 jsr MATH.ACC32x2
|
||||||
rol ACC32+1
|
|
||||||
rol ACC32+2
|
|
||||||
rol ACC32+3
|
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ARG32 = ARG32 div ACC32
|
* ARG32 = ARG32 div ACC32
|
||||||
|
@ -239,11 +327,14 @@ M32.DIVMOD jsr M32.TMP32Z
|
||||||
rol ARG32+1
|
rol ARG32+1
|
||||||
rol ARG32+2
|
rol ARG32+2
|
||||||
rol ARG32+3
|
rol ARG32+3
|
||||||
|
|
||||||
rol TMP32
|
rol TMP32
|
||||||
rol TMP32+1
|
rol TMP32+1
|
||||||
rol TMP32+2
|
rol TMP32+2
|
||||||
rol TMP32+3
|
rol TMP32+3
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
lda TMP32
|
lda TMP32
|
||||||
sbc ACC32
|
sbc ACC32
|
||||||
pha
|
pha
|
||||||
|
|
|
@ -80,7 +80,7 @@ ZPChunkLen .BS 2
|
||||||
MD5X.MD5 ldy #$ff
|
MD5X.MD5 ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sty ZPDataLen
|
sty ZPDataLen
|
||||||
|
@ -148,12 +148,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
||||||
.3 lda #64
|
.3 lda #64
|
||||||
.50 sta ZPChunkLen Save Chunk Len
|
.50 sta ZPChunkLen Save Chunk Len
|
||||||
|
|
||||||
jsr MD5UpdateBitCount
|
jsr MD5UpdBC
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.51 jsr SHARED.TXTPTR.GetY Load Buffer with data
|
.51 jsr SHARED.TXTPTRgY Load Buffer with data
|
||||||
sta MD5.BUFFER64,y
|
sta MD5.Buf,y
|
||||||
iny
|
iny
|
||||||
cpy ZPChunkLen
|
cpy ZPChunkLen
|
||||||
bne .51
|
bne .51
|
||||||
|
@ -163,12 +163,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
||||||
* Append "$80" & Padding & original size
|
* Append "$80" & Padding & original size
|
||||||
|
|
||||||
lda #$80 no, Append $80
|
lda #$80 no, Append $80
|
||||||
sta MD5.BUFFER64,y
|
sta MD5.Buf,y
|
||||||
lda #0
|
lda #0
|
||||||
.52 iny Pad with 0 to 64
|
.52 iny Pad with 0 to 64
|
||||||
cpy #64
|
cpy #64
|
||||||
beq .53
|
beq .53
|
||||||
sta MD5.BUFFER64,y
|
sta MD5.Buf,y
|
||||||
bra .52
|
bra .52
|
||||||
.53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended
|
.53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended
|
||||||
lda #$80
|
lda #$80
|
||||||
|
@ -176,7 +176,7 @@ MD5X.Update.I ldy #S.MD5.FINALIZED
|
||||||
lda ZPChunkLen
|
lda ZPChunkLen
|
||||||
cmp #56 Enough room for BITCOUNT ?
|
cmp #56 Enough room for BITCOUNT ?
|
||||||
bcs .58 no
|
bcs .58 no
|
||||||
jsr MD5AppendBitCount
|
jsr MD5AppBC
|
||||||
.58 jsr MD5Transform
|
.58 jsr MD5Transform
|
||||||
jsr MD5UpdateABCD0
|
jsr MD5UpdateABCD0
|
||||||
.8 lda ZPDataLen Substract Bytes processed from LEN
|
.8 lda ZPDataLen Substract Bytes processed from LEN
|
||||||
|
@ -214,20 +214,20 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED
|
||||||
lsr
|
lsr
|
||||||
tax
|
tax
|
||||||
lda MD5.DIGITS,x
|
lda MD5.DIGITS,x
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
lda (ZPCtxPtr),y
|
lda (ZPCtxPtr),y
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
lda MD5.DIGITS,x
|
lda MD5.DIGITS,x
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cpy #S.MD5.ABCD0+16
|
cpy #S.MD5.ABCD0+16
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
pla
|
pla
|
||||||
jmp K.FreeMem
|
jmp K.FreeMem
|
||||||
|
@ -238,12 +238,11 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED
|
||||||
* In :
|
* In :
|
||||||
* ZPCtxPtr = MD5 Context
|
* ZPCtxPtr = MD5 Context
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MD5AppendBitCount
|
MD5AppBC ldx #56
|
||||||
ldx #56
|
|
||||||
ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT
|
ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT
|
||||||
|
|
||||||
.1 lda (ZPCtxPtr),y
|
.1 lda (ZPCtxPtr),y
|
||||||
sta MD5.BUFFER64,x
|
sta MD5.Buf,x
|
||||||
inx
|
inx
|
||||||
iny
|
iny
|
||||||
cpy #S.MD5.BITCOUNT+8
|
cpy #S.MD5.BITCOUNT+8
|
||||||
|
@ -259,8 +258,7 @@ MD5AppendBitCount
|
||||||
* CL = Size (in bytes) to add to MD5 context
|
* CL = Size (in bytes) to add to MD5 context
|
||||||
* ZPCtxPtr = MD5 Context
|
* ZPCtxPtr = MD5 Context
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MD5UpdateBitCount
|
MD5UpdBC stz ZPChunkLen+1
|
||||||
stz ZPChunkLen+1
|
|
||||||
lda ZPChunkLen
|
lda ZPChunkLen
|
||||||
asl
|
asl
|
||||||
rol ZPChunkLen+1
|
rol ZPChunkLen+1
|
||||||
|
@ -302,16 +300,16 @@ MD5ExtraChunk ldy #S.MD5.FINALIZED
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #$80
|
lda #$80
|
||||||
sta MD5.BUFFER64 Add extra bit to buffer
|
sta MD5.Buf Add extra bit to buffer
|
||||||
sta (ZPCtxPtr),y Mark Extrabit added
|
sta (ZPCtxPtr),y Mark Extrabit added
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.1 stz MD5.BUFFER64,x pad with "0"...
|
.1 stz MD5.Buf,x pad with "0"...
|
||||||
inx
|
inx
|
||||||
cpx #56
|
cpx #56
|
||||||
bne .1 ...until room for bitcount
|
bne .1 ...until room for bitcount
|
||||||
|
|
||||||
jsr MD5AppendBitCount
|
jsr MD5AppBC
|
||||||
jsr MD5Transform
|
jsr MD5Transform
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MD5UpdateABCD0
|
* MD5UpdateABCD0
|
||||||
|
@ -420,7 +418,7 @@ MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp
|
||||||
tay
|
tay
|
||||||
ldx #0
|
ldx #0
|
||||||
clc
|
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
|
adc MD5.F,x
|
||||||
sta MD5.F,x
|
sta MD5.F,x
|
||||||
iny
|
iny
|
||||||
|
@ -481,7 +479,7 @@ MD5.F2 .BS 4
|
||||||
MD5.DTemp .BS 4
|
MD5.DTemp .BS 4
|
||||||
MD5.F .BS 4
|
MD5.F .BS 4
|
||||||
MD5.i .BS 1
|
MD5.i .BS 1
|
||||||
MD5.BUFFER64 .BS 64
|
MD5.Buf .BS 64
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.md5x
|
SAVE usr/src/sys/kernel.s.md5x
|
||||||
|
|
|
@ -8,8 +8,7 @@ NEW
|
||||||
*
|
*
|
||||||
* Out : A = hMount
|
* Out : A = hMount
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Mount >PULLW ZPPtr2 callback
|
K.Mount jsr SHARED.PullP2P1 callback,mountpoint
|
||||||
>PULLW ZPPtr1 mountpoint
|
|
||||||
|
|
||||||
ldx #1
|
ldx #1
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ PFT.CheckPathYA >PUSHYA
|
||||||
|
|
||||||
>PUSHWI K.Buf256
|
>PUSHWI K.Buf256
|
||||||
>SYSCALL2 realpath
|
>SYSCALL2 realpath
|
||||||
bcs PFT.YAToMLIPATH.RTS
|
bcs PFT.RTS
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
|
@ -92,8 +92,7 @@ PFT.YAToMLIPATH >STYA .1+1
|
||||||
>STYA K.MLI.PARAMS+1
|
>STYA K.MLI.PARAMS+1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
PFT.YAToMLIPATH.RTS
|
PFT.RTS rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PFT.CheckNode4 ldy #4
|
PFT.CheckNode4 ldy #4
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -107,7 +106,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
ldy #S.FD.HANDLER
|
ldy #S.FD.PFT
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .8 Handler is 0, back to kernel....
|
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
|
.8 lda #$ff SELF MODIFIED
|
||||||
* clc
|
* clc
|
||||||
.9
|
.9
|
||||||
PS.Exec.RTS rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Fork
|
* # Fork
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -79,7 +79,8 @@ PS.Exec.RTS rts
|
||||||
* A = Child PSID
|
* A = Child PSID
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
|
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
|
sta .8+1
|
||||||
|
|
||||||
ldy #S.PS.S
|
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
|
ldy #S.PS.hDS
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
jsr MEM.Dup
|
jsr MEM.Dup
|
||||||
bcs .9
|
.99 bcs .9
|
||||||
|
|
||||||
ldy #S.PS.hDS
|
ldy #S.PS.hDS
|
||||||
sta (PS.NewPSPtr),y
|
sta (PS.NewPSPtr),y
|
||||||
|
@ -358,7 +359,7 @@ PS.Load ldy #$ff
|
||||||
|
|
||||||
>LDYAI PS.SHUTDOWN
|
>LDYAI PS.SHUTDOWN
|
||||||
jsr PS.Find.PATH
|
jsr PS.Find.PATH
|
||||||
bcs PS.Load.RTS
|
bcs PS.RTS
|
||||||
|
|
||||||
jmp PS.LoadBIN
|
jmp PS.LoadBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -366,12 +367,12 @@ PS.Load.IPATH lda #E.BADPATH
|
||||||
.HS 2C
|
.HS 2C
|
||||||
PS.Load.IBIN lda #E.IBIN
|
PS.Load.IBIN lda #E.IBIN
|
||||||
sec
|
sec
|
||||||
PS.Load.RTS rts
|
PS.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Load.SCRIPT jsr PS.Buf2IO
|
PS.Load.SCRIPT jsr PS.Buf2IO
|
||||||
|
|
||||||
jsr PS.LoadGetHeader
|
jsr PS.LoadGetHeader
|
||||||
bcs PS.Load.RTS
|
bcs PS.RTS
|
||||||
|
|
||||||
>PUSHWI PS.Load.ROOT
|
>PUSHWI PS.Load.ROOT
|
||||||
>PUSHWI K.Buf256 K.Buf256 = "$ROOT"
|
>PUSHWI K.Buf256 K.Buf256 = "$ROOT"
|
||||||
|
@ -406,7 +407,7 @@ PS.Load.SCRIPT jsr PS.Buf2IO
|
||||||
|
|
||||||
.5 >LDYAI K.Buf256
|
.5 >LDYAI K.Buf256
|
||||||
jsr PS.STAT.YA
|
jsr PS.STAT.YA
|
||||||
bcs PS.Load.RTS
|
bcs PS.RTS
|
||||||
|
|
||||||
lda K.S.STAT+S.STAT.P.TYPE
|
lda K.S.STAT+S.STAT.P.TYPE
|
||||||
cmp #S.FI.T.BIN
|
cmp #S.FI.T.BIN
|
||||||
|
@ -580,7 +581,7 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0]
|
||||||
|
|
||||||
* lda #0
|
* lda #0
|
||||||
jsr PS.AddYAp12ArgSize
|
jsr PS.AddYAp12ArgSize
|
||||||
jsr SHARED.AddYp1ToPtr1
|
jsr SHARED.AddYp12P1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 txa
|
.4 txa
|
||||||
|
@ -634,8 +635,8 @@ PS.AddPtr1ToStrV
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
jsr SHARED.AddYp1ToPtr1
|
jsr SHARED.AddYp12P1
|
||||||
jmp SHARED.AddYp1ToPtr2
|
jmp SHARED.AddYp12P2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.AddYAp12ArgSize
|
PS.AddYAp12ArgSize
|
||||||
pha
|
pha
|
||||||
|
|
|
@ -97,16 +97,18 @@ K.PutGR >PULLW TXTPTR
|
||||||
jsr K.SYSCALL.JMPX
|
jsr K.SYSCALL.JMPX
|
||||||
bcc PWD.FlushFiles
|
bcc PWD.FlushFiles
|
||||||
|
|
||||||
K.PutGR.RTS rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWD.FlushFiles
|
PWD.FlushFiles
|
||||||
>LDYA PWD.UsrDBSize
|
>LDYA PWD.UsrDBSize
|
||||||
ldx PWD.hUsrDB
|
ldx PWD.hUsrDB
|
||||||
clc
|
clc
|
||||||
jsr PWD.Flush
|
jsr PWD.Flush
|
||||||
bcs K.PutGR.RTS
|
bcc .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
>LDYA PWD.GrpDBSize
|
.1 >LDYA PWD.GrpDBSize
|
||||||
ldx PWD.hGrpDB
|
ldx PWD.hGrpDB
|
||||||
sec
|
sec
|
||||||
|
|
||||||
|
|
|
@ -19,20 +19,20 @@ PWDX.GetPWUID lda PWD.hUsrDB
|
||||||
beq PWDX.GetPW.99 EOF
|
beq PWDX.GetPW.99 EOF
|
||||||
|
|
||||||
ldy #0
|
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
|
jsr PWDX.GetByte get UID
|
||||||
cmp ZPPtr1+1
|
cmp ZPPtr1+1
|
||||||
beq PWDX.GetPW.8
|
beq PWDX.GetPW.8
|
||||||
|
|
||||||
jsr PWDX.NextLine
|
jsr PWDX.NextL
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
PWDX.GetPW.8 ldx FORPNT+1
|
PWDX.GetPW.8 ldx FORPNT+1
|
||||||
beq .8 Dry run, no output
|
beq .8 Dry run, no output
|
||||||
jmp PWDX.Record2PW
|
jmp PWDX.Rec2PW
|
||||||
|
|
||||||
.8 clc a = UID
|
.8 clc a = UID
|
||||||
rts
|
rts
|
||||||
|
@ -42,7 +42,7 @@ PWDX.GetPW.9 lda #E.IPWDDB
|
||||||
|
|
||||||
PWDX.GetPW.99 lda #E.IUSR
|
PWDX.GetPW.99 lda #E.IUSR
|
||||||
sec
|
sec
|
||||||
PWDX.GetPW.RTS rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.GetPWName lda PWD.hUsrDB
|
PWDX.GetPWName lda PWD.hUsrDB
|
||||||
beq PWDX.GetPW.9
|
beq PWDX.GetPW.9
|
||||||
|
@ -51,7 +51,7 @@ PWDX.GetPWName lda PWD.hUsrDB
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq PWDX.GetPW.99
|
beq PWDX.GetPW.99
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
|
@ -59,13 +59,13 @@ PWDX.GetPWName lda PWD.hUsrDB
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
.2 iny
|
.2 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
cmp (ZPPtr3),y
|
cmp (ZPPtr3),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
.3 jsr PWDX.NextLine
|
.3 jsr PWDX.NextL
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 lda (ZPPtr3),y
|
.4 lda (ZPPtr3),y
|
||||||
|
@ -75,10 +75,10 @@ PWDX.GetPWName lda PWD.hUsrDB
|
||||||
ldx FORPNT+1
|
ldx FORPNT+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jmp PWDX.Record2PW
|
jmp PWDX.Rec2PW
|
||||||
|
|
||||||
.8 iny
|
.8 iny
|
||||||
jsr PWDX.NextString skip PASSWORD
|
jsr PWDX.NextS skip PASSWORD
|
||||||
jmp PWDX.GetByte get UID
|
jmp PWDX.GetByte get UID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* TXTPTR : pPW (Input)
|
* TXTPTR : pPW (Input)
|
||||||
|
@ -88,10 +88,10 @@ PWDX.PutPW lda PWD.hUsrDB
|
||||||
bne PWDX.PutPW.1
|
bne PWDX.PutPW.1
|
||||||
|
|
||||||
ldy #S.PW.UID
|
ldy #S.PW.UID
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
bne PWDX.GetPW.99 Must be ROOT user
|
bne PWDX.GetPW.99 Must be ROOT user
|
||||||
|
|
||||||
jsr PWDX.GetRecordLen
|
jsr PWDX.GetRecLen
|
||||||
tay
|
tay
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ PWDX.PutPW lda PWD.hUsrDB
|
||||||
inc
|
inc
|
||||||
|
|
||||||
.1 jsr K.getmem
|
.1 jsr K.getmem
|
||||||
bcs PWDX.GetPW.RTS
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
stx PWD.hUsrDB
|
stx PWD.hUsrDB
|
||||||
|
@ -111,7 +111,7 @@ PWDX.PutPW lda PWD.hUsrDB
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtr3)
|
sta (ZPPtr3)
|
||||||
|
|
||||||
jsr PWDX.AppendRecord
|
jsr PWDX.AppRec
|
||||||
|
|
||||||
lda PWD.hGrpDB
|
lda PWD.hGrpDB
|
||||||
beq .2
|
beq .2
|
||||||
|
@ -140,17 +140,17 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
|
||||||
ldy #S.PW.PASSWD
|
ldy #S.PW.PASSWD
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
bne .12
|
bne .12
|
||||||
|
|
||||||
jsr PWDX.FindRecord
|
jsr PWDX.FindRec
|
||||||
bcs .99
|
bcs .99
|
||||||
jmp PWDX.DeleteRecord
|
jmp PWDX.DelRec
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.12 jsr PWDX.FindRecord
|
.12 jsr PWDX.FindRec
|
||||||
bcs .11
|
bcs .11
|
||||||
|
|
||||||
jsr PWDX.DeleteRecord
|
jsr PWDX.DelRec
|
||||||
bcs .99
|
bcs .99
|
||||||
bra .13
|
bra .13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -162,7 +162,7 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||||
sta (TXTPTR),y
|
sta (TXTPTR),y
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
.13 jsr PWDX.GetRecordLen
|
.13 jsr PWDX.GetRecLen
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc PWD.UsrDBSize
|
adc PWD.UsrDBSize
|
||||||
|
@ -207,10 +207,10 @@ PWDX.PutPW.1 jsr K.GetmemPtr
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
|
||||||
jsr PWDX.AppendRecord
|
jsr PWDX.AppRec
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -229,18 +229,18 @@ PWDX.GetGRGID lda PWD.hGrpDB
|
||||||
beq PWDX.GetGR.99 EOF
|
beq PWDX.GetGR.99 EOF
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr PWDX.NextString skip USERNAME
|
jsr PWDX.NextS skip USERNAME
|
||||||
|
|
||||||
jsr PWDX.GetByte get UID
|
jsr PWDX.GetByte get UID
|
||||||
cmp ZPPtr1+1
|
cmp ZPPtr1+1
|
||||||
beq PWDX.GetGR.8
|
beq PWDX.GetGR.8
|
||||||
|
|
||||||
jsr PWDX.NextLine
|
jsr PWDX.NextL
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
PWDX.GetGR.8 ldx FORPNT+1
|
PWDX.GetGR.8 ldx FORPNT+1
|
||||||
beq .8 Dry run, no output
|
beq .8 Dry run, no output
|
||||||
jmp PWDX.Record2GR
|
jmp PWDX.Rec2GR
|
||||||
|
|
||||||
.8 clc a = UID
|
.8 clc a = UID
|
||||||
rts
|
rts
|
||||||
|
@ -259,7 +259,7 @@ PWDX.GetGRName lda PWD.hGrpDB
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq PWDX.GetGR.99
|
beq PWDX.GetGR.99
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
|
@ -267,13 +267,13 @@ PWDX.GetGRName lda PWD.hGrpDB
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
.2 iny
|
.2 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
cmp (ZPPtr3),y
|
cmp (ZPPtr3),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
.3 jsr PWDX.NextLine
|
.3 jsr PWDX.NextL
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 lda (ZPPtr3),y
|
.4 lda (ZPPtr3),y
|
||||||
|
@ -283,7 +283,7 @@ PWDX.GetGRName lda PWD.hGrpDB
|
||||||
ldx FORPNT+1
|
ldx FORPNT+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jmp PWDX.Record2GR
|
jmp PWDX.Rec2GR
|
||||||
|
|
||||||
.8 iny
|
.8 iny
|
||||||
jmp PWDX.GetByte get GID
|
jmp PWDX.GetByte get GID
|
||||||
|
@ -306,15 +306,15 @@ PWDX.OpenSession
|
||||||
lda TXTPTR+1
|
lda TXTPTR+1
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
.1 >LDYAI PWDX.ROOTSESSION.Size
|
.1 >LDYAI PWDX.ROOT.Size
|
||||||
jsr K.GetMem
|
jsr K.GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>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
|
sta (ZPPtr1),y
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
@ -323,7 +323,7 @@ PWDX.OpenSession
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.3 jsr PWDX.FindRecord
|
.3 jsr PWDX.FindRec
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tya Y = Name length +1
|
tya Y = Name length +1
|
||||||
|
@ -340,7 +340,7 @@ PWDX.OpenSession
|
||||||
|
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.5 jsr SHARED.FORPNT.getY
|
.5 jsr SHARED.FORPNTgY
|
||||||
eor (ZPPtr4),y Check MD5
|
eor (ZPPtr4),y Check MD5
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
@ -376,15 +376,15 @@ PWDX.GetUID lda PWD.hUsrDB
|
||||||
beq .8 End of DB
|
beq .8 End of DB
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr PWDX.NextString skip name
|
jsr PWDX.NextS skip name
|
||||||
jsr PWDX.NextString skip password
|
jsr PWDX.NextS skip password
|
||||||
jsr PWDX.GetByte
|
jsr PWDX.GetByte
|
||||||
cmp .8+1
|
cmp .8+1
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
sta .8+1
|
sta .8+1
|
||||||
|
|
||||||
.4 jsr PWDX.NextLine
|
.4 jsr PWDX.NextL
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 lda #$ff SELF MODIFIED
|
.8 lda #$ff SELF MODIFIED
|
||||||
|
@ -398,7 +398,7 @@ PWDX.GetUID lda PWD.hUsrDB
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.DeleteRecord
|
PWDX.DelRec
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
|
@ -432,7 +432,7 @@ PWDX.DeleteRecord
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.FindRecord lda PWD.hUsrDB
|
PWDX.FindRec lda PWD.hUsrDB
|
||||||
jsr K.GetmemPtr
|
jsr K.GetmemPtr
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
@ -443,13 +443,13 @@ PWDX.FindRecord lda PWD.hUsrDB
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
cmp (ZPPtr3),y
|
cmp (ZPPtr3),y
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
.5 jsr PWDX.NextLine
|
.5 jsr PWDX.NextL
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.4 lda (ZPPtr3),y
|
.4 lda (ZPPtr3),y
|
||||||
|
@ -467,7 +467,7 @@ PWDX.FindRecord lda PWD.hUsrDB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
* Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.Record2PW ldy #0
|
PWDX.Rec2PW ldy #0
|
||||||
|
|
||||||
ldx #0 NAME
|
ldx #0 NAME
|
||||||
|
|
||||||
|
@ -476,12 +476,12 @@ PWDX.Record2PW ldy #0
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 lda #0
|
.2 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
cpx #S.PW.PASSWD
|
cpx #S.PW.PASSWD
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -491,23 +491,23 @@ PWDX.Record2PW ldy #0
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 lda #0
|
.4 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
cpx #S.PW.UID
|
cpx #S.PW.UID
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
jsr PWDX.GetByte UID
|
jsr PWDX.GetByte UID
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
jsr PWDX.GetByte GID
|
jsr PWDX.GetByte GID
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
|
@ -517,11 +517,11 @@ PWDX.Record2PW ldy #0
|
||||||
iny
|
iny
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .6
|
beq .6
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .5
|
bra .5
|
||||||
.6 lda #0
|
.6 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
cpx #S.PW.DIR
|
cpx #S.PW.DIR
|
||||||
bne .6
|
bne .6
|
||||||
|
@ -530,11 +530,11 @@ PWDX.Record2PW ldy #0
|
||||||
iny
|
iny
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .8
|
beq .8
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .7
|
bra .7
|
||||||
.8 lda #0
|
.8 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
cpx #S.PW.SHELL
|
cpx #S.PW.SHELL
|
||||||
bne .8
|
bne .8
|
||||||
|
@ -543,16 +543,16 @@ PWDX.Record2PW ldy #0
|
||||||
iny
|
iny
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .10
|
beq .10
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .9
|
bra .9
|
||||||
.10 lda #0
|
.10 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.Record2GR ldy #0
|
PWDX.Rec2GR ldy #0
|
||||||
|
|
||||||
ldx #0 NAME
|
ldx #0 NAME
|
||||||
|
|
||||||
|
@ -561,15 +561,15 @@ PWDX.Record2GR ldy #0
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
inx
|
inx
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 lda #0
|
.2 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
jsr PWDX.GetByte UID
|
jsr PWDX.GetByte UID
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -579,15 +579,15 @@ PWDX.Record2GR ldy #0
|
||||||
PWDX.GetSessionLen
|
PWDX.GetSessionLen
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
jsr PWDX.NextString USERNAME
|
jsr PWDX.NextS USERNAME
|
||||||
tya
|
tya
|
||||||
clc
|
clc
|
||||||
adc #S.SESSION.NAME
|
adc #S.SESSION.NAME
|
||||||
tax
|
tax
|
||||||
|
|
||||||
jsr PWDX.NextString skip PASSWORD
|
jsr PWDX.NextS skip PASSWORD
|
||||||
jsr PWDX.NextString skip UID
|
jsr PWDX.NextS skip UID
|
||||||
jsr PWDX.NextString skip GID
|
jsr PWDX.NextS skip GID
|
||||||
|
|
||||||
.1 inx
|
.1 inx
|
||||||
iny
|
iny
|
||||||
|
@ -604,8 +604,8 @@ PWDX.GetSessionLen
|
||||||
PWDX.Record2Session
|
PWDX.Record2Session
|
||||||
ldy #0
|
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
|
jsr PWDX.GetByte get UID
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
|
||||||
|
@ -627,13 +627,13 @@ PWDX.Record2Session
|
||||||
|
|
||||||
ora #S.SESSION.P.SYSADMIN
|
ora #S.SESSION.P.SYSADMIN
|
||||||
|
|
||||||
.2 jsr SHARED.PutCharPtr2
|
.2 jsr SHARED.PutCP2
|
||||||
|
|
||||||
lda ZPPtr1
|
lda ZPPtr1
|
||||||
jsr SHARED.PutCharPtr2 UID
|
jsr SHARED.PutCP2 UID
|
||||||
|
|
||||||
lda ZPPtr1+1
|
lda ZPPtr1+1
|
||||||
jsr SHARED.PutCharPtr2 GID
|
jsr SHARED.PutCP2 GID
|
||||||
|
|
||||||
phy
|
phy
|
||||||
|
|
||||||
|
@ -644,11 +644,11 @@ PWDX.Record2Session
|
||||||
cmp #':'
|
cmp #':'
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
jsr SHARED.PutCharPtr2
|
jsr SHARED.PutCP2
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
.4 lda #0
|
.4 lda #0
|
||||||
jsr SHARED.PutCharPtr2
|
jsr SHARED.PutCP2
|
||||||
|
|
||||||
ply
|
ply
|
||||||
|
|
||||||
|
@ -661,27 +661,27 @@ PWDX.Record2Session
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
.6 jsr SHARED.PutCharPtr2
|
.6 jsr SHARED.PutCP2
|
||||||
iny
|
iny
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.8 lda #0
|
.8 lda #0
|
||||||
jmp SHARED.PutCharPtr2
|
jmp SHARED.PutCP2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.NextString lda (ZPPtr3),y
|
PWDX.NextS lda (ZPPtr3),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cmp #':'
|
cmp #':'
|
||||||
bne PWDX.NextString
|
bne PWDX.NextS
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.NextLine lda (ZPPtr3),y
|
PWDX.NextL lda (ZPPtr3),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
bne PWDX.NextLine
|
bne PWDX.NextL
|
||||||
|
|
||||||
tya
|
tya
|
||||||
clc
|
clc
|
||||||
|
@ -725,7 +725,7 @@ PWDX.GetByte stz .8+1
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.AppendRecord
|
PWDX.AppRec
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
@ -737,64 +737,61 @@ PWDX.AppendRecord
|
||||||
.8 sec
|
.8 sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.GetRecordLen
|
PWDX.GetRecLen clc
|
||||||
clc
|
|
||||||
ldx #0
|
ldx #0
|
||||||
ldy #S.PW.NAME
|
ldy #S.PW.NAME
|
||||||
|
|
||||||
jsr PWDX.StoreString
|
jsr PWDX.StoreS
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
ldy #S.PW.PASSWD
|
ldy #S.PW.PASSWD
|
||||||
|
|
||||||
jsr PWDX.StoreString
|
jsr PWDX.StoreS
|
||||||
|
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
ldy #S.PW.UID
|
ldy #S.PW.UID
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
jsr PWDX.StoreByte
|
jsr PWDX.StoreB
|
||||||
|
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
ldy #S.PW.GID
|
ldy #S.PW.GID
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
jsr PWDX.StoreByte
|
jsr PWDX.StoreB
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
ldy #S.PW.GECOS
|
ldy #S.PW.GECOS
|
||||||
|
|
||||||
jsr PWDX.StoreString
|
jsr PWDX.StoreS
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
ldy #S.PW.DIR
|
ldy #S.PW.DIR
|
||||||
|
|
||||||
jsr PWDX.StoreString
|
jsr PWDX.StoreS
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
ldy #S.PW.SHELL
|
ldy #S.PW.SHELL
|
||||||
|
|
||||||
jsr PWDX.StoreString
|
jsr PWDX.StoreS
|
||||||
lda #C.CR
|
lda #C.CR
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
|
|
||||||
txa
|
txa
|
||||||
PWDX.GetRecordLen.RTS
|
PWDX.RTS rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.StoreString
|
PWDX.StoreS jsr SHARED.TXTPTRgY
|
||||||
jsr SHARED.TXTPTR.GetY
|
beq PWDX.RTS
|
||||||
beq PWDX.GetRecordLen.RTS
|
jsr PWDX.StoreC
|
||||||
jsr PWDX.StoreChar
|
|
||||||
iny
|
iny
|
||||||
bra PWDX.StoreString
|
bra PWDX.StoreS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.StoreByte php
|
PWDX.StoreB php
|
||||||
phx
|
phx
|
||||||
jsr MATH.A2STR10NP
|
jsr MATH.A2STR10NP
|
||||||
plx
|
plx
|
||||||
|
@ -802,13 +799,13 @@ PWDX.StoreByte php
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda A2osX.NumStrBuf,y
|
.1 lda FOUTBuf,y
|
||||||
beq PWDX.GetRecordLen.RTS
|
beq PWDX.RTS
|
||||||
iny
|
iny
|
||||||
jsr PWDX.StoreChar
|
jsr PWDX.StoreC
|
||||||
bra .1
|
bra .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.StoreChar inx
|
PWDX.StoreC inx
|
||||||
bcc .9 Dry run, no store
|
bcc .9 Dry run, no store
|
||||||
sta (ZPPtr3)
|
sta (ZPPtr3)
|
||||||
inc ZPPtr3
|
inc ZPPtr3
|
||||||
|
@ -816,15 +813,14 @@ PWDX.StoreChar inx
|
||||||
inc ZPPtr3+1
|
inc ZPPtr3+1
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.ROOTSESSION
|
PWDX.ROOT .DA #S.SESSION.P.ROOT
|
||||||
.DA #S.SESSION.P.ROOT
|
|
||||||
.DA #0 UID
|
.DA #0 UID
|
||||||
.DA #0 GID
|
.DA #0 GID
|
||||||
.AZ "root" NAME
|
.AZ "root" NAME
|
||||||
.AZ "Root User" GECOS
|
.AZ "Root User" GECOS
|
||||||
.AZ "${ROOT}root/" DIR
|
.AZ "${ROOT}root/" DIR
|
||||||
.AZ "${ROOT}bin/sh" SHELL
|
.AZ "${ROOT}bin/sh" SHELL
|
||||||
PWDX.ROOTSESSION.Size .EQ *-PWDX.ROOTSESSION
|
PWDX.ROOT.Size .EQ *-PWDX.ROOT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PWDX.GROUP .AS "root:0"
|
PWDX.GROUP .AS "root:0"
|
||||||
.DA #C.CR
|
.DA #C.CR
|
||||||
|
|
|
@ -9,12 +9,12 @@ SHARED.IsIDValid
|
||||||
beq SHARED.IsDigit.8
|
beq SHARED.IsDigit.8
|
||||||
SHARED.IsDigitOrL
|
SHARED.IsDigitOrL
|
||||||
cmp #'z'+1
|
cmp #'z'+1
|
||||||
bcs SHARED.IsDigit.RTS
|
bcs SHARED.RTS
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcs SHARED.IsDigit.8
|
bcs SHARED.IsDigit.8
|
||||||
SHARED.IsDigitOrUC
|
SHARED.IsDigitOrUC
|
||||||
cmp #'Z'+1
|
cmp #'Z'+1
|
||||||
bcs SHARED.IsDigit.RTS
|
bcs SHARED.RTS
|
||||||
cmp #'A'
|
cmp #'A'
|
||||||
bcs SHARED.IsDigit.8
|
bcs SHARED.IsDigit.8
|
||||||
|
|
||||||
|
@ -24,122 +24,97 @@ SHARED.IsDigit.9
|
||||||
rts
|
rts
|
||||||
SHARED.IsDigit.8
|
SHARED.IsDigit.8
|
||||||
clc
|
clc
|
||||||
SHARED.IsDigit.RTS
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.IsHexDigit
|
SHARED.TXTPTRgY sta CLRREADAUX
|
||||||
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
|
|
||||||
lda (TXTPTR),y
|
lda (TXTPTR),y
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.TXTPTR.GetNext
|
SHARED.TXTPTRgn sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
lda (TXTPTR)
|
lda (TXTPTR)
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
beq SHARED.RTS
|
beq SHARED.RTS
|
||||||
SHARED.TXTPTR.Next
|
SHARED.TXTPTRn inc TXTPTR
|
||||||
inc TXTPTR
|
|
||||||
bne SHARED.RTS
|
bne SHARED.RTS
|
||||||
inc TXTPTR+1
|
inc TXTPTR+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.FORPNT.getY
|
SHARED.FORPNTgY sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
lda (FORPNT),y
|
lda (FORPNT),y
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.FORPNT.PutY
|
SHARED.FORPNTpY sta CLRWRITEAUX
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta (FORPNT),y
|
sta (FORPNT),y
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.FORPNT.GetNext
|
SHARED.FORPNTgn sta CLRREADAUX
|
||||||
sta CLRREADAUX
|
|
||||||
lda (FORPNT)
|
lda (FORPNT)
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
bra SHARED.FORPNT.Next
|
bra SHARED.FORPNTn
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.FORPNT.PutNext
|
SHARED.FORPNTpn sta CLRWRITEAUX
|
||||||
sta CLRWRITEAUX
|
|
||||||
sta (FORPNT)
|
sta (FORPNT)
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
SHARED.FORPNT.Next
|
SHARED.FORPNTn inc FORPNT
|
||||||
inc FORPNT
|
|
||||||
bne SHARED.RTS
|
bne SHARED.RTS
|
||||||
inc FORPNT+1
|
inc FORPNT+1
|
||||||
SHARED.RTS rts
|
SHARED.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.GetCharPtr1
|
SHARED.GetCP1 lda (ZPPtr1)
|
||||||
lda (ZPPtr1)
|
|
||||||
beq SHARED.RTS
|
beq SHARED.RTS
|
||||||
|
|
||||||
inc ZPPtr1
|
inc ZPPtr1
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc ZPPtr1+1 never Z
|
inc ZPPtr1+1 never Z
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.AddYp1ToPtr1
|
SHARED.AddYp12P1
|
||||||
sec
|
sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
SHARED.AddYToPtr1
|
SHARED.AddY2P1 clc
|
||||||
clc
|
|
||||||
tya
|
tya
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.AddYp1ToPtr2
|
SHARED.AddYp12P2
|
||||||
sec
|
sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
SHARED.AddYToPtr2
|
SHARED.AddY2P2 clc
|
||||||
clc
|
|
||||||
tya
|
tya
|
||||||
adc ZPPtr2
|
adc ZPPtr2
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
clc keep CC as some JMP exit here
|
clc keep CC as some JMP exit here
|
||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.GetCharPtr2
|
SHARED.GetCP2 lda (ZPPtr2)
|
||||||
lda (ZPPtr2)
|
bne SHARED.NextCP2
|
||||||
bne SHARED.NextCharPtr2
|
|
||||||
rts
|
rts
|
||||||
SHARED.PutCharPtr2
|
*--------------------------------------
|
||||||
sta (ZPPtr2)
|
SHARED.PutCP2 sta (ZPPtr2)
|
||||||
SHARED.NextCharPtr2
|
SHARED.NextCP2 inc ZPPtr2
|
||||||
inc ZPPtr2
|
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.ZPPtr3.GetY
|
SHARED.PullP2P1 >PULLW ZPPtr2
|
||||||
sta CLRREADAUX
|
>PULLW ZPPtr1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SHARED.P3gY sta CLRREADAUX
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -3,22 +3,16 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPSListDataOfs .EQ ZPMEMMGR+8
|
ZPSListDataOfs .EQ ZPMEMMGR+8
|
||||||
ZPSListDataLen .EQ ZPMEMMGR+10
|
ZPSListDataLen .EQ ZPMEMMGR+10
|
||||||
ZPSListIBlkPtr .EQ ZPMEMMGR+12
|
|
||||||
ZPSListDBlkPtr .EQ ZPMEMMGR+14
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.KeyLen .BS 1
|
SLIST.KeyLen .BS 1
|
||||||
SLIST.DataLen .BS 2
|
SLIST.DataLen .BS 2
|
||||||
SLIST.nDataCnt .BS 2
|
SLIST.nDataCnt .BS 2
|
||||||
SLIST.nBufCnt .BS 2
|
SLIST.nBufCnt .BS 2
|
||||||
SLIST.bStringMode .BS 1
|
SLIST.bStr .BS 1
|
||||||
SLIST.bAppend0 .BS 1
|
SLIST.b0 .BS 1
|
||||||
SLIST.KeyID .EQ *
|
SLIST.KeyID .BS 2
|
||||||
SLIST.BytePtr .BS 1
|
|
||||||
SLIST.BlockPtr .BS 1
|
|
||||||
SLIST.KeyID.Save .BS 2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLISTX.SListGetData
|
SLISTX.GetData jsr SLIST.Select
|
||||||
jsr SLIST.Select
|
|
||||||
|
|
||||||
jsr SLIST.SkipKey
|
jsr SLIST.SkipKey
|
||||||
jsr SLIST.GetDataLen
|
jsr SLIST.GetDataLen
|
||||||
|
@ -40,7 +34,7 @@ SLISTX.SListGetData
|
||||||
ldx ZPSListDataOfs+1
|
ldx ZPSListDataOfs+1
|
||||||
jsr SLIST.SkipDataAX
|
jsr SLIST.SkipDataAX
|
||||||
|
|
||||||
stz SLIST.bAppend0
|
stz SLIST.b0
|
||||||
|
|
||||||
lda FORPNT
|
lda FORPNT
|
||||||
ora FORPNT+1
|
ora FORPNT+1
|
||||||
|
@ -53,7 +47,7 @@ SLISTX.SListGetData
|
||||||
inc +1 for ending 0
|
inc +1 for ending 0
|
||||||
|
|
||||||
sec
|
sec
|
||||||
ror SLIST.bAppend0
|
ror SLIST.b0
|
||||||
|
|
||||||
.11 ldx #SYS.GetMem
|
.11 ldx #SYS.GetMem
|
||||||
jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!!
|
jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!!
|
||||||
|
@ -74,7 +68,7 @@ SLISTX.SListGetData
|
||||||
sta SLIST.nBufCnt+1
|
sta SLIST.nBufCnt+1
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.1 ror SLIST.bStringMode
|
.1 ror SLIST.bStr
|
||||||
|
|
||||||
stz ZPSListDataLen
|
stz ZPSListDataLen
|
||||||
stz ZPSListDataLen+1
|
stz ZPSListDataLen+1
|
||||||
|
@ -84,7 +78,7 @@ SLISTX.SListGetData
|
||||||
inc SLIST.nDataCnt+1
|
inc SLIST.nDataCnt+1
|
||||||
beq .80
|
beq .80
|
||||||
|
|
||||||
.3 bit SLIST.bStringMode
|
.3 bit SLIST.bStr
|
||||||
bmi .4 String mode : until CR
|
bmi .4 String mode : until CR
|
||||||
|
|
||||||
inc SLIST.nBufCnt
|
inc SLIST.nBufCnt
|
||||||
|
@ -92,14 +86,14 @@ SLISTX.SListGetData
|
||||||
inc SLIST.nBufCnt+1
|
inc SLIST.nBufCnt+1
|
||||||
beq .80 not string mode : until end of buffer
|
beq .80 not string mode : until end of buffer
|
||||||
|
|
||||||
.4 jsr SLIST.GetNextByte
|
.4 jsr BLISTX.GetNByte
|
||||||
bit SLIST.bStringMode
|
bit SLIST.bStr
|
||||||
bpl .5
|
bpl .5
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .81
|
beq .81
|
||||||
|
|
||||||
.5 jsr SHARED.FORPNT.PutNext
|
.5 jsr SHARED.FORPNTpn
|
||||||
inc ZPSListDataLen
|
inc ZPSListDataLen
|
||||||
bne .2
|
bne .2
|
||||||
inc ZPSListDataLen+1
|
inc ZPSListDataLen+1
|
||||||
|
@ -109,39 +103,38 @@ SLISTX.SListGetData
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.80 lda SLIST.bStringMode
|
.80 lda SLIST.bStr
|
||||||
ora SLIST.bAppend0
|
ora SLIST.b0
|
||||||
bpl .82
|
bpl .82
|
||||||
|
|
||||||
.81 lda #0
|
.81 lda #0
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
.82 >LDYA ZPSListDataLen
|
.82 >LDYA ZPSListDataLen
|
||||||
.88 ldx #$ff SELF MODIFIED
|
.88 ldx #$ff SELF MODIFIED
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLISTX.SListAddData
|
SLISTX.AddData jsr SLIST.Select
|
||||||
jsr SLIST.Select
|
|
||||||
|
|
||||||
jsr SLIST.SkipKey
|
jsr SLIST.SkipKey
|
||||||
|
|
||||||
ldy SLIST.BytePtr
|
ldy iByte
|
||||||
lda (ZPSListDBlkPtr),y
|
lda (DBlkPtr),y
|
||||||
pha
|
pha
|
||||||
clc
|
clc
|
||||||
adc ZPSListDataLen
|
adc ZPSListDataLen
|
||||||
sta (ZPSListDBlkPtr),y
|
sta (DBlkPtr),y
|
||||||
php
|
php
|
||||||
jsr SLIST.ToNextByte skip LEN lo
|
jsr BLISTX.2NByte skip LEN lo
|
||||||
|
|
||||||
plp
|
plp
|
||||||
ldy SLIST.BytePtr
|
ldy iByte
|
||||||
lda (ZPSListDBlkPtr),y
|
lda (DBlkPtr),y
|
||||||
pha
|
pha
|
||||||
adc ZPSListDataLen+1
|
adc ZPSListDataLen+1
|
||||||
sta (ZPSListDBlkPtr),y
|
sta (DBlkPtr),y
|
||||||
jsr SLIST.ToNextByte skip LEN hi
|
jsr BLISTX.2NByte skip LEN hi
|
||||||
|
|
||||||
plx
|
plx
|
||||||
pla
|
pla
|
||||||
|
@ -161,22 +154,21 @@ SLISTX.SListAddData
|
||||||
inc ZPSListDataLen+1
|
inc ZPSListDataLen+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.2 jsr SHARED.FORPNT.GetNext
|
.2 jsr SHARED.FORPNTgn
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
jsr SLIST.SetBlockByte override ending 0, already allocated
|
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||||
clc
|
clc
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.3 jsr SLIST.AddDataByte
|
.3 jsr BLISTX.AddByte
|
||||||
bcc .1
|
bcc .1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 lda #0
|
.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
|
SLISTX.SetData jsr SLIST.Select
|
||||||
jsr SLIST.Select
|
|
||||||
|
|
||||||
jsr SLIST.SkipKey
|
jsr SLIST.SkipKey
|
||||||
jsr SLIST.GetDataLen
|
jsr SLIST.GetDataLen
|
||||||
|
@ -200,8 +192,8 @@ SLISTX.SListSetData
|
||||||
inc SLIST.nDataCnt+1
|
inc SLIST.nDataCnt+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.2 jsr SHARED.FORPNT.GetNext
|
.2 jsr SHARED.FORPNTgn
|
||||||
jsr SLIST.SetBlockByte
|
jsr BLISTX.SetBlkByte
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -210,20 +202,19 @@ SLISTX.SListSetData
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLISTX.SListGetByID
|
SLISTX.GetByID jsr SLIST.Select
|
||||||
jsr SLIST.Select
|
|
||||||
|
|
||||||
jsr SLIST.GetNextByte
|
jsr BLISTX.GetNByte
|
||||||
tax
|
tax
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 phy
|
.1 phy
|
||||||
jsr SLIST.GetNextByte
|
jsr BLISTX.GetNByte
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
|
@ -231,10 +222,10 @@ SLISTX.SListGetByID
|
||||||
|
|
||||||
txa lda #0
|
txa lda #0
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
|
|
||||||
jsr SLIST.SkipData
|
jsr SLIST.SkipData
|
||||||
>LDYA SLIST.KeyID
|
>LDYA KeyID
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -242,20 +233,19 @@ SLISTX.SListGetByID
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLISTX.SListNewKey
|
SLISTX.NewKey jsr SLIST.Search
|
||||||
jsr SLIST.Search
|
|
||||||
bcc .99
|
bcc .99
|
||||||
|
|
||||||
>LDYA SLIST.KeyID
|
>LDYA KeyID
|
||||||
>STYA SLIST.KeyID.Save End of list
|
>STYA SLIST.KeyID End of list
|
||||||
|
|
||||||
lda SLIST.KeyLen
|
lda SLIST.KeyLen
|
||||||
jsr SLIST.SetBlockByte override ending 0, already allocated
|
jsr BLISTX.SetBlkByte override ending 0, already allocated
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 jsr SHARED.TXTPTR.GetY
|
.1 jsr SHARED.TXTPTRgY
|
||||||
jsr SLIST.AddDataByte
|
jsr BLISTX.AddByte
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
@ -263,18 +253,18 @@ SLISTX.SListNewKey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #0 Data Len lo = 0
|
lda #0 Data Len lo = 0
|
||||||
jsr SLIST.AddDataByte
|
jsr BLISTX.AddByte
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #0 Data Len hi = 0
|
lda #0 Data Len hi = 0
|
||||||
jsr SLIST.AddDataByte
|
jsr BLISTX.AddByte
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #0 Ending Len = 0
|
lda #0 Ending Len = 0
|
||||||
jsr SLIST.AddDataByte
|
jsr BLISTX.AddByte
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA SLIST.KeyID.Save
|
>LDYA SLIST.KeyID
|
||||||
ldx SLIST.KeyLen
|
ldx SLIST.KeyLen
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
@ -283,67 +273,25 @@ SLISTX.SListNewKey
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLISTX.SListLookup
|
SLISTX.Lookup jsr SLIST.Search
|
||||||
jsr SLIST.Search
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx SLIST.KeyLen
|
ldx SLIST.KeyLen
|
||||||
.9 rts
|
.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
|
* PRIVATE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.Search jsr K.GetMemPtr
|
SLIST.Search jsr K.GetMemPtr
|
||||||
>STYA ZPSListIBlkPtr
|
>STYA IBlkPtr
|
||||||
|
|
||||||
lda (ZPSListIBlkPtr)
|
lda (IBlkPtr)
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPSListDBlkPtr
|
>STYA DBlkPtr
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
beq .11
|
beq .11
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
|
@ -351,29 +299,29 @@ SLIST.Search jsr K.GetMemPtr
|
||||||
|
|
||||||
.11 sty SLIST.KeyLen
|
.11 sty SLIST.KeyLen
|
||||||
|
|
||||||
stz SLIST.BytePtr
|
stz iByte
|
||||||
stz SLIST.BlockPtr
|
stz iBlk
|
||||||
|
|
||||||
.2 >LDYA SLIST.KeyID
|
.2 >LDYA KeyID
|
||||||
>STYA SLIST.KeyID.Save
|
>STYA SLIST.KeyID
|
||||||
|
|
||||||
ldy SLIST.BytePtr
|
ldy iByte
|
||||||
lda (ZPSListDBlkPtr),y
|
lda (DBlkPtr),y
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
cmp SLIST.KeyLen
|
cmp SLIST.KeyLen
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
jsr SLIST.GetNextByte Skip Len
|
jsr BLISTX.GetNByte Skip Len
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.3 phy
|
.3 phy
|
||||||
jsr SLIST.GetNextByte
|
jsr BLISTX.GetNByte
|
||||||
sta .4+1
|
sta .4+1
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
|
|
||||||
.4 cmp #$ff SELF MODIFIED
|
.4 cmp #$ff SELF MODIFIED
|
||||||
bne .5
|
bne .5
|
||||||
|
@ -382,11 +330,11 @@ SLIST.Search jsr K.GetMemPtr
|
||||||
cpy SLIST.KeyLen
|
cpy SLIST.KeyLen
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
>LDYA SLIST.KeyID.Save
|
>LDYA SLIST.KeyID
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.5 >LDYA SLIST.KeyID.Save
|
.5 >LDYA SLIST.KeyID
|
||||||
|
|
||||||
jsr SLIST.Select.I move back...
|
jsr SLIST.Select.I move back...
|
||||||
jsr SLIST.Next
|
jsr SLIST.Next
|
||||||
|
@ -397,17 +345,17 @@ SLIST.Search jsr K.GetMemPtr
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.Select jsr K.GetMemPtr
|
SLIST.Select jsr K.GetMemPtr
|
||||||
>STYA ZPSListIBlkPtr
|
>STYA IBlkPtr
|
||||||
|
|
||||||
>LDYA TXTPTR
|
>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
|
jsr K.GetMemPtr
|
||||||
>STYA ZPSListDBlkPtr
|
>STYA DBlkPtr
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -419,90 +367,36 @@ SLIST.SkipData jsr SLIST.GetDataLen
|
||||||
ldx SLIST.DataLen+1
|
ldx SLIST.DataLen+1
|
||||||
SLIST.SkipDataAX
|
SLIST.SkipDataAX
|
||||||
clc
|
clc
|
||||||
adc SLIST.BytePtr
|
adc iByte
|
||||||
sta SLIST.BytePtr
|
sta iByte
|
||||||
txa
|
txa
|
||||||
adc SLIST.BlockPtr
|
adc iBlk
|
||||||
sta SLIST.BlockPtr
|
sta iBlk
|
||||||
tay
|
tay
|
||||||
lda (ZPSListIBlkPtr),y
|
lda (IBlkPtr),y
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPSListDBlkPtr
|
>STYA DBlkPtr
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.SkipKey ldy SLIST.BytePtr
|
SLIST.SkipKey ldy iByte
|
||||||
lda (ZPSListDBlkPtr),y Get KeyLen
|
lda (DBlkPtr),y Get KeyLen
|
||||||
sec
|
sec
|
||||||
adc SLIST.BytePtr
|
adc iByte
|
||||||
sta SLIST.BytePtr
|
sta iByte
|
||||||
bcs SLIST.ToNextBlock
|
bcc .8
|
||||||
|
|
||||||
|
jmp BLISTX.2NBlk
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SLIST.GetDataLen
|
SLIST.GetDataLen
|
||||||
jsr SLIST.GetNextByte Get DataLenLo
|
jsr BLISTX.GetNByte Get DataLenLo
|
||||||
sta SLIST.DataLen
|
sta SLIST.DataLen
|
||||||
jsr SLIST.GetNextByte Get DataLenHI
|
jsr BLISTX.GetNByte Get DataLenHI
|
||||||
sta SLIST.DataLen+1
|
sta SLIST.DataLen+1
|
||||||
rts
|
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
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.slistx
|
SAVE usr/src/sys/kernel.s.slistx
|
||||||
LOAD usr/src/sys/kernel.s
|
LOAD usr/src/sys/kernel.s
|
||||||
|
|
|
@ -56,7 +56,7 @@ K.SetAttr jsr PFT.CheckPath1
|
||||||
K.ChMod jsr PFT.CheckPath2
|
K.ChMod jsr PFT.CheckPath2
|
||||||
bcs K.ChMod.RET4
|
bcs K.ChMod.RET4
|
||||||
|
|
||||||
jsr STAT.PullPathAndMode
|
jsr STAT.PM
|
||||||
|
|
||||||
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
||||||
|
|
||||||
|
@ -100,14 +100,14 @@ K.FStat jsr PFT.CheckNode2
|
||||||
jsr PFT.YAToMLIPATH
|
jsr PFT.YAToMLIPATH
|
||||||
|
|
||||||
jsr FS.Stat.203
|
jsr FS.Stat.203
|
||||||
bcs K.Stat.Store.RTS
|
bcs STAT.RTS
|
||||||
|
|
||||||
ldy #S.FD.REG.REF
|
ldy #S.FD.REG.REF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta K.MLI.PARAMS+1
|
sta K.MLI.PARAMS+1
|
||||||
|
|
||||||
>MLICALL MLIGETEOF
|
>MLICALL MLIGETEOF
|
||||||
bcs K.Stat.Store.RTS
|
bcs STAT.RTS
|
||||||
|
|
||||||
ldx #2
|
ldx #2
|
||||||
|
|
||||||
|
@ -124,8 +124,7 @@ K.Stat.Store.2 sta $ffff,y SELF MODIFIED
|
||||||
bpl K.Stat.Store.1
|
bpl K.Stat.Store.1
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
K.Stat.Store.RTS
|
STAT.RTS rts
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Stat
|
* # Stat
|
||||||
* Return information about a file
|
* Return information about a file
|
||||||
|
@ -166,7 +165,7 @@ K.Stat jsr PFT.CheckPath2
|
||||||
K.MKDir jsr PFT.CheckPath2
|
K.MKDir jsr PFT.CheckPath2
|
||||||
bcs K.ChMod.RET4
|
bcs K.ChMod.RET4
|
||||||
|
|
||||||
jsr STAT.PullPathAndMode
|
jsr STAT.PM
|
||||||
|
|
||||||
lda #S.FI.T.DIR
|
lda #S.FI.T.DIR
|
||||||
sta K.MLI.PARAMS+4
|
sta K.MLI.PARAMS+4
|
||||||
|
@ -187,11 +186,11 @@ K.MKDir jsr PFT.CheckPath2
|
||||||
* CC = OK, CS = ERROR
|
* CC = OK, CS = ERROR
|
||||||
* A = hFILE
|
* A = hFILE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.MKFIFO jsr STAT.PullPathAndMode
|
K.MKFIFO jsr STAT.PM
|
||||||
|
|
||||||
>LDYAI 512
|
>LDYAI 512
|
||||||
jsr K.pipe
|
jsr K.pipe
|
||||||
bcs K.Stat.Store.RTS
|
bcs STAT.RTS
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
.1 lda STAT.FIFO,y
|
.1 lda STAT.FIFO,y
|
||||||
|
@ -227,7 +226,7 @@ K.MKFIFO jsr STAT.PullPathAndMode
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.MkNod >PULLB IO.hFD
|
K.MkNod >PULLB IO.hFD
|
||||||
|
|
||||||
jsr STAT.PullPathAndMode
|
jsr STAT.PM
|
||||||
|
|
||||||
K.MkNod.I ldx #2
|
K.MkNod.I ldx #2
|
||||||
|
|
||||||
|
@ -307,8 +306,7 @@ K.Pipe sta .1+1 SIZE HI
|
||||||
.99
|
.99
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAT.PullPathAndMode
|
STAT.PM >PULLW K.S.STAT+S.STAT.MODE
|
||||||
>PULLW K.S.STAT+S.STAT.MODE
|
|
||||||
>PULLW ZPPtr1 pathname
|
>PULLW ZPPtr1 pathname
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -50,7 +50,7 @@ K.FPutC jsr PFT.CheckNodeA
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHWI K.IOBuf buf
|
>PUSHWI K.IOBuf buf
|
||||||
jsr UNISTD.Write
|
jsr IO.Write
|
||||||
bcc .8 pop char...
|
bcc .8 pop char...
|
||||||
|
|
||||||
cmp #E.NODATA
|
cmp #E.NODATA
|
||||||
|
@ -158,7 +158,7 @@ K.FPutS jsr PFT.CheckNode2 set IO.hFD
|
||||||
>PUSHA push len LO
|
>PUSHA push len LO
|
||||||
|
|
||||||
>PUSHW ZPPtr2
|
>PUSHW ZPPtr2
|
||||||
jsr UNISTD.Write
|
jsr IO.Write
|
||||||
bcc K.PutS.RET3
|
bcc K.PutS.RET3
|
||||||
|
|
||||||
cmp #E.NODATA
|
cmp #E.NODATA
|
||||||
|
@ -240,7 +240,7 @@ K.FGetS jsr PFT.CheckNode4
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SHARED.PutCharPtr2
|
jsr SHARED.PutCP2
|
||||||
|
|
||||||
inc ZPPtr1
|
inc ZPPtr1
|
||||||
bne .4
|
bne .4
|
||||||
|
@ -299,28 +299,28 @@ K.GetChar ldy #S.PS.hStdIn
|
||||||
* A = char
|
* A = char
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetC jsr PFT.CheckNodeA
|
K.GetC jsr PFT.CheckNodeA
|
||||||
bcs K.GetC.RTS
|
bcs .9
|
||||||
|
|
||||||
jsr STDIO.Get.1
|
jsr STDIO.Get.1
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
cmp #E.NODATA
|
cmp #E.NODATA
|
||||||
sec
|
sec
|
||||||
bne K.GetC.RTS I/O error
|
bne .9 I/O error
|
||||||
|
|
||||||
inc 0 = BLOCKING
|
inc 0 = BLOCKING
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 lda K.IOBuf
|
.8 lda K.IOBuf
|
||||||
|
|
||||||
K.GetC.RTS rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STDIO.Get.1 lda #0
|
STDIO.Get.1 lda #0
|
||||||
>PUSHA
|
>PUSHA
|
||||||
inc read 1 byte
|
inc read 1 byte
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHWI K.IOBuf
|
>PUSHWI K.IOBuf
|
||||||
jmp UNISTD.READ
|
jmp IO.Read
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ungetc
|
* # ungetc
|
||||||
* push byte back into input stream
|
* push byte back into input stream
|
||||||
|
@ -376,7 +376,7 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
inc pStack discard filename
|
inc pStack discard filename
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
jmp UNISTD.Open
|
jmp IO.Open
|
||||||
|
|
||||||
.9 >POP 6
|
.9 >POP 6
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -394,7 +394,7 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
K.FClose jsr PFT.CheckNodeA
|
K.FClose jsr PFT.CheckNodeA
|
||||||
bcs K.FRead.RTS
|
bcs K.FRead.RTS
|
||||||
|
|
||||||
jmp UNISTD.Close
|
jmp IO.Close
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FRead (BLOCKING)
|
* # FRead (BLOCKING)
|
||||||
* Read bytes from file
|
* Read bytes from file
|
||||||
|
@ -412,7 +412,7 @@ K.FClose jsr PFT.CheckNodeA
|
||||||
K.FRead jsr PFT.CheckNodeA
|
K.FRead jsr PFT.CheckNodeA
|
||||||
bcs K.FWrite.RET4
|
bcs K.FWrite.RET4
|
||||||
|
|
||||||
jsr UNISTD.Read
|
jsr IO.Read
|
||||||
bcs K.FWrite.9
|
bcs K.FWrite.9
|
||||||
|
|
||||||
K.FRead.RTS rts
|
K.FRead.RTS rts
|
||||||
|
@ -433,7 +433,7 @@ K.FRead.RTS rts
|
||||||
K.FWrite jsr PFT.CheckNodeA
|
K.FWrite jsr PFT.CheckNodeA
|
||||||
bcs K.FWrite.RET4
|
bcs K.FWrite.RET4
|
||||||
|
|
||||||
jsr UNISTD.Write
|
jsr IO.Write
|
||||||
bcc K.FWrite.RTS
|
bcc K.FWrite.RTS
|
||||||
|
|
||||||
K.FWrite.9 cmp #E.NODATA
|
K.FWrite.9 cmp #E.NODATA
|
||||||
|
@ -720,8 +720,8 @@ K.Rename jsr PFT.CheckPath2
|
||||||
.OR ZPTMP+5 5 Bytes
|
.OR ZPTMP+5 5 Bytes
|
||||||
PrintF.Cnt .BS 2
|
PrintF.Cnt .BS 2
|
||||||
PrintF.hFILE .BS 1
|
PrintF.hFILE .BS 1
|
||||||
STDIO.StackBytePtr .BS 1
|
STDIO.iStkB .BS 1
|
||||||
STDIO.ExitPopCnt .BS 1
|
STDIO.PopCnt .BS 1
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.PrintF.PadL .EQ FAC+5
|
K.PrintF.PadL .EQ FAC+5
|
||||||
|
@ -745,9 +745,9 @@ K.PrintF.1 sec format string->ptr2
|
||||||
stx pIOBuf
|
stx pIOBuf
|
||||||
sta pIOBuf+1 Output buffer->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
|
bne .22
|
||||||
|
|
||||||
jmp .8 end of format..
|
jmp .8 end of format..
|
||||||
|
@ -764,7 +764,7 @@ K.PrintF.1 sec format string->ptr2
|
||||||
cmp #'0' ...a 0...mmm... padding char?
|
cmp #'0' ...a 0...mmm... padding char?
|
||||||
bne .4
|
bne .4
|
||||||
sta K.PrintF.PadC
|
sta K.PrintF.PadC
|
||||||
jsr SHARED.NextCharPtr2 skip 0 ...
|
jsr SHARED.NextCP2 skip 0 ...
|
||||||
lda (ZPPtr2)
|
lda (ZPPtr2)
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
|
@ -780,7 +780,7 @@ K.PrintF.1 sec format string->ptr2
|
||||||
lda #C.SPACE
|
lda #C.SPACE
|
||||||
sta K.PrintF.PadC
|
sta K.PrintF.PadC
|
||||||
|
|
||||||
.5 jsr SHARED.AddYToPtr2 skip all processed chars
|
.5 jsr SHARED.AddY2P2 skip all processed chars
|
||||||
|
|
||||||
lda (ZPPtr2)
|
lda (ZPPtr2)
|
||||||
beq .7
|
beq .7
|
||||||
|
@ -792,7 +792,7 @@ K.PrintF.1 sec format string->ptr2
|
||||||
bpl .61
|
bpl .61
|
||||||
bra .20 unknown ...
|
bra .20 unknown ...
|
||||||
|
|
||||||
.62 jsr SHARED.NextCharPtr2
|
.62 jsr SHARED.NextCP2
|
||||||
txa yes, jmp to it!
|
txa yes, jmp to it!
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
|
@ -805,7 +805,7 @@ K.PrintF.1 sec format string->ptr2
|
||||||
.10 cmp #'\'
|
.10 cmp #'\'
|
||||||
bne .20
|
bne .20
|
||||||
|
|
||||||
jsr SHARED.GetCharPtr2
|
jsr SHARED.GetCP2
|
||||||
beq .99
|
beq .99
|
||||||
ldx #PrintFTBL2.Cnt-1
|
ldx #PrintFTBL2.Cnt-1
|
||||||
.12 cmp PrintFTBL2,x
|
.12 cmp PrintFTBL2,x
|
||||||
|
@ -819,7 +819,7 @@ K.PrintF.1 sec format string->ptr2
|
||||||
jsr MATH.Hex2ACC32
|
jsr MATH.Hex2ACC32
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SHARED.AddYToPtr2
|
jsr SHARED.AddY2P2
|
||||||
.14 lda ACC32
|
.14 lda ACC32
|
||||||
bra .20
|
bra .20
|
||||||
.19 lda PrintFTBL2.OUT,x
|
.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
|
.80 ldy PrintF.Cnt A=0, Writing to buffer, append \0
|
||||||
sta (pIOBuf),y
|
sta (pIOBuf),y
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.81 >LDYA PrintF.Cnt
|
.81 >LDYA PrintF.Cnt
|
||||||
* clc
|
* clc
|
||||||
.9 jmp STDIO.Exit
|
.9 jmp STDIO.Exit
|
||||||
|
@ -869,7 +870,7 @@ PrintF.ESC jmp (.1,x)
|
||||||
.DA PrintF.I,PrintF.II,PrintF.L
|
.DA PrintF.I,PrintF.II,PrintF.L
|
||||||
.DA PrintF.S,PrintF.SS
|
.DA PrintF.S,PrintF.SS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.B jsr STDIO.GetStackByte
|
PrintF.B jsr STDIO.GetStkB
|
||||||
bcs PrintF.B.RTS
|
bcs PrintF.B.RTS
|
||||||
ldy #8
|
ldy #8
|
||||||
|
|
||||||
|
@ -913,7 +914,7 @@ PrintF.NUM sty .2+1
|
||||||
ror ACC32.Sign save signed/unsigned flag
|
ror ACC32.Sign save signed/unsigned flag
|
||||||
jsr M32.ACC32Z
|
jsr M32.ACC32Z
|
||||||
|
|
||||||
.1 jsr STDIO.GetStackByte
|
.1 jsr STDIO.GetStkB
|
||||||
bcs PrintF.B.RTS
|
bcs PrintF.B.RTS
|
||||||
|
|
||||||
sta ACC32-1,y PULL 4,2 or 1
|
sta ACC32-1,y PULL 4,2 or 1
|
||||||
|
@ -962,12 +963,13 @@ PrintF.F clc
|
||||||
ldy pStack+1 A,Y = float
|
ldy pStack+1 A,Y = float
|
||||||
ldx #FPU.SETFAC
|
ldx #FPU.SETFAC
|
||||||
jsr GP.ROMCALL
|
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
|
ldx #FPU.FOUT
|
||||||
jsr GP.ROMCALL
|
jsr GP.ROMCALL
|
||||||
|
|
||||||
PrintF.StrNum ldy #0
|
PrintF.StrNum ldy #0
|
||||||
.2 lda A2osX.NumStrBuf,y
|
.2 lda FOUTBuf,y
|
||||||
beq .8
|
beq .8
|
||||||
iny
|
iny
|
||||||
jsr PrintF.PutC
|
jsr PrintF.PutC
|
||||||
|
@ -988,11 +990,11 @@ PrintF.SS ldy #$00 PSTR
|
||||||
|
|
||||||
sty .1+1
|
sty .1+1
|
||||||
|
|
||||||
jsr STDIO.GetStackByte
|
jsr STDIO.GetStkB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
jsr STDIO.GetStackByte
|
jsr STDIO.GetStkB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
@ -1040,26 +1042,26 @@ PrintF.SS ldy #$00 PSTR
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.HH jsr STDIO.GetStackByte
|
PrintF.HH jsr STDIO.GetStkB
|
||||||
bcs PrintF.PutC.RTS
|
bcs STDIO.RTS
|
||||||
pha LO byte
|
pha LO byte
|
||||||
jsr STDIO.GetStackByte
|
jsr STDIO.GetStkB
|
||||||
plx
|
plx
|
||||||
bcs PrintF.PutC.RTS
|
bcs STDIO.RTS
|
||||||
pha
|
pha
|
||||||
txa
|
txa
|
||||||
jsr PrintF.H.1
|
jsr PrintF.H.1
|
||||||
plx
|
plx
|
||||||
bcs PrintF.PutC.RTS
|
bcs STDIO.RTS
|
||||||
txa
|
txa
|
||||||
bra PrintF.H.1
|
bra PrintF.H.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.H jsr STDIO.GetStackByte
|
PrintF.H jsr STDIO.GetStkB
|
||||||
bcs PrintF.PutC.RTS
|
bcs STDIO.RTS
|
||||||
|
|
||||||
PrintF.H.1 jsr STDIO.A2HexAX
|
PrintF.H.1 jsr STDIO.A2HexAX
|
||||||
jsr PrintF.PutC
|
jsr PrintF.PutC
|
||||||
bcs PrintF.PutC.RTS
|
bcs STDIO.RTS
|
||||||
txa
|
txa
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.PutC phy
|
PrintF.PutC phy
|
||||||
|
@ -1078,7 +1080,7 @@ PrintF.PutC phy
|
||||||
|
|
||||||
.9 lda #E.BUF
|
.9 lda #E.BUF
|
||||||
sec
|
sec
|
||||||
PrintF.PutC.RTS rts
|
STDIO.RTS rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ScanF (BLOCKING)
|
* # ScanF (BLOCKING)
|
||||||
* # FScanF (BLOCKING)
|
* # FScanF (BLOCKING)
|
||||||
|
@ -1142,7 +1144,7 @@ K.SScanF.1 clc format string->ptr1
|
||||||
stx ZPPtr2
|
stx ZPPtr2
|
||||||
sta ZPPtr2+1 Output buffer->ZPPtr2
|
sta ZPPtr2+1 Output buffer->ZPPtr2
|
||||||
|
|
||||||
sty STDIO.ExitPopCnt Total bytes to POP
|
sty STDIO.PopCnt Total bytes to POP
|
||||||
|
|
||||||
ldx PrintF.hFILE
|
ldx PrintF.hFILE
|
||||||
beq .1
|
beq .1
|
||||||
|
@ -1155,10 +1157,10 @@ K.SScanF.1 clc format string->ptr1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
tax
|
tax
|
||||||
bne PrintF.PutC.RTS
|
bne STDIO.RTS
|
||||||
>RET 4
|
>RET 4
|
||||||
|
|
||||||
.1 jsr SHARED.GetCharPtr1 End Of format?
|
.1 jsr SHARED.GetCP1 End Of format?
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #'%' Escape ?
|
cmp #'%' Escape ?
|
||||||
|
@ -1169,7 +1171,7 @@ K.SScanF.1 clc format string->ptr1
|
||||||
|
|
||||||
sta .11+1
|
sta .11+1
|
||||||
|
|
||||||
jsr SHARED.GetCharPtr2
|
jsr SHARED.GetCP2
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
.11 cmp #$ff Same char in string?
|
.11 cmp #$ff Same char in string?
|
||||||
|
@ -1177,18 +1179,18 @@ K.SScanF.1 clc format string->ptr1
|
||||||
|
|
||||||
bra .9
|
bra .9
|
||||||
|
|
||||||
.12 jsr SHARED.GetCharPtr2
|
.12 jsr SHARED.GetCP2
|
||||||
beq .9
|
beq .9
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
.13 jsr SHARED.GetCharPtr2
|
.13 jsr SHARED.GetCP2
|
||||||
cmp #C.SPACE another space ?
|
cmp #C.SPACE another space ?
|
||||||
beq .13
|
beq .13
|
||||||
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 jsr SHARED.GetCharPtr1 Get specifier after %
|
.2 jsr SHARED.GetCP1 Get specifier after %
|
||||||
beq .9 unexpected End of format after "%" ?
|
beq .9 unexpected End of format after "%" ?
|
||||||
|
|
||||||
ldx #K.SScanFJMP-K.SScanFTBL-2
|
ldx #K.SScanFJMP-K.SScanFTBL-2
|
||||||
|
@ -1203,10 +1205,10 @@ K.SScanF.1 clc format string->ptr1
|
||||||
sec
|
sec
|
||||||
jmp STDIO.Exit
|
jmp STDIO.Exit
|
||||||
|
|
||||||
.4 jsr STDIO.GetStackByte
|
.4 jsr STDIO.GetStkB
|
||||||
bcs .9
|
bcs .9
|
||||||
sta ZPPtr3+1
|
sta ZPPtr3+1
|
||||||
jsr STDIO.GetStackByte
|
jsr STDIO.GetStkB
|
||||||
bcs .9
|
bcs .9
|
||||||
sta ZPPtr3
|
sta ZPPtr3
|
||||||
|
|
||||||
|
@ -1250,7 +1252,7 @@ K.SScanF.H lda K.SScanFTBL+1,x Get VAR size
|
||||||
|
|
||||||
jsr MATH.Hex2ACC32
|
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
|
.1 ply get back VAL size
|
||||||
|
|
||||||
|
@ -1277,7 +1279,7 @@ K.SScanF.S ldy #$ff
|
||||||
.2 lda #0 add \0 to param ptr
|
.2 lda #0 add \0 to param ptr
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed
|
K.SScanF.Fwd jmp SHARED.AddY2P2 Y=char count parsed
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* IN:
|
* IN:
|
||||||
* CC : format in ZPPtr1
|
* CC : format in ZPPtr1
|
||||||
|
@ -1297,7 +1299,7 @@ STDIO.GetParams stz PrintF.Cnt
|
||||||
lda (pStack) Bytecount
|
lda (pStack) Bytecount
|
||||||
|
|
||||||
tay
|
tay
|
||||||
sty STDIO.StackBytePtr
|
sty STDIO.iStkB
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (pStack),y format LO
|
lda (pStack),y format LO
|
||||||
|
@ -1340,22 +1342,15 @@ STDIO.GetParams stz PrintF.Cnt
|
||||||
.1 ldx #K.IOBuf
|
.1 ldx #K.IOBuf
|
||||||
lda /K.IOBuf
|
lda /K.IOBuf
|
||||||
|
|
||||||
STDIO.GetParams.RTS
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STDIO.GetStackPtr
|
STDIO.GetStkB phy
|
||||||
jsr STDIO.GetStackByte
|
|
||||||
bcs STDIO.GetParams.RTS
|
|
||||||
tax
|
|
||||||
*--------------------------------------
|
|
||||||
STDIO.GetStackByte
|
|
||||||
phy
|
|
||||||
|
|
||||||
ldy STDIO.StackBytePtr
|
ldy STDIO.iStkB
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
dec STDIO.StackBytePtr
|
dec STDIO.iStkB
|
||||||
|
|
||||||
ply
|
ply
|
||||||
clc
|
clc
|
||||||
|
@ -1372,7 +1367,7 @@ STDIO.Exit php
|
||||||
|
|
||||||
lda pStack
|
lda pStack
|
||||||
sec
|
sec
|
||||||
adc STDIO.ExitPopCnt
|
adc STDIO.PopCnt
|
||||||
sta pStack
|
sta pStack
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
|
|
@ -43,7 +43,7 @@ K.AToF >STYA TXTPTR Ptr to source string
|
||||||
jsr CHARGOT
|
jsr CHARGOT
|
||||||
|
|
||||||
ldx #FPU.FIN
|
ldx #FPU.FIN
|
||||||
jmp GP.RomCallGetFacOnStack
|
jmp GP.GetFac
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # StrToL/StrToUL
|
* # StrToL/StrToUL
|
||||||
* Convert String to 32 bits (unsigned) int
|
* Convert String to 32 bits (unsigned) int
|
||||||
|
@ -340,7 +340,7 @@ K.Expand ldy #2
|
||||||
.10 lda (TXTPTR) End of CSTR?
|
.10 lda (TXTPTR) End of CSTR?
|
||||||
beq .80
|
beq .80
|
||||||
|
|
||||||
jsr SHARED.TXTPTR.Next
|
jsr SHARED.TXTPTRn
|
||||||
|
|
||||||
.11 cmp #'''
|
.11 cmp #'''
|
||||||
bne .21
|
bne .21
|
||||||
|
@ -374,13 +374,13 @@ K.Expand ldy #2
|
||||||
|
|
||||||
dec ENV.VarEndChar "}" expected
|
dec ENV.VarEndChar "}" expected
|
||||||
|
|
||||||
jsr SHARED.TXTPTR.Next skip "{"
|
jsr SHARED.TXTPTRn skip "{"
|
||||||
bra .40
|
bra .40
|
||||||
|
|
||||||
.31 jsr ENV.SysVar 0-9 *#?@$!
|
.31 jsr ENV.SysVar 0-9 *#?@$!
|
||||||
bcs .40
|
bcs .40
|
||||||
|
|
||||||
.35 jsr SHARED.TXTPTR.Next skip $x
|
.35 jsr SHARED.TXTPTRn skip $x
|
||||||
bra .10
|
bra .10
|
||||||
|
|
||||||
.40 jsr ENV.ExpandStrVar
|
.40 jsr ENV.ExpandStrVar
|
||||||
|
@ -408,7 +408,7 @@ K.Expand ldy #2
|
||||||
|
|
||||||
jsr SHARED.IsIDValid
|
jsr SHARED.IsIDValid
|
||||||
bcs .72
|
bcs .72
|
||||||
jsr SHARED.TXTPTR.Next
|
jsr SHARED.TXTPTRn
|
||||||
bra .70
|
bra .70
|
||||||
|
|
||||||
.72 lda ENV.VarEndChar
|
.72 lda ENV.VarEndChar
|
||||||
|
@ -465,7 +465,7 @@ ENV.SysVarsNum jsr MATH.A2STR10NP
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda A2osX.NumStrBuf,y
|
.1 lda FOUTBuf,y
|
||||||
beq ENV.SysVarsNum.8
|
beq ENV.SysVarsNum.8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
|
@ -35,8 +35,8 @@ K.StrLen >STYA .1+1
|
||||||
* `char * strcat ( char * destination, const char * source );`
|
* `char * strcat ( char * destination, const char * source );`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHWI destination`
|
||||||
* `>PUSHWI source`
|
* `>PUSHWI source`
|
||||||
* `>LDYAI destination`
|
|
||||||
* `>SYSCALL strcat`
|
* `>SYSCALL strcat`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = destination
|
* Y,A = destination
|
||||||
|
@ -50,8 +50,8 @@ K.StrCat sec
|
||||||
* `char * strcpy ( char * destination, const char * source );`
|
* `char * strcpy ( char * destination, const char * source );`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHWI destination`
|
||||||
* `>PUSHWI source`
|
* `>PUSHWI source`
|
||||||
* `>LDYAI destination`
|
|
||||||
* `>SYSCALL strcpy`
|
* `>SYSCALL strcpy`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = destination
|
* Y,A = destination
|
||||||
|
@ -59,11 +59,11 @@ K.StrCat sec
|
||||||
K.StrCpy clc
|
K.StrCpy clc
|
||||||
phy
|
phy
|
||||||
pha
|
pha
|
||||||
jsr SHARED.SPtr1PPtr2
|
jsr SHARED.PullP2P1
|
||||||
|
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
.1 jsr SHARED.GetCharPtr1
|
.1 jsr SHARED.GetCP1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 ldy #0
|
.2 ldy #0
|
||||||
|
@ -185,8 +185,8 @@ K.StrLwr ldx #2
|
||||||
* `int strcmp(const char *s1, const char *s2);`
|
* `int strcmp(const char *s1, const char *s2);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHWI s1`
|
||||||
* `>PUSHWI s2`
|
* `>PUSHWI s2`
|
||||||
* `>LDYAI s1`
|
|
||||||
* `>SYSCALL strcmp`
|
* `>SYSCALL strcmp`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC : match
|
* CC : match
|
||||||
|
@ -203,8 +203,8 @@ K.StrCmp sec
|
||||||
* `int strcasecmp(const char *s1, const char *s2);`
|
* `int strcasecmp(const char *s1, const char *s2);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* **In:**
|
* **In:**
|
||||||
|
* `>PUSHWI s1`
|
||||||
* `>PUSHWI s2`
|
* `>PUSHWI s2`
|
||||||
* `>LDYAI s1`
|
|
||||||
* `>SYSCALL strcasecmp`
|
* `>SYSCALL strcasecmp`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC : match
|
* CC : match
|
||||||
|
@ -213,19 +213,19 @@ K.StrCmp sec
|
||||||
* CS, Y,A > 0 or < 0
|
* CS, Y,A > 0 or < 0
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrCaseCmp clc
|
K.StrCaseCmp clc
|
||||||
jsr SHARED.SPtr1PPtr2
|
jsr SHARED.PullP2P1
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y
|
.1 lda (ZPPtr1),y
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
jsr K.StrCaseCmp.toUpper
|
jsr .80
|
||||||
sta .2+1
|
sta .2+1
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
jsr K.StrCaseCmp.toUpper
|
jsr .80
|
||||||
|
|
||||||
.2 eor #$ff SELF MODIFIED
|
.2 eor #$ff SELF MODIFIED
|
||||||
bne .9
|
bne .9
|
||||||
|
@ -252,22 +252,19 @@ K.StrCaseCmp clc
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.StrCaseCmp.toUpper
|
.80 bcs .99
|
||||||
bcs .9
|
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcc .9
|
bcc .99
|
||||||
|
|
||||||
cmp #'z'+1
|
cmp #'z'+1
|
||||||
bcs .1
|
bcs .81
|
||||||
|
|
||||||
eor #$20
|
eor #$20
|
||||||
|
|
||||||
.1 clc
|
.81 clc
|
||||||
|
|
||||||
.9 rts
|
.99 rts
|
||||||
*--------------------------------------
|
|
||||||
SHARED.SPtr1PPtr2
|
|
||||||
>STYA ZPPtr1
|
|
||||||
>PULLW ZPPtr2
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.string
|
SAVE usr/src/sys/kernel.s.string
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
STRVX.StrVFree jsr K.FreeMem
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
STRVX.StrVNew jsr K.GetMem
|
STRVX.StrVNew jsr K.GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -21,7 +26,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
jsr SHARED.FORPNT.GetY
|
jsr SHARED.FORPNTgY
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
tya
|
tya
|
||||||
|
@ -44,7 +49,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
||||||
.2 ldy #$ff
|
.2 ldy #$ff
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
jsr SHARED.FORPNT.GetY
|
jsr SHARED.FORPNTgY
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
|
@ -74,14 +79,14 @@ STRVX.StrVSet jsr STRVX.GetID
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
jsr SHARED.AddYp1ToPtr1
|
jsr SHARED.AddYp12P1
|
||||||
jsr SHARED.AddYp1ToPtr2
|
jsr SHARED.AddYp12P2
|
||||||
bra .40
|
bra .40
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.7 ldy #$ff
|
.7 ldy #$ff
|
||||||
|
|
||||||
.8 iny
|
.8 iny
|
||||||
jsr SHARED.FORPNT.GetY
|
jsr SHARED.FORPNTgY
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
tya
|
tya
|
||||||
|
@ -109,7 +114,7 @@ STRVX.StrVSet jsr STRVX.GetID
|
||||||
.10 ldy #$ff
|
.10 ldy #$ff
|
||||||
|
|
||||||
.11 iny
|
.11 iny
|
||||||
jsr SHARED.FORPNT.GetY
|
jsr SHARED.FORPNTgY
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
bne .11
|
bne .11
|
||||||
|
|
||||||
|
@ -138,7 +143,7 @@ STRVX.StrVGet jsr STRVX.GetID
|
||||||
|
|
||||||
.5 iny
|
.5 iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
>LDYA FORPNT
|
>LDYA FORPNT
|
||||||
|
@ -149,11 +154,6 @@ STRVX.StrVGet jsr STRVX.GetID
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STRVX.StrVFree jsr K.FreeMem
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
STRVX.GetID jsr K.GetMemPtr
|
STRVX.GetID jsr K.GetMemPtr
|
||||||
>STYA ZPPtr1 strV
|
>STYA ZPPtr1 strV
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ DRV.TERM cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
|
TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
|
||||||
|
|
||||||
ldy #S.IOCTL.STATCODE
|
ldy #S.IOCTL.S
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
tay
|
tay
|
||||||
bra TERM.TOAUX
|
bra TERM.TOAUX
|
||||||
|
|
|
@ -41,7 +41,7 @@ TERMX .DA TERMX.STATUS
|
||||||
TERMX.STATUS tya
|
TERMX.STATUS tya
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
cmp #S.IOCTL.STATCODE.GETDIB
|
cmp #S.IOCTL.S.GETDIB
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #S.DIB-1
|
ldy #S.DIB-1
|
||||||
|
@ -55,13 +55,13 @@ TERMX.STATUS tya
|
||||||
dey
|
dey
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy #S.DCB.TTY.STATUS
|
ldy #S.DCB.TTY.S
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
sta (ZPBufPtr)
|
sta (ZPBufPtr)
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
.3 cmp #S.IOCTL.S.EOF
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
jsr TERMX.ISOPENED
|
jsr TERMX.ISOPENED
|
||||||
|
@ -120,7 +120,7 @@ TERMX.OPEN jsr TERMX.ISOPENED
|
||||||
|
|
||||||
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
|
|
||||||
ldy #S.DCB.TTY.STATUS
|
ldy #S.DCB.TTY.S
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
ora #S.DIB.S.OPENED
|
ora #S.DIB.S.OPENED
|
||||||
ora TERMX.DIB+S.DIB.S
|
ora TERMX.DIB+S.DIB.S
|
||||||
|
@ -171,7 +171,7 @@ TERMX.CLOSE jsr TERMX.ISOPENED
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.ISOPENED ldy #S.DCB.TTY.STATUS
|
TERMX.ISOPENED ldy #S.DCB.TTY.S
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bit #S.DIB.S.OPENED
|
bit #S.DIB.S.OPENED
|
||||||
rts
|
rts
|
||||||
|
@ -279,7 +279,7 @@ TERMX.WRITE jsr TERMX.CUROFF
|
||||||
inc ZPCnt+1
|
inc ZPCnt+1
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.2 ldy #S.DCB.TTY.MODE
|
.2 ldy #S.DCB.TTY.M
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
tax
|
tax
|
||||||
jsr .3
|
jsr .3
|
||||||
|
@ -306,7 +306,7 @@ TERMX.OUT jsr TERM.GetBufByte
|
||||||
cmp #IAC
|
cmp #IAC
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #S.DCB.TTY.MODE.IAC
|
lda #S.DCB.TTY.M.IAC
|
||||||
jmp TERMX.SETM
|
jmp TERMX.SETM
|
||||||
|
|
||||||
.1 cmp #C.DEL
|
.1 cmp #C.DEL
|
||||||
|
@ -421,10 +421,10 @@ TERMX.OUT.SI clc
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.OUT.ESC lda #S.DCB.TTY.MODE.ESC
|
TERMX.OUT.ESC lda #S.DCB.TTY.M.ESC
|
||||||
bra TERMX.SETM
|
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
|
ldx #EscCodes.Cnt-1
|
||||||
.2 cmp EscCodes,x
|
.2 cmp EscCodes,x
|
||||||
|
@ -450,19 +450,18 @@ TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE
|
||||||
.DA Scroll.Dn M
|
.DA Scroll.Dn M
|
||||||
.DA Scroll.Up D
|
.DA Scroll.Up D
|
||||||
.DA RESET c
|
.DA RESET c
|
||||||
.DA TERMX.SETM.RTS [
|
.DA TERMX.RTS [
|
||||||
.DA TERMX.SETM.RTS (
|
.DA TERMX.RTS (
|
||||||
.DA TERMX.SETM.RTS )
|
.DA TERMX.RTS )
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.SETM0 lda #0
|
TERMX.SETM0 lda #0
|
||||||
TERMX.SETM ldy #S.DCB.TTY.MODE
|
TERMX.SETM ldy #S.DCB.TTY.M
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
ldy #S.DCB.TTY.INBUF
|
ldy #S.DCB.TTY.INBUF
|
||||||
lda #S.DCB.TTY.INBUF
|
lda #S.DCB.TTY.INBUF
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
clc
|
clc
|
||||||
|
rts
|
||||||
TERMX.SETM.RTS rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CSI ldy #S.DCB.TTY.INBUF
|
TERMX.CSI ldy #S.DCB.TTY.INBUF
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
|
@ -501,12 +500,12 @@ TERMX.CSI.Exec stz CsiH
|
||||||
|
|
||||||
sta CsiH
|
sta CsiH
|
||||||
|
|
||||||
.1 jsr SHARED.NextCharPtr2
|
.1 jsr SHARED.NextCP2
|
||||||
|
|
||||||
.2 jsr MATH.Dec2ACC32
|
.2 jsr MATH.Dec2ACC32
|
||||||
bcs .5
|
bcs .5
|
||||||
|
|
||||||
jsr SHARED.AddYToPtr2
|
jsr SHARED.AddY2P2
|
||||||
lda #255
|
lda #255
|
||||||
ldx ACC32+1
|
ldx ACC32+1
|
||||||
bne .3
|
bne .3
|
||||||
|
@ -921,12 +920,12 @@ COUT.IAC.DONT
|
||||||
COUT.IAC.EXIT
|
COUT.IAC.EXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESET.MODE lda #0
|
RESET.MODE lda #0
|
||||||
ldy #S.DCB.TTY.MODE
|
ldy #S.DCB.TTY.M
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESET ldy #S.DCB.TTY.MODE
|
RESET ldy #S.DCB.TTY.M
|
||||||
.1 lda RESET.VALUES-S.DCB.TTY.MODE,y
|
.1 lda RESET.VALUES-S.DCB.TTY.M,y
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
iny
|
iny
|
||||||
cpy #S.DCB.TTY.INBUF+1
|
cpy #S.DCB.TTY.INBUF+1
|
||||||
|
@ -1076,16 +1075,16 @@ TERMX.CBLNK bit bActive
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
TERMX.CUROFF bit bActive
|
TERMX.CUROFF bit bActive
|
||||||
bpl TERMX.CBLNK.RTS
|
bpl TERMX.RTS
|
||||||
ldy #S.DCB.TTY.bCURON
|
ldy #S.DCB.TTY.bCURON
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
beq TERMX.CBLNK.RTS
|
beq TERMX.RTS
|
||||||
|
|
||||||
TERMX.CBLNK.1 lda (ZPDCBPtr),y
|
TERMX.CBLNK.1 lda (ZPDCBPtr),y
|
||||||
bne TERMX.CBLNK.OFF
|
bne TERMX.CBLNK.OFF
|
||||||
|
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
bcs TERMX.CBLNK.RTS Out of screen
|
bcs TERMX.RTS Out of screen
|
||||||
|
|
||||||
and #$80
|
and #$80
|
||||||
eor #" "
|
eor #" "
|
||||||
|
@ -1101,14 +1100,14 @@ TERMX.CBLNK.SET
|
||||||
TERMX.CBLNK.OFF
|
TERMX.CBLNK.OFF
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
bcc TERMX.CBLNK.SET if not Out of screen
|
bcc TERMX.CBLNK.SET if not Out of screen
|
||||||
TERMX.CBLNK.RTS
|
|
||||||
rts
|
TERMX.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DecOut jsr MATH.A2STR10NP
|
DecOut jsr MATH.A2STR10NP
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
.1 lda A2osX.NumStrBuf,x
|
.1 lda FOUTBuf,x
|
||||||
beq TERMX.CBLNK.RTS
|
beq TERMX.RTS
|
||||||
inx
|
inx
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
bra .1
|
bra .1
|
||||||
|
@ -1225,7 +1224,7 @@ TERMX.CLRSCR.2 sty .1+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bmi TERMX.Title.RTS
|
bmi TERMX.RTS2
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
@ -1240,7 +1239,7 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 jsr SHARED.TXTPTR.GetNext
|
.1 jsr SHARED.TXTPTRgn
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
cmp #$40
|
cmp #$40
|
||||||
|
@ -1264,11 +1263,12 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
cpy #80
|
cpy #80
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
TERMX.Title.RTS rts
|
TERMX.RTS2 rts
|
||||||
|
|
||||||
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bpl TERMX.Title.RTS
|
bpl TERMX.RTS2
|
||||||
|
|
||||||
lda #$0
|
lda #$0
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -1455,7 +1455,7 @@ CtrlChars.Cnt .EQ *-CtrlChars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EscCodes .AZ "78MDc[()"
|
EscCodes .AZ "78MDc[()"
|
||||||
EscCodes.Cnt .EQ *-EscCodes
|
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 .AS "hlmnrABCDJKH"
|
||||||
CsiCodes.Cnt .EQ *-CsiCodes
|
CsiCodes.Cnt .EQ *-CsiCodes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -13,17 +13,17 @@ DAY0 .EQ 4 day 0 was a thursday
|
||||||
* TXTPTR format
|
* TXTPTR format
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEX.StrFTime
|
TIMEX.StrFTime
|
||||||
.1 jsr SHARED.TXTPTR.GetNext
|
.1 jsr SHARED.TXTPTRgn
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #'%'
|
cmp #'%'
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.2 ldx #K.StrFTime.Cnt-1
|
.2 ldx #K.StrFTime.Cnt-1
|
||||||
jsr SHARED.TXTPTR.GetNext
|
jsr SHARED.TXTPTRgn
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
.3 cmp K.StrFTime.Tbl,x
|
.3 cmp K.StrFTime.Tbl,x
|
||||||
|
@ -47,7 +47,7 @@ TIMEX.StrFTime
|
||||||
.7 jmp (K.StrFTime.JMP,x)
|
.7 jmp (K.StrFTime.JMP,x)
|
||||||
|
|
||||||
.8 lda #0 Terminate C string
|
.8 lda #0 Terminate C string
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -83,7 +83,7 @@ K.StrFTime.STR sta ZPPtr4
|
||||||
bcc .10
|
bcc .10
|
||||||
ldx #3
|
ldx #3
|
||||||
|
|
||||||
.10 jsr SHARED.ZPPtr3.GetY get required S.Time field value
|
.10 jsr SHARED.P3gY get required S.Time field value
|
||||||
|
|
||||||
tay
|
tay
|
||||||
beq .2 Illegal value, print ???
|
beq .2 Illegal value, print ???
|
||||||
|
@ -100,7 +100,7 @@ K.StrFTime.STR sta ZPPtr4
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
lda (ZPPtr4),y
|
lda (ZPPtr4),y
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
tya
|
tya
|
||||||
cmp (ZPPtr4)
|
cmp (ZPPtr4)
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -110,22 +110,22 @@ K.StrFTime.STR sta ZPPtr4
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.StrFTime.II ldy #S.Time.HOUR
|
K.StrFTime.II ldy #S.Time.HOUR
|
||||||
jsr SHARED.ZPPtr3.GetY
|
jsr SHARED.P3gY
|
||||||
cmp #12
|
cmp #12
|
||||||
bcc K.StrFTime.addDecA
|
bcc K.StrFTime.addDecA
|
||||||
sbc #12
|
sbc #12
|
||||||
bra K.StrFTime.addDecA
|
bra K.StrFTime.addDecA
|
||||||
|
|
||||||
K.StrFTime.P ldy #S.Time.HOUR
|
K.StrFTime.P ldy #S.Time.HOUR
|
||||||
jsr SHARED.ZPPtr3.GetY
|
jsr SHARED.P3gY
|
||||||
cmp #12
|
cmp #12
|
||||||
bcc .1
|
bcc .1
|
||||||
lda #'p'
|
lda #'p'
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
.1 lda #'a'
|
.1 lda #'a'
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
lda #'m'
|
lda #'m'
|
||||||
jmp SHARED.FORPNT.PutNext
|
jmp SHARED.FORPNTpn
|
||||||
t
|
t
|
||||||
K.StrFTime.YY ldy #S.Time.CENTURY
|
K.StrFTime.YY ldy #S.Time.CENTURY
|
||||||
jsr K.StrFTime.addDecPtr3Y
|
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.AtX ldy K.StrFTime.OfsX-7,x
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.StrFTime.addDecPtr3Y
|
K.StrFTime.addDecPtr3Y
|
||||||
jsr SHARED.ZPPtr3.GetY
|
jsr SHARED.P3gY
|
||||||
K.StrFTime.addDecA
|
K.StrFTime.addDecA
|
||||||
ldx #2
|
ldx #2
|
||||||
ldy #'0'
|
ldy #'0'
|
||||||
clc
|
clc
|
||||||
jsr MATH.A2STR10
|
jsr MATH.A2STR10
|
||||||
lda A2osX.NumStrBuf
|
lda FOUTBuf
|
||||||
jsr SHARED.FORPNT.PutNext
|
jsr SHARED.FORPNTpn
|
||||||
lda A2osX.NumStrBuf+1
|
lda FOUTBuf+1
|
||||||
jmp SHARED.FORPNT.PutNext
|
jmp SHARED.FORPNTpn
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEX.DAY >PSTR "???"
|
TIMEX.DAY >PSTR "???"
|
||||||
>PSTR "Monday"
|
>PSTR "Monday"
|
||||||
|
@ -173,25 +173,25 @@ TIMEX.PTime2Time.BAD
|
||||||
rts
|
rts
|
||||||
TIMEX.PTime2Time
|
TIMEX.PTime2Time
|
||||||
ldy #3
|
ldy #3
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
and #%11100000
|
and #%11100000
|
||||||
bne TIMEX.PTime2Time.BAD
|
bne TIMEX.PTime2Time.BAD
|
||||||
|
|
||||||
dey
|
dey
|
||||||
jsr SHARED.TXTPTR.GetY
|
jsr SHARED.TXTPTRgY
|
||||||
and #%11000000
|
and #%11000000
|
||||||
bne TIMEX.PTime2Time.BAD
|
bne TIMEX.PTime2Time.BAD
|
||||||
|
|
||||||
dey ldy #1
|
dey ldy #1
|
||||||
|
|
||||||
jsr SHARED.TXTPTR.GetY Get Year
|
jsr SHARED.TXTPTRgY Get Year
|
||||||
lsr C is high bit of month
|
lsr C is high bit of month
|
||||||
ldy #S.Time.YEAR
|
ldy #S.Time.YEAR
|
||||||
jsr SHARED.FORPNT.PutY set year
|
jsr SHARED.FORPNTpY set year
|
||||||
sta ARG32+3 for computing Century/WDAY later
|
sta ARG32+3 for computing Century/WDAY later
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr SHARED.TXTPTR.GetY Get Month/day
|
jsr SHARED.TXTPTRgY Get Month/day
|
||||||
|
|
||||||
tax save Day
|
tax save Day
|
||||||
ror C is high bit of month
|
ror C is high bit of month
|
||||||
|
@ -205,7 +205,7 @@ TIMEX.PTime2Time
|
||||||
bcs TIMEX.PTime2Time.BAD
|
bcs TIMEX.PTime2Time.BAD
|
||||||
|
|
||||||
ldy #S.Time.MONTH
|
ldy #S.Time.MONTH
|
||||||
jsr SHARED.FORPNT.PutY set month
|
jsr SHARED.FORPNTpY set month
|
||||||
sta K.ComputeWDAY.1+1
|
sta K.ComputeWDAY.1+1
|
||||||
|
|
||||||
txa get back day
|
txa get back day
|
||||||
|
@ -216,7 +216,7 @@ TIMEX.PTime2Time
|
||||||
bcs TIMEX.PTime2Time.BAD
|
bcs TIMEX.PTime2Time.BAD
|
||||||
|
|
||||||
iny
|
iny
|
||||||
jsr SHARED.FORPNT.PutY set day
|
jsr SHARED.FORPNTpY set day
|
||||||
|
|
||||||
dec adjust range 0.30 for MOD 7
|
dec adjust range 0.30 for MOD 7
|
||||||
sta ARG32.Sign For later...
|
sta ARG32.Sign For later...
|
||||||
|
@ -231,22 +231,22 @@ TIMEX.PTime2Time
|
||||||
eor #1 toggle C
|
eor #1 toggle C
|
||||||
adc #19 set date before 1970 -> 20xx
|
adc #19 set date before 1970 -> 20xx
|
||||||
ldy #0
|
ldy #0
|
||||||
jsr SHARED.FORPNT.PutY set Century
|
jsr SHARED.FORPNTpY set Century
|
||||||
sta ARG32+2 for computing WDAY later
|
sta ARG32+2 for computing WDAY later
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
jsr SHARED.TXTPTR.GetY Get Min
|
jsr SHARED.TXTPTRgY Get Min
|
||||||
tax
|
tax
|
||||||
iny
|
iny
|
||||||
jsr SHARED.TXTPTR.GetY Get Hour
|
jsr SHARED.TXTPTRgY Get Hour
|
||||||
ldy #S.Time.HOUR
|
ldy #S.Time.HOUR
|
||||||
jsr SHARED.FORPNT.PutY set hour
|
jsr SHARED.FORPNTpY set hour
|
||||||
iny
|
iny
|
||||||
txa
|
txa
|
||||||
jsr SHARED.FORPNT.PutY set min
|
jsr SHARED.FORPNTpY set min
|
||||||
iny
|
iny
|
||||||
lda #0
|
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
|
* 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
|
ldy #S.Time.WDAY
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
jmp SHARED.FORPNT.PutY
|
jmp SHARED.FORPNTpY
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* TXTPTR ctime
|
* TXTPTR ctime
|
||||||
* FORPNT S.TIME
|
* FORPNT S.TIME
|
||||||
|
@ -332,7 +332,7 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month
|
||||||
TIMEX.CTime2Time
|
TIMEX.CTime2Time
|
||||||
ldy #3
|
ldy #3
|
||||||
|
|
||||||
.1 jsr SHARED.TXTPTR.GetY
|
.1 jsr SHARED.TXTPTRgY
|
||||||
sta ARG32,y ARG = ctime
|
sta ARG32,y ARG = ctime
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -366,7 +366,7 @@ TIMEX.CTime2Time
|
||||||
|
|
||||||
tya
|
tya
|
||||||
ldy #S.Time.WDAY
|
ldy #S.Time.WDAY
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
|
|
||||||
ldy #CENT0
|
ldy #CENT0
|
||||||
sty ZPPtr3
|
sty ZPPtr3
|
||||||
|
@ -402,11 +402,11 @@ K.CTime2Time.Y
|
||||||
|
|
||||||
lda ZPPtr3
|
lda ZPPtr3
|
||||||
ldy #S.Time.CENTURY
|
ldy #S.Time.CENTURY
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
|
|
||||||
ldy #S.Time.YEAR
|
ldy #S.Time.YEAR
|
||||||
lda ZPPtr3+1
|
lda ZPPtr3+1
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
K.CTime2Time.MD
|
K.CTime2Time.MD
|
||||||
ldx #1 X = January
|
ldx #1 X = January
|
||||||
|
|
||||||
|
@ -442,13 +442,13 @@ K.CTime2Time.MD
|
||||||
.4 pla
|
.4 pla
|
||||||
ldy #S.TIME.MONTH
|
ldy #S.TIME.MONTH
|
||||||
txa
|
txa
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
|
|
||||||
iny S.TIME.DAY
|
iny S.TIME.DAY
|
||||||
|
|
||||||
lda ARG32
|
lda ARG32
|
||||||
inc
|
inc
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
|
|
||||||
K.CTime2Time.HMS
|
K.CTime2Time.HMS
|
||||||
ldx #3
|
ldx #3
|
||||||
|
@ -467,7 +467,7 @@ K.CTime2Time.HMS
|
||||||
|
|
||||||
dey #S.TIME.HOUR
|
dey #S.TIME.HOUR
|
||||||
lda ARG32
|
lda ARG32
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -479,7 +479,7 @@ K.CTime2Time.HMS
|
||||||
jsr M32.DIVMOD
|
jsr M32.DIVMOD
|
||||||
ply
|
ply
|
||||||
lda TMP32
|
lda TMP32
|
||||||
jsr SHARED.FORPNT.PutY
|
jsr SHARED.FORPNTpY
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* In :
|
* In :
|
||||||
|
|
|
@ -21,12 +21,12 @@ K.Open jsr PFT.YAToMLIPATH
|
||||||
stz IO.Open.AUXTYPE
|
stz IO.Open.AUXTYPE
|
||||||
stz IO.Open.AUXTYPE+1
|
stz IO.Open.AUXTYPE+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
UNISTD.Open ldx #5 /dev/
|
IO.Open ldx #5 /dev/
|
||||||
cpx K.MLI.PATH
|
cpx K.MLI.PATH
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
.1 lda K.MLI.PATH,x
|
.1 lda K.MLI.PATH,x
|
||||||
cmp UNISTD.DEV-1,x
|
cmp IO.DEV-1,x
|
||||||
bne .8
|
bne .8
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -47,11 +47,11 @@ UNISTD.Open ldx #5 /dev/
|
||||||
.2
|
.2
|
||||||
* .DA STDIO.IOERR REG
|
* .DA STDIO.IOERR REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA IO.OPEN.CDEV
|
.DA IO.OPEN.DEV
|
||||||
.DA IO.OPEN.BDEV
|
.DA IO.OPEN.DEV
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA IO.OPEN.DSOCK
|
.DA IO.OPEN.SOCK
|
||||||
.DA IO.OPEN.SSOCK
|
.DA IO.OPEN.SOCK
|
||||||
.DA IO.OPEN.PIPE
|
.DA IO.OPEN.PIPE
|
||||||
|
|
||||||
.8 jmp FS.OPEN.REG
|
.8 jmp FS.OPEN.REG
|
||||||
|
@ -68,16 +68,16 @@ UNISTD.Open ldx #5 /dev/
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Close jsr DEV.GetPFD
|
K.Close jsr DEV.GetPFD
|
||||||
|
|
||||||
UNISTD.Close lda (pFD) #S.FD.T
|
IO.Close lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.CLOSE.REG
|
.1 .DA FS.CLOSE.REG
|
||||||
.DA FS.CLOSE.DIR
|
.DA FS.CLOSE.DIR
|
||||||
.DA IO.CLOSE.CDEV
|
.DA IO.CLOSE.DEV
|
||||||
.DA IO.CLOSE.BDEV
|
.DA IO.CLOSE.DEV
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA IO.CLOSE.DSOCK
|
.DA IO.CLOSE.SOCK
|
||||||
.DA IO.CLOSE.SSOCK
|
.DA IO.CLOSE.SOCK
|
||||||
.DA IO.CLOSE.PIPE
|
.DA IO.CLOSE.PIPE
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # read
|
* # read
|
||||||
|
@ -95,7 +95,7 @@ UNISTD.Close lda (pFD) #S.FD.T
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Read jsr DEV.GetPFD
|
K.Read jsr DEV.GetPFD
|
||||||
|
|
||||||
UNISTD.Read lda (pFD) #S.FD.T
|
IO.Read lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.READ.REG
|
.1 .DA FS.READ.REG
|
||||||
|
@ -122,7 +122,7 @@ UNISTD.Read lda (pFD) #S.FD.T
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Write jsr DEV.GetPFD
|
K.Write jsr DEV.GetPFD
|
||||||
|
|
||||||
UNISTD.Write lda (pFD) #S.FD.T
|
IO.Write lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.WRITE.REG
|
.1 .DA FS.WRITE.REG
|
||||||
|
@ -134,19 +134,16 @@ UNISTD.Write lda (pFD) #S.FD.T
|
||||||
.DA IO.WRITE.SSOCK
|
.DA IO.WRITE.SSOCK
|
||||||
.DA IO.WRITE.PIPE
|
.DA IO.WRITE.PIPE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.OPEN.CDEV
|
IO.OPEN.DEV ldx #IOCTL.OPEN
|
||||||
IO.OPEN.BDEV ldx #IOCTL.OPEN
|
|
||||||
lda IO.hDevNod
|
lda IO.hDevNod
|
||||||
jsr DEV.pDrvJmp
|
jsr DEV.pDrvJmp
|
||||||
bcs IO.WRITE.CDEV.RTS
|
bcs IO.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.OPEN.DSOCK
|
IO.OPEN.SOCK lda IO.hDevNod
|
||||||
IO.OPEN.SSOCK lda IO.hDevNod
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.CLOSE.CDEV
|
IO.CLOSE.DEV ldx #IOCTL.CLOSE
|
||||||
IO.CLOSE.BDEV ldx #IOCTL.CLOSE
|
|
||||||
lda IO.hDevNod
|
lda IO.hDevNod
|
||||||
jmp DEV.pDrvJmp
|
jmp DEV.pDrvJmp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -160,17 +157,13 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
|
||||||
|
|
||||||
>LDYAI K.S.IOCTL
|
>LDYAI K.S.IOCTL
|
||||||
jsr DEV.pDrvJmp
|
jsr DEV.pDrvJmp
|
||||||
bcs .9
|
bcs IO.RTS
|
||||||
|
|
||||||
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
||||||
|
|
||||||
.9
|
IO.RTS rts
|
||||||
IO.WRITE.CDEV.RTS
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.CLOSE.DSOCK
|
IO.CLOSE.SOCK ldy #S.FD.SSOCK.CLOSE
|
||||||
IO.CLOSE.SSOCK
|
|
||||||
ldy #S.FD.SSOCK.CLOSE
|
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
||||||
|
@ -184,14 +177,14 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
tax Function Offset in LIB
|
tax Function Offset in LIB
|
||||||
|
|
||||||
ldy #S.FD.SSOCK.IOHANDLER
|
ldy #S.FD.SSOCK.IOH
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA .1+1
|
>STYA .1+1
|
||||||
lda IO.hFD
|
lda IO.hFD
|
||||||
.1 jmp $FFFF SELF MODIFIED
|
.1 jmp $FFFF SELF MODIFIED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
|
IO.EOF.CDEV lda #S.IOCTL.S.EOF
|
||||||
jmp DEV.GetDevStatus
|
jmp DEV.GetDevStatus
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ChOwn
|
* # ChOwn
|
||||||
|
@ -206,12 +199,12 @@ IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ChOwn jsr PFT.CheckPath2
|
K.ChOwn jsr PFT.CheckPath2
|
||||||
bcs K.ChOwn.RET4
|
bcs .9
|
||||||
|
|
||||||
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
stz K.MLI.PARAMS+3+S.FIEX.ACL read mode
|
||||||
|
|
||||||
>MLICALL MLIACL
|
>MLICALL MLIACL
|
||||||
bcs K.ChOwn.RET4
|
bcs .9
|
||||||
|
|
||||||
lda (pStack)
|
lda (pStack)
|
||||||
bmi .1
|
bmi .1
|
||||||
|
@ -229,9 +222,9 @@ K.ChOwn jsr PFT.CheckPath2
|
||||||
|
|
||||||
>MLICALL MLIACL
|
>MLICALL MLIACL
|
||||||
|
|
||||||
K.ChOwn.RET4 >RET 4
|
.9 >RET 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
UNISTD.DEV .AS "/dev/"
|
IO.DEV .AS "/dev/"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.unistd
|
SAVE usr/src/sys/kernel.s.unistd
|
||||||
|
|
|
@ -23,31 +23,32 @@ NEW
|
||||||
A2osX.Unpak >STYA ZPOutBufPtr
|
A2osX.Unpak >STYA ZPOutBufPtr
|
||||||
.INB usr/src/shared/x.unpak.s
|
.INB usr/src/shared/x.unpak.s
|
||||||
|
|
||||||
PAKME.MAIN .DA A2osX.MAIN
|
PAKME.MAIN .DA MAIN
|
||||||
PAKME.AUX .DA A2osX.AUX
|
PAKME.AUX .DA AUX
|
||||||
PAKME.GP .DA A2osX.GP
|
PAKME.GP .DA GP
|
||||||
PAKME.D1 .DA A2osX.D1
|
PAKME.D1 .DA D1
|
||||||
PAKME.D2 .DA A2osX.D2
|
PAKME.D2 .DA D2
|
||||||
PAKME.E0 .DA A2osX.E0
|
PAKME.E0 .DA E0
|
||||||
|
|
||||||
A2osX.MAIN .DA #0
|
MAIN .DA #0
|
||||||
.DA A2osX.MAIN.S
|
.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.core
|
||||||
.INB usr/src/sys/kernel.s.drv
|
.INB usr/src/sys/kernel.s.drv
|
||||||
.INB usr/src/sys/kernel.s.pft
|
.INB usr/src/sys/kernel.s.pft
|
||||||
.INB usr/src/sys/kernel.s.fs
|
.INB usr/src/sys/kernel.s.fs
|
||||||
|
.INB usr/src/sys/kernel.s.mathf
|
||||||
Mem.MLoMem .EQ *
|
Mem.MLoMem .EQ *
|
||||||
.EP
|
.EP
|
||||||
A2osX.MAIN.S .EQ *-A2osX.MAIN.B
|
MAIN.S .EQ *-MAIN.B
|
||||||
|
|
||||||
A2osX.AUX .DA #0
|
AUX .DA #0
|
||||||
.DA A2osX.AUX.S
|
.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.jmpx
|
||||||
.INB usr/src/sys/kernel.s.termx
|
.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.md5x
|
||||||
.INB usr/src/sys/kernel.s.pwdx
|
.INB usr/src/sys/kernel.s.pwdx
|
||||||
.INB usr/src/sys/kernel.s.slistx
|
.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
|
.INB usr/src/sys/kernel.s.errorx
|
||||||
.EP
|
.EP
|
||||||
A2osX.AUX.S .EQ *-A2osX.AUX.B
|
AUX.S .EQ *-AUX.B
|
||||||
|
|
||||||
A2osX.GP .DA #0
|
GP .DA #0
|
||||||
.DA A2osX.GP.S
|
.DA GP.S
|
||||||
|
|
||||||
A2osX.GP.B .PH A2osX.SYSCALL
|
GP.B .PH A2osX.SYSCALL
|
||||||
.INB usr/src/sys/kernel.s.gp
|
.INB usr/src/sys/kernel.s.gp
|
||||||
A2osX.GP.SC .EQ GP.CodeEnd-GP.CodeStart
|
|
||||||
.EP
|
.EP
|
||||||
A2osX.GP.S .EQ *-A2osX.GP.B
|
GP.S .EQ *-GP.B
|
||||||
|
|
||||||
A2osX.D1 .DA #0
|
D1 .DA #0
|
||||||
.DA A2osX.D1.S
|
.DA D1.S
|
||||||
|
|
||||||
A2osX.D1.B .PH $D000
|
D1.B .PH $D000
|
||||||
.DA #RRAMWRAMBNK1
|
.DA #RRAMWRAMBNK1
|
||||||
.INB usr/src/sys/kernel.s.stat
|
.INB usr/src/sys/kernel.s.stat
|
||||||
.INB usr/src/sys/kernel.s.dirent
|
.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.dev
|
||||||
.INB usr/src/sys/kernel.s.pipe
|
.INB usr/src/sys/kernel.s.pipe
|
||||||
.EP
|
.EP
|
||||||
A2osX.D1.S .EQ *-A2osX.D1.B
|
D1.S .EQ *-D1.B
|
||||||
|
|
||||||
A2osX.D2 .DA #0
|
D2 .DA #0
|
||||||
.DA A2osX.D2.S
|
.DA D2.S
|
||||||
|
|
||||||
A2osX.D2.B .PH $D000
|
D2.B .PH $D000
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #RRAMWRAMBNK2
|
||||||
.INB usr/src/sys/kernel.s.mount
|
.INB usr/src/sys/kernel.s.mount
|
||||||
.INB usr/src/sys/kernel.s.arg
|
.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.bin
|
||||||
.INB usr/src/sys/kernel.s.ps
|
.INB usr/src/sys/kernel.s.ps
|
||||||
.EP
|
.EP
|
||||||
A2osX.D2.S .EQ *-A2osX.D2.B
|
D2.S .EQ *-D2.B
|
||||||
|
|
||||||
A2osX.E0 .DA #0
|
E0 .DA #0
|
||||||
.DA A2osX.E0.S
|
.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.jmp
|
||||||
.INB usr/src/sys/kernel.s.irq
|
.INB usr/src/sys/kernel.s.irq
|
||||||
.INB usr/src/sys/kernel.s.shared
|
.INB usr/src/sys/kernel.s.shared
|
||||||
|
@ -127,7 +127,8 @@ DevMgr.Free .DA DevMgr.FreeMem
|
||||||
.DA DevMgr.HiMem
|
.DA DevMgr.HiMem
|
||||||
DevMgr.FreeMem .EQ *
|
DevMgr.FreeMem .EQ *
|
||||||
.EP
|
.EP
|
||||||
A2osX.E0.S .EQ *-A2osX.E0.B
|
|
||||||
|
E0.S .EQ *-E0.B
|
||||||
|
|
||||||
.AS "PAKME" TAG
|
.AS "PAKME" TAG
|
||||||
.DA $2000 BIN ORG
|
.DA $2000 BIN ORG
|
||||||
|
|
Loading…
Reference in New Issue