Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-11-06 14:14:42 +01:00
parent 807432e2af
commit 714a4bdff2
11 changed files with 373 additions and 136 deletions

Binary file not shown.

View File

@ -10,12 +10,12 @@ BUF.InsertClipboard
>STYA ClipboardPtr
jsr BUF.ComputeCOffset
lda BufLen
lda FileLen
sec
ldy #ClipboardLen
adc (pData),y
pha
lda BufLen+1
lda FileLen+1
iny
adc (pData),y
ply
@ -30,13 +30,13 @@ BUF.InsertClipboard
>LDA.G ClipboardLen
clc
adc BufLen
sta BufLen
adc FileLen
sta FileLen
iny
lda (pData),y
adc BufLen+1
sta BufLen+1
adc FileLen+1
sta FileLen+1
.8 clc
.9 rts
@ -45,11 +45,11 @@ BUF.InsertTAB jsr BUF.ComputeCOffset
cpy #256-TABLEN
beq .8
lda BufLen
lda FileLen
sec
adc #TABLEN
tay
lda BufLen+1
lda FileLen+1
adc #0
jsr BUF.GetNewYA
@ -71,13 +71,13 @@ BUF.InsertTAB jsr BUF.ComputeCOffset
.3 jsr BUF.CopyTail
.4 lda BufLen
.4 lda FileLen
clc
adc #TABLEN
sta BufLen
sta FileLen
bcc .8
inc BufLen+1
inc FileLen+1
.8 clc
.9 rts
@ -87,11 +87,11 @@ BUF.InsertA sta TmpByte
cpy #255
beq .8
lda BufLen
lda FileLen
clc
adc #2
tay
lda BufLen+1
lda FileLen+1
adc #0
jsr BUF.GetNewYA
@ -108,9 +108,9 @@ BUF.InsertA sta TmpByte
.3 jsr BUF.CopyTail
.4 inc BufLen
.4 inc FileLen
bne .8
inc BufLen+1
inc FileLen+1
.8 clc
.9 rts
@ -118,11 +118,11 @@ BUF.InsertA sta TmpByte
BUF.DelSel jsr BUF.GetSelLen
bcs .8
lda BufLen
lda FileLen
sec
sbc SelLen
tay
lda BufLen+1
lda FileLen+1
sbc SelLen+1
iny
bne .1
@ -142,13 +142,13 @@ BUF.DelSel jsr BUF.GetSelLen
sta BufPtrBackup+1
jsr BUF.CopyTail
lda BufLen
lda FileLen
sec
sbc SelLen
sta BufLen
lda BufLen+1
sta FileLen
lda FileLen+1
sbc SelLen+1
sta BufLen+1
sta FileLen+1
jsr BUF.ResetSel
.8 clc
@ -157,7 +157,7 @@ BUF.DelSel jsr BUF.GetSelLen
* Erase char at CurXY
*--------------------------------------
BUF.DelCharAtCursor
>LDYA BufLen
>LDYA FileLen
jsr BUF.GetNewYA BufferLen-1
bcs .9
@ -173,10 +173,10 @@ BUF.DelCharAtCursor
.4 jsr BUF.CopyTail
lda BufLen
lda FileLen
bne .5
dec BufLen+1
.5 dec BufLen
dec FileLen+1
.5 dec FileLen
jsr BUF.ResetSel
pla Get back deleted char

View File

@ -438,10 +438,10 @@ Ctrl.D jsr BUF.DelSel
Ctrl.Z jsr BUF.ComputeCOffset
lda BUF.COffset
eor BufLen
eor FileLen
bne .1
lda BUF.COffset+1
eor BufLen+1
eor FileLen+1
bne .1
clc

148
BIN/EDIT.S.FILE.txt Normal file
View File

