Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-17 17:20:49 +02:00
parent 893c313fce
commit 3ff4839a35
6 changed files with 70 additions and 29 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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