Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-07-25 08:13:56 +02:00
parent db180a8f1a
commit a81b81a13c
9 changed files with 60 additions and 82 deletions

Binary file not shown.

View File

@ -1017,7 +1017,7 @@ FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
jsr IO.Pipe.Out
bcs .9
>PUSHBI 0
>PUSHB.G CORE.PSFlags
>LDYA ZPArgVBufPtr
>SYSCALL execl
bcs .9

View File

@ -186,10 +186,6 @@ CORE.Run.7 jsr CORE.GetCharNB
jsr IO.Pipe.Out
bcs CORE.Run.RTS
>LDA.G CORE.PSFlags
ora #S.PS.F.CLOSEONX
sta (pData),y
jsr CORE.IO.AMP run in background
bra CORE.ExecCmd.1 Do not skip |

View File

@ -259,6 +259,9 @@ EXP.TEST.BINARY >LDA.G CORE.Operator
.2 lda #%001 010 str1 > str2
bra EXP.TEST.BINARY.END
EXP.TEST.BINARY.ESYN4
>POP 4
EXP.TEST.BINARY.ESYN
lda #E.ESYN
@ -269,37 +272,24 @@ EXP.TEST.BINARY.NUM
>LDYA ZPArgVBufPrev
>SYSCALL AToL
bcs EXP.TEST.BINARY.ESYN
>PULLL M32.ACC
jsr CORE.ArgV.Next
beq EXP.TEST.BINARY.ESYN
beq EXP.TEST.BINARY.ESYN4
>LDYA ZPArgVBufPtr
>SYSCALL AToL
bcs EXP.TEST.BINARY.ESYN
bcs EXP.TEST.BINARY.ESYN4
>PULLL M32.ARG
>FPU SUB32
ldx #4
>PULLL M32.ACC
ldy #0
sec
lda M32.ACC+3
bmi .5 ACC < ARG
.1 lda M32.ARG,y
sbc M32.ACC,y
sta M32.ACC,y
iny
dex
bne .1
bcc .5 CC if ACC < ARG
lda M32.ACC
ora M32.ACC+1
ora M32.ACC+2
ora M32.ACC+3 Z if ACC = ARG
ora M32.ACC+1
ora M32.ACC
bne .4

View File

@ -69,6 +69,12 @@ IO.Pipe.Out >PUSHWZ mode
>LEA.G IO.FIFO
>SYSCALL fopen
bcs IO.Reset.In.RTS
pha
>LDA.G CORE.PSFlags
ora #S.PS.F.CLOSEONX
sta (pData),y
pla
*--------------------------------------
IO.Set.Out pha
jsr IO.Reset.Out

View File

@ -77,7 +77,6 @@ ZPArgVBufPtr .BS 2
ZPVarNamePtr .BS 2
M32.ACC .BS 4
M32.ARG .BS 4
M32.TMP .BS 4
ZPPtr1 .BS 2

View File

@ -449,7 +449,7 @@ FPU.FOUT .EQ 54
bne :1
.EM
*--------------------------------------
.MA RET
.MA POP
.DO ]1=1
inc pStack
.FIN
@ -470,6 +470,10 @@ FPU.FOUT .EQ 54
bne :1
pla
.FIN
.EM
*--------------------------------------
.MA RET
>POP ]1
rts
.EM
*--------------------------------------

View File

@ -44,26 +44,23 @@ NEW
* ## RETURN VALUE
* On stack (float)
*\--------------------------------------
K.Float ldx #4
K.Float ldy #3
.1 >PULLB FAC,x Reverse Order
dex
bne .1
.1 lda (pStack),y
sta FAC,y Reverse Order
dey
bpl .1
dec pStack keep 5 bytes on stack
stz FAC.SIGN
lda #$A0
sta FAC Exp=32
lda #$80+32
sta FAC Positive + Exp=32
ldx #FPU.LTOF
*--------------------------------------
MATH.RomCallPushFAC
jsr GP.ROMCALL
lda pStack
sec
sbc #5
sta pStack
jmp GP.GETFAC.ON.STACK
*/--------------------------------------
* # lrintf
@ -77,25 +74,19 @@ MATH.RomCallPushFAC
* ## RETURN VALUE
* On stack (long)
*\--------------------------------------
K.lrintf ldx #FPU.SETFAC
K.lrintf jsr GP.SetFAC
>LDYA pStack
jsr GP.ROMCALL
lda pStack
clc
adc #5
sta pStack
inc pStack keep 4 bytes on stack
ldx #FPU.QINT
jsr GP.ROMCALL
ldx #0
ldy #3
.1 >PUSHB FAC+1,x
inx
cpx #4
bne .1
.1 lda FAC+1,y
sta (pStack),y
dey
bpl .1
clc
rts
@ -198,9 +189,15 @@ MATH.DIVMOD php
.3 bvs MATH.PutARG32 DIV
*--------------------------------------
MATH.PutTMP32 ldy #3 MOD
MATH.PutTMP32 lda #TMP32 MOD
.HS 2C BIT ABS
*--------------------------------------
MATH.PutARG32 lda #ARG32
sta .1+1
.1 lda TMP32,y
ldy #3
.1 lda $ff,y SELF MODIFIED
sta (pStack),y
dey
bpl .1
@ -208,38 +205,20 @@ MATH.PutTMP32 ldy #3 MOD
rts
*--------------------------------------
MATH.PutNotTMP32
ldy #0
ldx #3
sec
.1 lda TMP32,y two's complement of X bytes
eor #$ff
adc #0
sta (pStack),y
iny
dex
bpl .1
rts
*--------------------------------------
MATH.PutARG32 ldy #3
.1 lda ARG32,y
sta (pStack),y
dey
bpl .1
rts
lda #TMP32
.HS 2C BIT ABS
*--------------------------------------
MATH.PutNotARG32
lda #ARG32
sta .1+1
ldy #0
ldx #3
sec
.1 lda ARG32,y two's complement of X bytes
eor #$ff
.1 lda $ff,y SELF MODIFIED
eor #$ff two's complement of X bytes
adc #0
sta (pStack),y
iny

View File

@ -132,6 +132,10 @@ PS.CreateChild ldx #0
jsr Mem.SetOwner Set Ownership
lda PS.Flags
and #S.PS.F.CLOSEONX
sta (PS.NewPSPtr)
lda CORE.LastPSID
ldy #S.PS.PID
sta (PS.NewPSPtr),y
@ -635,7 +639,7 @@ K.Kill.2 ldy #S.PS.hSID
lda (ZPPtr1)
bit #S.PS.F.CLOSEONX
beq .1
ldy #S.PS.hStdOut
lda (ZPPtr1),y
ldx #SYS.fclose