@ -0,0 +1,148 @@
NEW
AUTO 3,1
.LIST OFF
*--------------------------------------
NewFile stz FileLen
stz FileLen+1
clc
rts
*--------------------------------------
LoadFile >PUSHWZ Aux type
>PUSHBZ Type
>PUSHBI O.RDONLY
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL fopen
bcs NewFile
txa
>STA.G hFile
>PUSHEA.G STATBUF
>LDA.G hFile
>SYSCALL fstat
bcs .9
>LDA.G STATBUF+S.STAT.P.TYPE
cmp #S.FI.T.TXT
beq LoadFile.TXT
cmp #$FA S-C/ASM?
bne .91
jmp LoadFile.ASM
>LDA.G hFile
>SYSCALL fclose
.91 lda #MLI.E.INCFF
sec
rts
>LDA.G STATBUF+S.STAT.SIZE+3
dey
ora (pData),y
bne .90
dey
lda (pData),y Size HI
adc #4 1K more
ldy #0 Size LO
>STYA BufLen
>SYSCALL GetMem
>STYA BufPtr
txa
>STA.G hBuffer
ldy #0
ldx #0
.1 lda (BufPtrBackup),y
beq .8
cpx #C.CR
bne .2
cmp #C.LF
beq .5
.2 cmp #C.SPACE
bcs .3
cmp #C.CR
bne .5
.3 sta (BufPtr)
inc BufPtr
bne .4
inc BufPtr+1
.4 inc FileLen
bne .5
inc FileLen+1
.5 tax set previous char
iny
bne .1
inc BufPtrBackup+1
bra .1
.8 sta (BufPtr)
clc
.9 jmp BUF.ResetSel
.90 lda #E.FTB
sec
rts
*--------------------------------------
LoadFile.TXT stz
*--------------------------------------
LoadFile.ASM
lda #MLI.E.INCFF
sec
rts
*--------------------------------------
SaveFile >PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHBI O.CREATE+O.WRONLY
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL FOpen
bcs .9
pha
>PUSHW FileLen
>LDA.G hBuffer
>SYSCALL GetMemPtr
>PUSHYA
pla
pha
>SYSCALL FWrite
bcc .1
tax
pla
phx
>SYSCALL FClose
pla
sec
rts
.1 pla
>SYSCALL FClose
lda #$80
>STA.G bSaved
jsr SCRN.UpdateTopBar
.9 rts
*--------------------------------------
*--------------------------------------
MAN
SAVE USR/SRC/BIN/EDIT.S.FILE
LOAD USR/SRC/BIN/EDIT.S
ASM

View File

@ -291,7 +291,7 @@ SCRN.UpdateStatusBar
>PUSHA
>PUSHW BUF.COffset
>PUSHW BufLen
>PUSHW FileLen
>PUSHBI 7
bra SCRN.UpdateStatusBarOut

View File

