mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-28 03:55:01 +00:00
Kernel 0.93
This commit is contained in:
parent
facad7dd06
commit
5c330415ca
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
hFileBuf .BS 1
|
||||
|
@ -1,15 +1,15 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CSH.E.SYNTAX .EQ $7F
|
||||
CSH.E.SOVERFLW .EQ $7E
|
||||
CSH.E.NOVERFLW .EQ $7D
|
||||
CSH.E.OOM .EQ $7C
|
||||
CSH.E.DUP .EQ $7B
|
||||
CSH.E.UNDEF .EQ $7A
|
||||
CSH.E.TMISMATCH .EQ $79
|
||||
CSH.E.SYNTAX .EQ $C0
|
||||
CSH.E.SOVERFLW .EQ $C3
|
||||
CSH.E.UNDEF .EQ $C9
|
||||
*
|
||||
CSH.E.NOVERFLW .EQ $D0
|
||||
CSH.E.TMISMATCH .EQ $D1
|
||||
CSH.E.OOM .EQ $D2
|
||||
CSH.E.DUP .EQ $D3
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/CSH.E
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CSH.OPChars .AS "!~+-*/%=&|^&<>"
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
L.CSH.BOPS .DA CSH.BOPS
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CSH.Q.CONST .EQ %10000000
|
||||
|
@ -1,6 +1,5 @@
|
||||
NEW
|
||||
PREFIX
|
||||
AUTO 4,1 Enable MASM3 auto line num
|
||||
AUTO 3,1 Enable MASM3 auto line num
|
||||
.LIST OFF
|
||||
.OP 65C02 Target CPU, must match CPU level in header
|
||||
.OR $2000 usualy $2000, but any value > $100 allowed
|
||||
|
@ -39,7 +39,7 @@ DRV.BLK.BlkNum .EQ $47
|
||||
*--------------------------------------
|
||||
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
|
||||
*--------------------------------------
|
||||
INDEX .EQ $5E ->$5F
|
||||
*INDEX .EQ $5E ->$5F LOAD.FAC.FROM.YA
|
||||
RESULT .EQ $62 ->$66 used in FMULT FDIV
|
||||
*--------------------------------------
|
||||
ZPTMP .EQ $67 ->$84 29 bytes
|
||||
|
@ -214,9 +214,9 @@ GP.RomCall dec IRQ.InKernel
|
||||
.DA $E82E NORMALIZE.FAC.2 (L->F)
|
||||
.DA $E941 LOG
|
||||
.DA $E987 FMULTT.1
|
||||
.DA $E9E7 LOAD.ARG.FROM.INDEX
|
||||
.DA $E9E3 LOAD.ARG.FROM.YA
|
||||
.DA $EA6B FDIVT+2
|
||||
.DA $EAFD LOAD.FAC.FROM.INDEX
|
||||
.DA $EAF9 LOAD.FAC.FROM.YA
|
||||
|
||||
.DA $EB27 SETFOR (GETFAC)
|
||||
.DA $EBB2 FCOMP
|
||||
|
@ -124,7 +124,6 @@ MATH.PullARG ldx #ROM.SETARG
|
||||
MATH.PullFAC ldx #ROM.SETFAC
|
||||
|
||||
>LDYA pStack
|
||||
>STYA INDEX
|
||||
jsr GP.ROMCALL
|
||||
|
||||
lda pStack
|
||||
|
123
SYS/KERNEL.S.NUM.txt
Normal file
123
SYS/KERNEL.S.NUM.txt
Normal file
@ -0,0 +1,123 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
ACC32.Sign .EQ FAC
|
||||
ACC32 .EQ FAC+1
|
||||
*--------------------------------------
|
||||
NUM.A2STR10 jsr NUM.A2ACC32
|
||||
clc
|
||||
*--------------------------------------
|
||||
* CS = signed long
|
||||
* CC = unsigned long
|
||||
*--------------------------------------
|
||||
NUM.ACC322STR10 bcc .1
|
||||
|
||||
clc
|
||||
|
||||
lda ACC32+3
|
||||
bpl .1
|
||||
|
||||
jsr NUM.ACC32NEG
|
||||
|
||||
sec
|
||||
|
||||
.1 php
|
||||
|
||||
ldx #4
|
||||
|
||||
.2 stz RESULT,x Clear all 5 bytes
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
sed switch to BCD mode
|
||||
|
||||
ldx #32 let's roll 32 bits
|
||||
|
||||
.3 asl ACC32
|
||||
rol ACC32+1
|
||||
rol ACC32+2
|
||||
rol ACC32+3
|
||||
|
||||
ldy #4
|
||||
|
||||
.4 lda RESULT,y
|
||||
adc RESULT,y
|
||||
sta RESULT,y
|
||||
dey
|
||||
bpl .4
|
||||
|
||||
dex
|
||||
bne .3
|
||||
|
||||
cld
|
||||
|
||||
ldy #0
|
||||
* ldx #0
|
||||
|
||||
plp
|
||||
bcc .5
|
||||
|
||||
lda #'-'
|
||||
sta $102,x
|
||||
inx
|
||||
|
||||
.5 stz $102,x
|
||||
|
||||
.50 tya
|
||||
lsr
|
||||
tay
|
||||
lda RESULT,y
|
||||
|
||||
bcs .6
|
||||
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
|
||||
.6 and #$0F
|
||||
ora #$30
|
||||
cmp #$30
|
||||
|
||||
lda $102,x
|
||||
sta $102,x
|
||||
|
||||
.7 sta $102,x
|
||||
inx
|
||||
|
||||
.8 iny
|
||||
cpy #10
|
||||
bne .50
|
||||
|
||||
stz $102,x
|
||||
|
||||
clc
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
NUM.A2ACC32 sta ACC32
|
||||
.HS 2C BIT ABS
|
||||
NUM.ACC32ZERO stz ACC32
|
||||
stz ACC32+1
|
||||
stz ACC32+2
|
||||
stz ACC32+3
|
||||
rts
|
||||
*--------------------------------------
|
||||
NUM.ACC32NEG sec
|
||||
|
||||
ldy #0
|
||||
ldx #3
|
||||
|
||||
.1 lda ACC32,y two's complement of X bytes
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta ACC32,y
|
||||
iny
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.NUM
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
ASM
|
@ -4,7 +4,6 @@ NEW
|
||||
HEXBUF .EQ FAC
|
||||
K.PrintF.PadL .EQ FAC+4
|
||||
K.PrintF.PadC .EQ FAC+5
|
||||
BCDBUF .EQ ARG 5, enough to handle 10 digits (32bits)
|
||||
HEXBUF.Signed .EQ ARG.SIGN
|
||||
*/--------------------------------------
|
||||
* # putchar (BLOCKING)
|
||||
@ -397,13 +396,13 @@ K.PrintF.1 stz PrintF.Cnt
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.8 lda PrintF.hFILE
|
||||
.8 ldx PrintF.hFILE
|
||||
beq .80 Writing to buffer, append \0
|
||||
|
||||
>PUSHW PrintF.Cnt Writing to File/dev...
|
||||
>PUSHWI K.IOBuf
|
||||
|
||||
lda PrintF.hFILE
|
||||
txa
|
||||
jsr K.FWrite
|
||||
bcc .81
|
||||
|
||||
@ -559,7 +558,7 @@ PrintF.Hex2Dec ror HEXBUF.Signed
|
||||
|
||||
ldx #4
|
||||
|
||||
.1 stz BCDBUF,x Clear all 5 bytes
|
||||
.1 stz RESULT,x Clear all 5 bytes
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
@ -574,9 +573,9 @@ PrintF.Hex2Dec ror HEXBUF.Signed
|
||||
|
||||
ldy #4
|
||||
|
||||
.3 lda BCDBUF,y
|
||||
adc BCDBUF,y
|
||||
sta BCDBUF,y
|
||||
.3 lda RESULT,y
|
||||
adc RESULT,y
|
||||
sta RESULT,y
|
||||
dey
|
||||
bpl .3
|
||||
|
||||
@ -605,7 +604,7 @@ PrintF.Hex2Dec ror HEXBUF.Signed
|
||||
lsr CS if lo nibble (1,3,5,7,9)
|
||||
tay
|
||||
|
||||
lda BCDBUF,y
|
||||
lda RESULT,y
|
||||
|
||||
bcs .6
|
||||
|
||||
@ -662,10 +661,9 @@ PrintF.F clc
|
||||
.1 tya
|
||||
sec +1
|
||||
adc pStack
|
||||
sta INDEX
|
||||
tay
|
||||
|
||||
lda pStack+1
|
||||
sta INDEX+1
|
||||
|
||||
ldx #ROM.SETFAC
|
||||
jsr GP.ROMCALL
|
||||
@ -1348,6 +1346,7 @@ K.FSeek jsr PFT.CheckNodeA
|
||||
.HS 2C bit abs
|
||||
.99 lda #E.FTB
|
||||
sec
|
||||
K.FSeek.RTS
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # FEOF
|
||||
@ -1365,11 +1364,9 @@ K.FSeek jsr PFT.CheckNodeA
|
||||
* CS :
|
||||
*\--------------------------------------
|
||||
K.FEOF jsr PFT.CheckNodeA
|
||||
bcs .9
|
||||
bcs K.FSeek.RTS
|
||||
|
||||
jmp IO.EOF
|
||||
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # FTell
|
||||
* Return the current value of the file-position indicator
|
||||
|
@ -30,11 +30,9 @@ TIME.Year .BS 1
|
||||
* ## RETURN VALUE
|
||||
* S.TIME filled with System date/time
|
||||
*\--------------------------------------
|
||||
K.Time >STYA ZPPtr2
|
||||
K.Time >PUSHYA
|
||||
>MLICALL MLIGETTIME
|
||||
>LDYAI DATELO
|
||||
>STYA ZPPtr1
|
||||
bra TIME.PTime2TimeP1P2
|
||||
*/--------------------------------------
|
||||
* # PTime2Time
|
||||
* Convert ProDOS Time To S.TIME
|
||||
|
Loading…
Reference in New Issue
Block a user