From 714a4bdff2a874975ae4daa2650e97a4517cb93d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 6 Nov 2019 14:14:42 +0100 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/EDIT.S.BUF.txt | 50 +++++------ BIN/EDIT.S.CTRL.txt | 4 +- BIN/EDIT.S.FILE.txt | 148 +++++++++++++++++++++++++++++++ BIN/EDIT.S.SCRN.txt | 2 +- BIN/EDIT.S.txt | 97 ++------------------ BIN/TERM.S.txt | 171 ++++++++++++++++++++++++++++++++++++ ProDOS.FX/ProDOS.S.CCLK.txt | 1 - ProDOS.FX/ProDOS.S.TCLK.txt | 8 +- ProDOS.FX/ProDOS.S.txt | 4 - SHARED/X.UNPAK.S.txt | 24 +++-- 11 files changed, 373 insertions(+), 136 deletions(-) create mode 100644 BIN/EDIT.S.FILE.txt create mode 100644 BIN/TERM.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f33979cc9d05a451f0fa1fcc1df7b031996e3fb2..57ecb8c0009482d43e84a4f1c5c6acad81bebfe2 100644 GIT binary patch delta 18375 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 Y*8tZ6zX5&+`~mnA@E7+uy}?cYe=~nG5&!@I delta 16908 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 YtAJ~OKLCFM{sR0B_=kIn4s!AT2it8O00000 diff --git a/BIN/EDIT.S.BUF.txt b/BIN/EDIT.S.BUF.txt index 0fe884f9..2cf657c3 100644 --- a/BIN/EDIT.S.BUF.txt +++ b/BIN/EDIT.S.BUF.txt @@ -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 diff --git a/BIN/EDIT.S.CTRL.txt b/BIN/EDIT.S.CTRL.txt index edfc0c90..04e32428 100644 --- a/BIN/EDIT.S.CTRL.txt +++ b/BIN/EDIT.S.CTRL.txt @@ -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 diff --git a/BIN/EDIT.S.FILE.txt b/BIN/EDIT.S.FILE.txt new file mode 100644 index 00000000..29c0a630 --- /dev/null +++ b/BIN/EDIT.S.FILE.txt @@ -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 diff --git a/BIN/EDIT.S.SCRN.txt b/BIN/EDIT.S.SCRN.txt index b6473ccc..8bc8feba 100644 --- a/BIN/EDIT.S.SCRN.txt +++ b/BIN/EDIT.S.SCRN.txt @@ -291,7 +291,7 @@ SCRN.UpdateStatusBar >PUSHA >PUSHW BUF.COffset - >PUSHW BufLen + >PUSHW FileLen >PUSHBI 7 bra SCRN.UpdateStatusBarOut diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index b60663b5..6312e30e 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -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 *-------------------------------------- diff --git a/BIN/TERM.S.txt b/BIN/TERM.S.txt new file mode 100644 index 00000000..d4d2c3e6 --- /dev/null +++ b/BIN/TERM.S.txt @@ -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 diff --git a/ProDOS.FX/ProDOS.S.CCLK.txt b/ProDOS.FX/ProDOS.S.CCLK.txt index ba12763d..27ebffe2 100644 --- a/ProDOS.FX/ProDOS.S.CCLK.txt +++ b/ProDOS.FX/ProDOS.S.CCLK.txt @@ -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 diff --git a/ProDOS.FX/ProDOS.S.TCLK.txt b/ProDOS.FX/ProDOS.S.TCLK.txt index 18e2c6ad..96fe3709 100644 --- a/ProDOS.FX/ProDOS.S.TCLK.txt +++ b/ProDOS.FX/ProDOS.S.TCLK.txt @@ -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 diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index 11700850..4256e80b 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -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 diff --git a/SHARED/X.UNPAK.S.txt b/SHARED/X.UNPAK.S.txt index 2e8a8253..83062e5d 100644 --- a/SHARED/X.UNPAK.S.txt +++ b/SHARED/X.UNPAK.S.txt @@ -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