Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-18 13:41:27 +02:00
parent f5c24a54fc
commit be400f181b
5 changed files with 92 additions and 41 deletions

Binary file not shown.

View File

@ -75,6 +75,7 @@ CL.CHARIN.CTRL cpx #C.CR
cpx #C.EOF cpx #C.EOF
beq .18 beq .18
.10 cpx #C.ESC .10 cpx #C.ESC
bne .11 bne .11
lda #$ff lda #$ff
@ -83,16 +84,55 @@ CL.CHARIN.CTRL cpx #C.CR
rts rts
.11 cpx #3 Ctrl-C .11 cpx #3 Ctrl-C
bne .12 beq CL.CLR
jmp CL.CLR cpx #26 Ctrl-Z
.12 cpx #26 Ctrl-Z
bne .13 bne .13
jmp CL.SUPPR jmp CL.SUPPR
.18 lda #$ff
.18 ldy #S.PS.hStdIn Check for any extra LF
lda (pPS),y
>SYSCALL feof
bcs .9
tay
bne .19
>SYSCALL GetChar
.19 lda #$ff
>STA.G CL.bReady >STA.G CL.bReady
.13 clc .13 clc
.9 rts
*--------------------------------------
CL.CLR lda (ZPCLBuf)
beq CL.RESET.1
.1 >LDA.G CL.Ptr
>CMP.G CL.Len
beq .2
inc
>STA.G CL.Ptr
lda #C.FS
>SYSCALL PutChar
bra .1
.2 ldy #0
.3 lda #C.DEL
sta (ZPCLBuf),y
iny
lda (ZPCLBuf),y
bne .3
jsr CL.PrintCLBuf
*--------------------------------------
CL.RESET lda #0
sta (ZPCLBuf)
CL.RESET.1 >STA.G CL.bReady
>STA.G CL.Ptr
>STA.G CL.Len
rts rts
*-------------------------------------- *--------------------------------------
CL.Insert >LDA.G CL.Len CL.Insert >LDA.G CL.Len
@ -132,36 +172,6 @@ CL.Insert >LDA.G CL.Len
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
CL.CLR lda (ZPCLBuf)
beq CL.RESET.1
.1 >LDA.G CL.Ptr
>CMP.G CL.Len
beq .2
inc
>STA.G CL.Ptr
lda #C.FS
>SYSCALL PutChar
bra .1
.2 ldy #0
.3 lda #C.DEL
sta (ZPCLBuf),y
iny
lda (ZPCLBuf),y
bne .3
jsr CL.PrintCLBuf
*--------------------------------------
CL.RESET lda #0
sta (ZPCLBuf)
CL.RESET.1 >STA.G CL.bReady
>STA.G CL.Ptr
>STA.G CL.Len
rts
*--------------------------------------
CL.BS >LDA.G CL.Ptr CL.BS >LDA.G CL.Ptr
beq .9 beq .9
dec dec

View File

@ -279,21 +279,28 @@ CS.RUN.LOOP >SLEEP
*-------------------------------------- *--------------------------------------
.2 >LDA.G bPause .2 >LDA.G bPause
bpl .6 bpl .6
.3 >SYSCALL GetChar .3 >SYSCALL GetChar
bcs .9 I/O err bcs .9 I/O err
cmp #3 Ctrl-C cmp #3 Ctrl-C
bne .4 bne .4
lda (pData) batch mode ? lda (pData) batch mode ?
beq .5 beq .5
>LDA.G bSET.C >LDA.G bSET.C
beq .8 beq .8
bra .5 bra .5
.4 tax .4 tax
>LDA.G bPause >LDA.G bPause
asl $ff ? asl $ff ?
bpl .5 not from PAUSE command bpl .5 not from PAUSE command
cpx #C.CR cpx #C.CR
bne .3 bne .3
.5 >STZ.G bPause .5 >STZ.G bPause
*-------------------------------------- *--------------------------------------
.6 lda (pData) batch mode ? .6 lda (pData) batch mode ?

View File

