mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.93+
This commit is contained in:
parent
893c313fce
commit
3ff4839a35
Binary file not shown.
@ -176,9 +176,11 @@ noramdsk lda RROMWRAMBNK2 read ROM/write RAM bank 2
|
||||
jsr lc1in set language card bank 1 to r/w
|
||||
cpx #$D0 is it > $D000 (old roms)
|
||||
lda #$00
|
||||
bcs H21C5 branch if old roms
|
||||
bcc .1
|
||||
|
||||
jmp H22EB need enhanced Roms
|
||||
|
||||
sta SETALTZP use alt zero page/stack
|
||||
.1 sta SETALTZP use alt zero page/stack
|
||||
lda #$FF set aux sp = $FF
|
||||
sta auxsp
|
||||
stx irqv+1 interrupt vector
|
||||
@ -187,8 +189,9 @@ noramdsk lda RROMWRAMBNK2 read ROM/write RAM bank 2
|
||||
stx irqv+1 save irq vector in main lc
|
||||
sty irqv
|
||||
lda #$01
|
||||
H21C5 sta irqflag 1 = new roms
|
||||
stz cortflag assume not Cortland system
|
||||
|
||||
H21C5 stz cortflag assume not Cortland system
|
||||
|
||||
lda cortland running on a Cortland ?
|
||||
beq H21D5 branch if not.
|
||||
inc cortflag yes it's Cortland
|
||||
|
@ -905,9 +905,11 @@ L2C4D lda 1,s
|
||||
RAMDRV.Install ldy #$99 move $9A bytesfrom lcsrc to lcdest.
|
||||
|
||||
.1 lda RAM,y transfer main bank portion of driver
|
||||
sta RAMDRV,y dey
|
||||
sta RAMDRV,y
|
||||
dey
|
||||
cpy #$FF
|
||||
bne .1
|
||||
|
||||
ldx #RAMX set up to move aux portion of driver
|
||||
stx A1L
|
||||
dex
|
||||
|
@ -201,18 +201,20 @@ irqrecev lda accsav get acc from where old ROM put it.
|
||||
sty p8yreg
|
||||
tsx
|
||||
stx p8sreg
|
||||
lda irqflag irq flag = 0 if old roms
|
||||
bne .1 and 1 if new roms.
|
||||
|
||||
pla restore return address and p-reg.
|
||||
sta p8preg
|
||||
pla
|
||||
sta intadr interrupt return address
|
||||
pla
|
||||
sta intadr+1
|
||||
.1 txs
|
||||
lda mslot set up to re-enable $Cn00 rom
|
||||
sta irqdev+2
|
||||
* lda irqflag irq flag = 0 if old roms
|
||||
* bne .1 and 1 if new roms.
|
||||
|
||||
* pla restore return address and p-reg.
|
||||
* sta p8preg
|
||||
* pla
|
||||
* sta intadr interrupt return address
|
||||
* pla
|
||||
* sta intadr+1
|
||||
*.1
|
||||
txs
|
||||
* lda mslot set up to re-enable $Cn00 rom
|
||||
* sta irqdev+2
|
||||
|
||||
ldx #$FA save 6 bytes of page 0
|
||||
|
||||
@ -252,19 +254,19 @@ H31AE lda svzerop-$FA,x restore the zero page
|
||||
inx
|
||||
bne H31AE
|
||||
|
||||
lda irqflag check for old roms.
|
||||
bne H31DD branch if new roms.
|
||||
* lda irqflag check for old roms.
|
||||
* bne H31DD branch if new roms.
|
||||
|
||||
ldy p8yreg restore registers.
|
||||
ldx p8xreg
|
||||
lda CLRC8ROM re-enable i/o card.
|
||||
irqdev lda $C100 Cn is self modifying.
|
||||
lda irqdev+2 restore device id.
|
||||
sta mslot slot being accessed.
|
||||
* ldy p8yreg restore registers.
|
||||
* ldx p8xreg
|
||||
* lda CLRC8ROM re-enable i/o card.
|
||||
*irqdev lda $C100 Cn is self modifying.
|
||||
* lda irqdev+2 restore device id.
|
||||
* sta mslot slot being accessed.
|
||||
|
||||
H31DD jmp GP.IrqExit do necessary bank switches and return.
|
||||
|
||||
irqflag .HS 00 0 = old roms. 1 = new roms.
|
||||
*irqflag .HS 00 0 = old roms. 1 = new roms.
|
||||
irqcount .HS 00 # of unclaimed interrupts.
|
||||
irqXindex .HS 00
|
||||
svzerop .HS 000000000000
|
||||
|
@ -865,7 +865,7 @@ L59E6 sec error.
|
||||
L59E8 clc
|
||||
rts end of obj xrw_0
|
||||
.LIST ON
|
||||
XRW.FREE .EQ $D6EC-*
|
||||
XRW.FREE .EQ $D6EC-* (ProDOS 2.0.3 = $02)
|
||||
.LIST OFF
|
||||
.BS XRW.FREE pad bytes to $D6EC (pathbuf-$14)
|
||||
* variables used by mli for smartport interface
|
||||
|
@ -34,7 +34,7 @@ CS.START cld
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.DA #4 ZP SS
|
||||
.DA #ZS.END-ZS.START Zero Page Size
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
@ -65,33 +65,45 @@ CS.INIT >LDYA L.LIBTCPIP
|
||||
*--------------------------------------
|
||||
CS.RUN lda #TIMEOUT.MAX
|
||||
sta TimeOut
|
||||
|
||||
>LDYA L.MSG.TCPWAIT
|
||||
>SYSCALL puts
|
||||
|
||||
.1 >SLEEP
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
bcs .99
|
||||
|
||||
>STYA ZPIPCfgPtr
|
||||
|
||||
lda (ZPIPCfgPtr) Configured ?
|
||||
bmi CS.RUN.INIT
|
||||
|
||||
lda Timeout
|
||||
beq .99
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPs),y
|
||||
>SYSCALL feof
|
||||
bcs .9 I/O err
|
||||
|
||||
tay
|
||||
bne .1
|
||||
|
||||
>SYSCALL GetChar
|
||||
bcs .9
|
||||
|
||||
cmp #$03
|
||||
bne .1
|
||||
|
||||
jmp CS.RUN.ABORT
|
||||
|
||||
.99 pha
|
||||
>LDYA L.MSG.TCPIPERR
|
||||
>SYSCALL puts
|
||||
pla
|
||||
sec
|
||||
.9 rts
|
||||
|
||||
CS.RUN.INIT ldx #3
|
||||
ldy #S.IPCFG.IP+3
|
||||
|
||||
@ -100,11 +112,13 @@ CS.RUN.INIT ldx #3
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
lda #1
|
||||
>SYSCALL ArgV
|
||||
bcs CS.RUN.PORTOK
|
||||
>SYSCALL atoi
|
||||
>STYA SA.LOCAL+S.SOCKADDR.PORT
|
||||
|
||||
CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||
lda #S.SOCKET.T.STREAM
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||
@ -116,9 +130,11 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||
pla
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||
bcs .9
|
||||
|
||||
>LDA.G hSrvSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Listen
|
||||
bcs .9
|
||||
|
||||
>LDYA L.MSG.INITOK
|
||||
>SYSCALL puts
|
||||
|
||||
@ -130,12 +146,14 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||
jsr CS.RUN.SERVER
|
||||
bcc .2
|
||||
rts
|
||||
|
||||
.9 pha
|
||||
>LDYA L.MSG.SKTERR
|
||||
>SYSCALL puts
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
|
||||
CS.RUN.ABORT >LDYA L.MSG.ABORT
|
||||
>SYSCALL puts
|
||||
lda #3
|
||||
@ -145,14 +163,18 @@ CS.RUN.ABORT >LDYA L.MSG.ABORT
|
||||
CS.RUN.SERVER pha
|
||||
ldy #hSockets
|
||||
ldx #CONN.MAX
|
||||
|
||||
.1 lda (pData),y
|
||||
bne .2
|
||||
|
||||
pla
|
||||
sta (pData),y
|
||||
bra CS.RUN.CLIENT
|
||||
|
||||
.2 iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
pla
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||
.8 clc
|
||||
@ -166,31 +188,37 @@ CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
|
||||
|
||||
ldx #3
|
||||
ldy #S.SOCKET.REM.ADDR+3
|
||||
|
||||
.3 >PUSHB (ZPSktPtr),y
|
||||
dey
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
>PUSHB.G hClientSocket
|
||||
|
||||
>PUSHBI 5
|
||||
>LDYA L.MSG.INCOMING
|
||||
>SYSCALL printf
|
||||
|
||||
>PUSHB.G hClientSocket
|
||||
>PUSHBI 1
|
||||
>PUSHW L.NOD.Template
|
||||
>LEA.G NodBuf
|
||||
>SYSCALL sprintf
|
||||
|
||||
>PUSHB.G hClientSocket
|
||||
>PUSHW 0
|
||||
>LEA.G NodBuf
|
||||
>SYSCALL mknod
|
||||
bcs .9
|
||||
|
||||
>STA.G hClientFile
|
||||
>PUSHEA.G NodBuf
|
||||
>PUSHBI 2
|
||||
>PUSHW L.CMD.Template
|
||||
>LEA.G CmdBuf
|
||||
>SYSCALL sprintf
|
||||
|
||||
>PUSHBI 0
|
||||
>LEA.G CmdBuf
|
||||
>SYSCALL execl
|
||||
@ -214,21 +242,28 @@ CS.DOEVENT lda (pEvent)
|
||||
*--------------------------------------
|
||||
CS.QUIT ldx #CONN.MAX
|
||||
ldy #hSockets
|
||||
|
||||
.1 lda (pData),y
|
||||
beq .2
|
||||
|
||||
phx
|
||||
phy
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||
ply
|
||||
plx
|
||||
|
||||
.2 iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
>LDA.G hSrvSocket
|
||||
beq .3
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||
|
||||
.3 lda hLIBTCPIP
|
||||
beq .8
|
||||
|
||||
>SYSCALL UnloadLib
|
||||
|
||||
.8 clc
|
||||
@ -264,8 +299,7 @@ hClientSocket .BS 1
|
||||
hClientFile .BS 1
|
||||
NodBuf .BS 11
|
||||
CmdBuf .BS 65
|
||||
DS.END
|
||||
.ED
|
||||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SBIN/TELNETD.S
|
||||
|
Loading…
x
Reference in New Issue
Block a user