diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index f33979cc..57ecb8c0 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ 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