@ -22,6 +22,7 @@ BUF.COffset .BS 2
BUF.TmpLine1 .BS 2
BUF.TmpLine2 .BS 2
FileLen .BS 2
BufLen .BS 2
SelLen .BS 2
TmpLen .BS 2
@ -153,7 +154,7 @@ CS.RUN >PUSHBI 0
bcs CS.RUN.RTS
txa
>STA.G hBuffer BufLen already set to 0
>STA.G hBuffer FileLen already set to 0
.3 lda #$ff
>STA.G bSaved
@ -339,99 +340,10 @@ CharIn.Esc >STZ.G bEscMode
sec
rts
*--------------------------------------
LoadFile >PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDONLY
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL LoadTXTFile
bcs .9
txa
>STA.G hBuffer
>SYSCALL GetMemPtr
>STYA BufPtr
>STYA BufPtrBackup
stz BufLen
stz BufLen+1
ldy #0
ldx #0
.1 lda (BufPtrBackup),y
beq .8
cpx #C.CR
bne .2
cmp #C.LF
beq .5
.2 cmp #C.SPACE
bcs .3
cmp #C.CR
bne .5
.3 sta (BufPtr)
inc BufPtr
bne .4
inc BufPtr+1
.4 inc BufLen
bne .5
inc BufLen+1
.5 tax set previous char
iny
bne .1
inc BufPtrBackup+1
bra .1
.8 sta (BufPtr)
clc
.9 jmp BUF.ResetSel
*--------------------------------------
SaveFile >PUSHWZ Aux type
>PUSHBI S.FI.T.TXT
>PUSHBI O.CREATE+O.WRONLY
>LDA.G hFileName
>SYSCALL GetMemPtr
>SYSCALL FOpen
bcs .9
pha
>PUSHW BufLen
>LDA.G hBuffer
>SYSCALL GetMemPtr
>PUSHYA
pla
pha
>SYSCALL FWrite
bcc .1
tax
pla
phx
>SYSCALL FClose
pla
sec
rts
.1 pla
>SYSCALL FClose
lda #$80
>STA.G bSaved
jsr SCRN.UpdateTopBar
.9 rts
*--------------------------------------
.INB USR/SRC/BIN/EDIT.S.BUF
.INB USR/SRC/BIN/EDIT.S.CTRL
.INB USR/SRC/BIN/EDIT.S.FILE
.INB USR/SRC/BIN/EDIT.S.SCRN
*--------------------------------------
CS.END
@ -490,8 +402,10 @@ PromptBufPtr .BS 1
PromptMode .BS 1
bExit .BS 1
bSaved .BS 1
bCRLF .BS 1
bEscMode .BS 1
EscBuffer .BS 16
hFile .BS 1
hFileName .BS 1
hFind .BS 1
hReplace .BS 1
@ -512,6 +426,7 @@ ScreenX .BS 1
ScreenY .BS 2
CurX .BS 1
CurY .BS 1
STATBUF .BS S.STAT
DS.END
.ED
*--------------------------------------

171
BIN/TERM.S.txt Normal file
View File

@ -0,0 +1,171 @@
NEW
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
.TF BIN/TERM
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/ETH.I
.INB INC/LIBTCPIP.I
.INB INC/NET.TELNET.I
*--------------------------------------
TIMEOUT.MAX .EQ 200 20 sec.
BUFSIZE .EQ 256
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
ZPDevName .BS 2
ZPBufPtr .BS 2
ZPBufLen .BS 2
hBuf .BS 1
hDev .BS 1
TimeOut .BS 1
ZS.END
.ED
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA #S.PS.F.EVENT S.PS.F
.DA #0
.DA CS.END-CS.START Code Size (without Constants)
.DA DS.END-DS.START Data Segment Size
.DA #32 Stack Size
.DA #ZS.END-ZS.START Zero Page Size
.DA 0
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.DEVOK .DA MSG.DEVOK
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN lda #1
>SYSCALL ArgV
bcs .9
>STYA ZPDevName
>PUSHWZ auxtype
>PUSHBI 0 type >PUSHBI O.RDWR
>PUSHBI O.RDWR
>LDYA ZPDevName
>SYSCALL fopen
bcs .99
stx hDev
>LDYA L.MSG.DEVOK
>SYSCALL puts
>LDYAI BUFSIZE
>SYSCALL getmem
bcs .99
>STYA ZPBufPtr
stx hBuf
bra CS.RUN.LOOP
.9 >LDYA L.MSG.USAGE
>SYSCALL puts
lda #E.SYN
sec
.99 rts
CS.RUN.LOOP >SLEEP
lda hDev
>SYSCALL feof
bcs .99
tay
bne .2 EOF, no char
>PUSHWI BUFSIZE
>PUSHW ZPBufPtr
lda hDev
>SYSCALL fRead
bcc .1
.99 rts
.1 >PUSHYA len
>PUSHW ZPBufPtr
ldy #S.PS.hStdOut
lda (pPs),y
>SYSCALL fwrite
bcs .9
.2 ldy #S.PS.hStdIn
lda (pPs),y
>SYSCALL feof
bcs .9
tay
bne CS.RUN.LOOP EOF = true, no char from STDIN
>PUSHWI BUFSIZE
>PUSHW ZPBufPtr
ldy #S.PS.hStdIn
lda (pPs),y
>SYSCALL fread
.3 bcs .9
>STYA ZPBufLen
lda (ZPBufPtr)
cmp #$14 Ctrl-T
beq .9
>PUSHW ZPBufLen
>PUSHW ZPBufPtr
lda hDev
>SYSCALL fWrite
bcs .9
jmp CS.RUN.LOOP
.9 rts
*--------------------------------------
CS.DOEVENT lda (pEvent)
bpl .9 is it a TIMER event?
lda TimeOut
beq .9
dec TimeOut
.9 sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT lda hDev
beq .1
>SYSCALL fclose
.1 lda hBuf
beq .2
>SYSCALL freemem
.2 clc
rts
*--------------------------------------
CS.END
MSG.USAGE .AZ "Usage : TERM device "
MSG.DEVOK .AZ "Connected (Exit key is Ctrl-T)"
*--------------------------------------
.DUMMY
.OR 0
DS.START
DS.END
.ED
*--------------------------------------
MAN
SAVE USR/SRC/BIN/TERM.S
ASM

