mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-06 18:37:12 +00:00
Kernel 0.93
This commit is contained in:
parent
aa16022baa
commit
9f844defbb
Binary file not shown.
@ -212,9 +212,8 @@ CS.RUN.PAUSE >PUSHBI 0
|
||||
bcc .5
|
||||
|
||||
cmp #MLI.E.EOF
|
||||
bne .99
|
||||
|
||||
bra .90
|
||||
beq .90
|
||||
rts
|
||||
|
||||
.5 inc LineNum
|
||||
bne .6
|
||||
@ -257,7 +256,15 @@ CS.RUN.GETLINE >PUSHWI 256
|
||||
lda (pPS),y
|
||||
|
||||
.1 >SYSCALL fgets
|
||||
rts
|
||||
bcs .9
|
||||
|
||||
lda #'\'
|
||||
>PUSHA
|
||||
ldy #S.PS.hStdErr
|
||||
lda (pPS),y
|
||||
>SYSCALL fputc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.PRINT lda bLineNum
|
||||
bpl .1
|
||||
|
@ -249,17 +249,17 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 cmp #S.IOCTL.STATCODE.GETRC
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
bne STATUS.9
|
||||
|
||||
lda DIB+S.DIB.S
|
||||
and #S.DIB.S.OPENED
|
||||
beq .8
|
||||
beq OPEN.E
|
||||
|
||||
.DO SSCIRQ=1
|
||||
lda INBUF.TAIL
|
||||
eor INBUF.HEAD
|
||||
beq .4 NO DATA? eof + TRUE
|
||||
beq .4 NO DATA? eof = TRUE
|
||||
|
||||
lda #1
|
||||
|
||||
@ -295,13 +295,13 @@ CONTROL jsr STATUS.CONTROL.Init
|
||||
*--------------------------------------
|
||||
OPEN lda DIB+S.DIB.S
|
||||
bit #S.DIB.S.OPENED
|
||||
beq .1
|
||||
beq OPEN.1
|
||||
|
||||
lda #MLI.E.OPEN
|
||||
OPEN.E lda #MLI.E.OPEN
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 php
|
||||
OPEN.1 php
|
||||
sei
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
@ -424,11 +424,11 @@ READ php
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 lda #C.EOF
|
||||
.9 lda #MLI.E.IO
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.99 plp
|
||||
lda #E.NODATA
|
||||
.99 lda #E.NODATA
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -445,7 +445,7 @@ WRITE php
|
||||
.3 .DO SSCIRQ=1
|
||||
lda SSC.STATUS-$8F,x
|
||||
bit #SSC.STATUS.nDSR true when 0
|
||||
bne .90
|
||||
bne .9
|
||||
|
||||
lda OUTBUF.HEAD
|
||||
cmp OUTBUF.TAIL Buffer Empty?
|
||||
@ -471,7 +471,7 @@ WRITE php
|
||||
inc
|
||||
and #BUF.MASK
|
||||
cmp OUTBUF.TAIL
|
||||
beq .9 Buffer Full!!
|
||||
beq .99 Buffer Full!!
|
||||
|
||||
sta OUTBUF.HEAD
|
||||
|
||||
@ -486,7 +486,7 @@ WRITE php
|
||||
.ELSE
|
||||
.4 lda SSC.STATUS-$8F,x
|
||||
bit #SSC.STATUS.nDSR true when 0
|
||||
bne .90
|
||||
bne .9
|
||||
|
||||
bit #SSC.STATUS.TDRE Outgoing char?
|
||||
beq .4
|
||||
@ -505,9 +505,9 @@ WRITE php
|
||||
clc
|
||||
rts
|
||||
|
||||
.90 lda #E.NODATA
|
||||
.9 lda #MLI.E.IO
|
||||
.HS 2C BIT ABS
|
||||
.9 lda #C.EOF
|
||||
.99 lda #E.NODATA
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
@ -520,17 +520,20 @@ STATUS.CONTROL.Init
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr
|
||||
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
|
||||
* ldy #S.IOCTL.BYTECNT
|
||||
iny
|
||||
iny #S.IOCTL.BYTECNT
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount
|
||||
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
|
@ -367,8 +367,7 @@ S.IOCTL.STATCODE.STATUS .EQ 0
|
||||
S.IOCTL.STATCODE.GETDCB .EQ 1
|
||||
S.IOCTL.STATCODE.GETNL .EQ 2
|
||||
S.IOCTL.STATCODE.GETDIB .EQ 3
|
||||
S.IOCTL.STATCODE.GETRC .EQ 4
|
||||
S.IOCTL.STATCODE.GETWC .EQ 5
|
||||
S.IOCTL.STATCODE.EOF .EQ 4
|
||||
S.IOCTL.CTRLCODE .EQ 4 1 BYTE
|
||||
S.IOCTL.CTRLCODE.RESET .EQ 0
|
||||
S.IOCTL.CTRLCODE.SETDCB .EQ 1
|
||||
|
100
SBIN/GETTY.S.txt
100
SBIN/GETTY.S.txt
@ -10,12 +10,23 @@ NEW
|
||||
.INB INC/NET.TELNET.I
|
||||
*--------------------------------------
|
||||
TIMEOUT.MAX .EQ 100 10 sec.
|
||||
IAC.BUF.MAX .EQ 32
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR ZPBIN
|
||||
ZS.START
|
||||
ZPPtr1 .BS 2
|
||||
TimeOut .BS 1
|
||||
hErr .BS 1
|
||||
ArgIndex .BS 1
|
||||
ArgDev .BS 1
|
||||
ArgProg .BS 1
|
||||
hFILE .BS 1
|
||||
bExitOnClose .BS 1
|
||||
IAC.CMD .BS 1
|
||||
IAC.SUBCMD .BS 1
|
||||
IAC.SB.CMD .BS 1
|
||||
IAC.SB.LEN .BS 1
|
||||
ZS.END .ED
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -48,6 +59,15 @@ L.ENV.TERM .DA ENV.TERM
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
rts
|
||||
|
||||
TEST lda ArgProg
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
lda hErr
|
||||
>SYSCALL fputs
|
||||
rts
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
CS.RUN ldy #S.PS.ARGC
|
||||
lda (pPs),y
|
||||
@ -55,7 +75,8 @@ CS.RUN ldy #S.PS.ARGC
|
||||
|
||||
bcc .9
|
||||
|
||||
.1 >INC.G ArgIndex
|
||||
.1 inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL ArgV
|
||||
bcs .8
|
||||
|
||||
@ -65,18 +86,18 @@ CS.RUN ldy #S.PS.ARGC
|
||||
bcs .9
|
||||
beq .1 valid option, check next arg
|
||||
|
||||
>LDA.G ArgDev
|
||||
lda ArgDev
|
||||
bne .2
|
||||
|
||||
>LDA.G ArgIndex
|
||||
>STA.G ArgDev
|
||||
lda ArgIndex
|
||||
sta ArgDev
|
||||
bra .1
|
||||
|
||||
.2 >LDA.G ArgProg
|
||||
.2 lda ArgProg
|
||||
bne .9
|
||||
|
||||
>LDA.G ArgIndex
|
||||
>STA.G ArgProg
|
||||
lda ArgIndex
|
||||
sta ArgProg
|
||||
bra .1
|
||||
|
||||
.9 >PUSHBI 0
|
||||
@ -86,15 +107,19 @@ CS.RUN ldy #S.PS.ARGC
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.8 >LDA.G ArgDev
|
||||
.8 lda ArgDev
|
||||
beq .9
|
||||
>LDA.G ArgProg
|
||||
lda ArgProg
|
||||
beq .9
|
||||
|
||||
ldy #S.PS.hStdErr
|
||||
lda (pPs),y
|
||||
sta hErr
|
||||
|
||||
>PUSHWI 0 auxtype
|
||||
>PUSHBI 0 type
|
||||
>PUSHBI O.RDWR
|
||||
>LDA.G ArgDev
|
||||
lda ArgDev
|
||||
>SYSCALL ArgV
|
||||
|
||||
>SYSCALL fopen
|
||||
@ -107,7 +132,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||
iny #S.PS.hStdErr
|
||||
sta (pPs),y
|
||||
|
||||
>STA.G hFILE
|
||||
sta hFILE
|
||||
|
||||
CS.RUN.LOOP0 >SLEEP
|
||||
|
||||
@ -149,7 +174,7 @@ CS.RUN.LOOP1 >SLEEP
|
||||
.1 lda TimeOut
|
||||
bne CS.RUN.LOOP1
|
||||
|
||||
>LDA.G ArgDev
|
||||
lda ArgDev
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHWI K.VER
|
||||
@ -160,16 +185,15 @@ CS.RUN.LOOP1 >SLEEP
|
||||
bcs CS.RUN.EXIT unable to send greetings...
|
||||
|
||||
.2 >PUSHBI S.PS.F.HOLD
|
||||
|
||||
>LDA.G ArgProg
|
||||
lda ArgProg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL ExecV
|
||||
|
||||
>SLEEP
|
||||
|
||||
CS.RUN.EXIT >LDA.G bExitOnClose
|
||||
CS.RUN.EXIT lda bExitOnClose
|
||||
bmi .8
|
||||
|
||||
|
||||
jmp CS.RUN.LOOP0
|
||||
|
||||
.8 lda #0
|
||||
@ -179,15 +203,14 @@ CS.RUN.9 rts
|
||||
CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB)
|
||||
bcs CS.RUN.9
|
||||
|
||||
>STA.G IAC.CMD
|
||||
sta IAC.CMD
|
||||
|
||||
>SYSCALL GetChar Wait for IAC SUBCMD
|
||||
bcs CS.RUN.9
|
||||
|
||||
>STA.G IAC.SUBCMD
|
||||
tax
|
||||
ldx IAC.SUBCMD
|
||||
|
||||
>LDA.G IAC.CMD
|
||||
lda IAC.CMD
|
||||
cmp #SB
|
||||
beq CS.RUN.IAC.SB
|
||||
*--------------------------------------
|
||||
@ -216,9 +239,9 @@ CS.RUN.IAC.CMD cmp #WILL
|
||||
CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||
bcs .9
|
||||
|
||||
>STA.G IAC.SB.CMD
|
||||
sta IAC.SB.CMD
|
||||
|
||||
>STZ.G IAC.SB.LEN
|
||||
stz IAC.SB.LEN
|
||||
|
||||
.2 >SYSCALL GetChar
|
||||
bcs .9
|
||||
@ -226,21 +249,17 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||
cmp #IAC
|
||||
beq .4 end of DATA, go wait SE
|
||||
|
||||
pha
|
||||
ldy IAC.SB.LEN
|
||||
|
||||
>LDA.G IAC.SB.LEN
|
||||
clc
|
||||
adc #IAC.SB.DATA
|
||||
tay
|
||||
|
||||
pla
|
||||
sta (pData),y
|
||||
iny
|
||||
lda #0
|
||||
sta (pData),y
|
||||
|
||||
>INC.G IAC.SB.LEN
|
||||
bra .2
|
||||
sty IAC.SB.LEN
|
||||
cpy #IAC.BUF.MAX
|
||||
bne .2
|
||||
bra .8
|
||||
|
||||
.4 >SYSCALL GetChar
|
||||
bcs .9
|
||||
@ -248,15 +267,15 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
|
||||
cmp #SE
|
||||
bne .8
|
||||
|
||||
>LDA.G IAC.SUBCMD
|
||||
lda IAC.SUBCMD
|
||||
cmp #TELOPT.TTYPE
|
||||
bne .8
|
||||
|
||||
>LDA.G IAC.SB.CMD
|
||||
lda IAC.SB.CMD
|
||||
cmp #SB.IS
|
||||
bne .8
|
||||
|
||||
>PUSHEA.G IAC.SB.DATA
|
||||
>PUSHW pData IAC.SB.DATA
|
||||
>LDYA L.ENV.TERM
|
||||
>SYSCALL SetEnv
|
||||
|
||||
@ -274,7 +293,7 @@ CS.DOEVENT lda (pEvent)
|
||||
.9 sec do not discard TIMER event
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT >LDA.G hFILE
|
||||
CS.QUIT lda hFILE
|
||||
beq .8
|
||||
|
||||
>SYSCALL fclose
|
||||
@ -337,16 +356,7 @@ ENV.TERM .AZ "TERM"
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgIndex .BS 1
|
||||
ArgDev .BS 1
|
||||
ArgProg .BS 1
|
||||
hFILE .BS 1
|
||||
bExitOnClose .BS 1
|
||||
IAC.CMD .BS 1
|
||||
IAC.SUBCMD .BS 1
|
||||
IAC.SB.CMD .BS 1
|
||||
IAC.SB.LEN .BS 1
|
||||
IAC.SB.DATA .BS 32
|
||||
IAC.SB.DATA .BS IAC.BUF.MAX
|
||||
DS.END .ED
|
||||
MAN
|
||||
SAVE USR/SRC/SBIN/GETTY.S
|
||||
|
@ -448,18 +448,15 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
||||
tax
|
||||
iny
|
||||
sbc (pFD),y
|
||||
bcc .12
|
||||
pla A,X = cnt
|
||||
bcc .12 cnt < Used
|
||||
|
||||
pla
|
||||
dey
|
||||
lda (pFD),y
|
||||
pha
|
||||
iny
|
||||
lda (pFD),y
|
||||
tax
|
||||
dey
|
||||
lda (pFD),y A,X = Used
|
||||
|
||||
.12 pla
|
||||
sta .80+1
|
||||
.12 sta .80+1
|
||||
stx .81+1
|
||||
eor #$ff
|
||||
sta IO.Counter
|
||||
@ -475,7 +472,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
||||
sty .2+1
|
||||
|
||||
ldy #S.FD.PIPE.Tail+1
|
||||
* clc
|
||||
clc
|
||||
adc (pFD),y
|
||||
sta .2+2
|
||||
|
||||
@ -529,19 +526,21 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
|
||||
ldy #S.FD.PIPE.Tail
|
||||
sta (pFD),y
|
||||
|
||||
lda .80+1
|
||||
ldy #S.FD.PIPE.Free
|
||||
|
||||
clc
|
||||
adc (pFD),y
|
||||
lda (pFD),y
|
||||
adc .80+1
|
||||
sta (pFD),y
|
||||
|
||||
iny
|
||||
|
||||
lda .81+1
|
||||
adc (pFD),y
|
||||
lda (pFD),y
|
||||
adc .81+1
|
||||
sta (pFD),y
|
||||
|
||||
ldy #S.FD.PIPE.Used
|
||||
iny #S.FD.PIPE.Used
|
||||
|
||||
sec
|
||||
lda (pFD),y
|
||||
sbc .80+1
|
||||
@ -613,7 +612,7 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
|
||||
eor #$ff
|
||||
sta IO.Counter+1
|
||||
pla
|
||||
ldy #S.FD.PIPE.Used+1
|
||||
iny #S.FD.PIPE.Used+1
|
||||
adc (pFD),y
|
||||
sta (pFD),y
|
||||
|
||||
@ -766,21 +765,8 @@ IO.EOF.TRUE lda #$ff
|
||||
* clc
|
||||
IO.EOF.REG.RTS rts
|
||||
*--------------------------------------
|
||||
IO.EOF.CDEV >LDYAI K.IOBuf
|
||||
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
|
||||
lda #S.IOCTL.STATCODE.GETRC
|
||||
|
||||
jsr K.GetDevStatus.I
|
||||
bcs IO.EOF.REG.RTS
|
||||
|
||||
lda K.IOBuf
|
||||
ora K.IOBuf+1
|
||||
beq IO.EOF.TRUE
|
||||
|
||||
IO.EOF.FALSE lda #0
|
||||
* clc
|
||||
rts
|
||||
IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
|
||||
jmp K.GetDevStatus.I
|
||||
*--------------------------------------
|
||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
||||
|
||||
@ -802,7 +788,10 @@ IO.EOF.PIPE clc
|
||||
iny
|
||||
ora (pFD),y
|
||||
beq IO.EOF.TRUE
|
||||
bne IO.EOF.FALSE
|
||||
|
||||
IO.EOF.FALSE lda #0
|
||||
* clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
|
||||
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
||||
|
@ -62,13 +62,13 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 cmp #S.IOCTL.STATCODE.GETRC
|
||||
.3 cmp #S.IOCTL.STATCODE.EOF
|
||||
bne .9
|
||||
|
||||
ldy #S.DCB.TTY.STATUS
|
||||
lda (ZPDCBPtr),y
|
||||
and #S.DIB.S.OPENED
|
||||
beq .8
|
||||
beq DRV.TERM.OPEN.E
|
||||
|
||||
jsr DRV.TERM.CURBLNK
|
||||
|
||||
@ -76,24 +76,20 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB
|
||||
lda (ZPDCBPtr),y
|
||||
iny
|
||||
sec
|
||||
sbc (ZPDCBPtr),y OUTHEAD
|
||||
|
||||
and #$F
|
||||
eor (ZPDCBPtr),y OUTHEAD
|
||||
bne .8
|
||||
|
||||
bit bActive
|
||||
bpl .8
|
||||
bpl .7
|
||||
bit OPENAPPLE
|
||||
bmi .8
|
||||
bmi .7
|
||||
|
||||
bit KBD
|
||||
bpl .8
|
||||
bmi .8
|
||||
|
||||
inc
|
||||
|
||||
.8 sta (ZPBufPtr)
|
||||
ldy #1
|
||||
lda #0
|
||||
sta (ZPBufPtr),y
|
||||
.7 lda #$ff
|
||||
.HS 2C BIT ABS
|
||||
.8 lda #0
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -108,13 +104,13 @@ DRV.TERM.OPEN tax DEV.ID in A
|
||||
ldy #S.DCB.TTY.STATUS
|
||||
lda (ZPDCBPtr),y
|
||||
bit #S.DIB.S.OPENED
|
||||
beq .1
|
||||
beq DRV.TERM.OPEN.1
|
||||
|
||||
lda #MLI.E.OPEN
|
||||
DRV.TERM.OPEN.E lda #MLI.E.OPEN
|
||||
sec
|
||||
rts
|
||||
|
||||
.1 txa
|
||||
DRV.TERM.OPEN.1 txa
|
||||
|
||||
ldx #0
|
||||
.2 ldy A2osX.SCRNDEVS,x
|
||||
@ -760,8 +756,8 @@ DRV.TERM.G1 ldy #S.DCB.TTY.bG1ALT
|
||||
|
||||
.1 ror
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
lda #0
|
||||
jmp DRV.TERM.SETMODE
|
||||
*--------------------------------------
|
||||
DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
|
||||
lda (ZPDCBPtr),y
|
||||
|
Loading…
x
Reference in New Issue
Block a user