@ -39,7 +39,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 #64 Stack Size .DA #32 Stack Size
.DA #ZS.END-ZS.START Zero Page Size .DA #ZS.END-ZS.START Zero Page Size
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -65,6 +65,7 @@ CS.RUN ldy #S.PS.ARGC
cmp #2 cmp #2
bcc .9 bcc .9
.1 inc ArgIndex .1 inc ArgIndex
lda ArgIndex lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
@ -73,14 +74,19 @@ CS.RUN ldy #S.PS.ARGC
jsr CkeckOption jsr CkeckOption
bcs .9 bcs .9
beq .1 valid option, check next arg beq .1 valid option, check next arg
lda ArgDev lda ArgDev
bne .2 bne .2
lda ArgIndex lda ArgIndex
sta ArgDev sta ArgDev
bra .1 bra .1
.2 lda ArgProg .2 lda ArgProg
bne .9 bne .9
lda ArgIndex lda ArgIndex
sta ArgProg sta ArgProg
bra .1 bra .1
@ -91,10 +97,13 @@ CS.RUN ldy #S.PS.ARGC
lda #E.SYN lda #E.SYN
sec sec
.99 rts .99 rts
.8 lda ArgDev .8 lda ArgDev
beq .9 beq .9
lda ArgProg lda ArgProg
beq .9 beq .9
ldy #S.PS.hStdErr ldy #S.PS.hStdErr
lda (pPs),y lda (pPs),y
sta hErr sta hErr
@ -142,11 +151,13 @@ CS.RUN.LOOP1 >SLEEP
>SYSCALL GetChar >SYSCALL GetChar
bcs CS.RUN.9 bcs CS.RUN.9
cmp #IAC cmp #IAC
beq CS.RUN.IACMODE beq CS.RUN.IACMODE
>SYSCALL PutChar >SYSCALL PutChar
bcs CS.RUN.EXIT bcs CS.RUN.EXIT
bra CS.RUN.LOOP1 bra CS.RUN.LOOP1
.1 lda TimeOut .1 lda TimeOut
bne CS.RUN.LOOP1 bne CS.RUN.LOOP1
@ -158,11 +169,13 @@ CS.RUN.LOOP1 >SLEEP
>LDYA L.MSG.GREETINGS >LDYA L.MSG.GREETINGS
>SYSCALL printf >SYSCALL printf
bcs CS.RUN.EXIT unable to send greetings... bcs CS.RUN.EXIT unable to send greetings...
.2 >PUSHBI S.PS.F.HOLD .2 >PUSHBI S.PS.F.HOLD
lda ArgProg lda ArgProg
>SYSCALL ArgV >SYSCALL ArgV
>SYSCALL ExecV >SYSCALL ExecV
>SLEEP >SLEEP
CS.RUN.EXIT lda bExitOnClose CS.RUN.EXIT lda bExitOnClose
bmi .8 bmi .8
@ -174,9 +187,11 @@ CS.RUN.9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB) CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB)
bcs CS.RUN.9 bcs CS.RUN.9
sta IAC.CMD sta IAC.CMD
>SYSCALL GetChar Wait for IAC SUBCMD >SYSCALL GetChar Wait for IAC SUBCMD
bcs CS.RUN.9 bcs CS.RUN.9
sta IAC.SUBCMD sta IAC.SUBCMD
tax tax
lda IAC.CMD lda IAC.CMD
@ -185,16 +200,20 @@ CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB)
*-------------------------------------- *--------------------------------------
CS.RUN.IAC.CMD cmp #WILL CS.RUN.IAC.CMD cmp #WILL
bne .8 bne .8
cpx #TELOPT.TTYPE cpx #TELOPT.TTYPE
bne .2 bne .2
>PUSHWI TELNETOPT.TTYPE.LEN >PUSHWI TELNETOPT.TTYPE.LEN
>PUSHW L.TELNETOPT.TTYPE >PUSHW L.TELNETOPT.TTYPE
bra .7 bra .7
.2 cpx #TELOPT.LINEMODE .2 cpx #TELOPT.LINEMODE
bne .8 bne .8
>PUSHWI TELNETOPT.LMODE.LEN >PUSHWI TELNETOPT.LMODE.LEN
>PUSHW L.TELNETOPT.LMODE >PUSHW L.TELNETOPT.LMODE
.7 ldy #S.PS.hStdOut .7 ldy #S.PS.hStdOut
lda (pPs),y lda (pPs),y
>SYSCALL fwrite >SYSCALL fwrite
@ -255,27 +274,34 @@ CS.QUIT lda hFILE
CkeckOption lda (ZPPtr1) CkeckOption lda (ZPPtr1)
cmp #'-' cmp #'-'
bne .8 bne .8
ldy #2 ldy #2
lda (ZPPtr1),y lda (ZPPtr1),y
bne .8 bne .8
dey dey
lda (ZPPtr1),y lda (ZPPtr1),y
ldx OptionList ldx #OptionVars-OptionList-1
.2 cmp OptionList,x .2 cmp OptionList,x
beq .3 beq .3
dex dex
bne .2 bpl .2
sec invalid option sec invalid option
rts rts
.3 ldy OptionVars-1,x
.3 ldy OptionVars,x
eor #$80 toggle option eor #$80 toggle option
sta $0,y sta $0,y
lda #0 exit with 0 lda #0 exit with 0
.8 clc !0 if not an option .8 clc !0 if not an option
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
OptionList >PSTR "Ee" OptionList .AS "Ee"
OptionVars .DA #bExitOnClose,#bExitOnClose OptionVars .DA #bExitOnClose,#bExitOnClose
MSG.USAGE .AS "Usage : GETTY <DEV> <PROGRAM>\r\n" MSG.USAGE .AS "Usage : GETTY <DEV> <PROGRAM>\r\n"
.AZ " -E : Exit on disconnect\r\n" .AZ " -E : Exit on disconnect\r\n"

View File

@ -50,7 +50,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 Segment Size .DA DS.END-DS.START Data Segment Size
.DA #64 Stack Size .DA #32 Stack Size
.DA #ZS.END-ZS.START Zero Page Size .DA #ZS.END-ZS.START Zero Page Size
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -395,13 +395,16 @@ CS.RUN.DumpFile pha
pla pla
plp plp
.9 rts .9 rts
.2 phx .2 phx
>SYSCALL puts >SYSCALL puts
pla pla
>SYSCALL freemem >SYSCALL freemem
bra .1 bra .1
.7 lda ZPhBuf .7 lda ZPhBuf
>SYSCALL freemem >SYSCALL freemem
.8 lda ZPhFile .8 lda ZPhFile
>SYSCALL fclose >SYSCALL fclose
rts rts
@ -413,14 +416,19 @@ CS.DOEVENT
CS.QUIT lda hLIBCRYPT CS.QUIT lda hLIBCRYPT
beq CS.CLEANUP beq CS.CLEANUP
>SYSCALL UnloadLib >SYSCALL UnloadLib
CS.CLEANUP lda ZPhGetLine CS.CLEANUP lda ZPhGetLine
beq .1 beq .1
stz ZPhGetLine stz ZPhGetLine
>SYSCALL freemem >SYSCALL freemem
.1 lda ZPhPW .1 lda ZPhPW
beq .8 beq .8
stz ZPhPW stz ZPhPW
>SYSCALL freemem >SYSCALL freemem
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------