View File

@ -52,7 +52,6 @@ CCLK.START >SHORTMX 8 bit mode.
xce to continue with Prodos 8
rts
savestate .HS 00 state of the state register
.AS "JIMJAYKERRY&MIKE"
*--------------------------------------
CCLK.LEN .EQ *-CCLK.START
MAN

View File

@ -3,10 +3,11 @@ NEW
*--------------------------------------
* Thunderclock driver
* hard coded for slot 1
* $2F00-2F7C moved to $D742
*--------------------------------------
clkmode .EQ $0538 clock mode
rdtcp .EQ $C108 Thunderclock read entry
wttcp .EQ $C10B Thunderclock write entry
*--------------------------------------
TCLK.START ldx TCLK.Cx2+2 clock slot = $C1.
lda clkmode,x save current mode
@ -77,7 +78,7 @@ TCLK.Cx2 jsr rdtcp read month, day of week, day of month
pla restore previous mode.
ldx TCLK.Cx2+2 clock slot = $C1
sta clkmode,x
TCLK.CEND rts
rts
* this table contains entries for the cumulative # of days in a year,
* one entry for each month. the values are modulo 256.
@ -109,7 +110,6 @@ yradj .DA #$12 Monday
.DA #$14 Wednesday
.DA #$13 Tuesday
TCLK.END .HS 000000 pad
TCLK.LEN .EQ *-TCLK.START
*--------------------------------------
MAN

View File

@ -62,7 +62,6 @@ ecde .EQ $1A
wndbtm .EQ $23
pcl .EQ $3A
pch .EQ $3B
A1L .EQ $3C
@ -142,9 +141,6 @@ q6h .EQ $C08D disk port
q7l .EQ $C08E disk port
q7h .EQ $C08F disk port
rdtcp .EQ $C108 Thunderclock read entry
wttcp .EQ $C10B Thunderclock write entry
auxmove .EQ $C311 move (3C)-(3E) to (42)
xfer .EQ $C314

View File

@ -16,19 +16,27 @@ X.Unpak jsr X.Unpak.GetByte CHNK.DATA.T
*--------------------------------------
X.Unpak.STORE jsr X.Unpak.GetULEN
ldx ZPnCnt !LEN LO
ldy #0
.1 lda (ZPInBufPtr),y
iny
.1 inx
bne .2
inc ZPInBufPtr+1
.2 jsr X.Unpak.PutByte
inc ZPnCnt+1
beq .8
.2 lda (ZPInBufPtr),y
sta (ZPOutBufPtr),y
iny
bne .1
inc ZPInBufPtr+1
inc ZPOutBufPtr+1
clc
bra .1
.8 clc
rts
*--------------------------------------
X.Unpak.PAK pha A = BLBITS