From 3fe962ee0abeaa28667d4434aab53e5041a04f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 26 Mar 2019 12:17:47 +0000 Subject: [PATCH] Kernel 0.93 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ASM.S.OUT.txt | 8 ++- BIN/ASM.S.txt | 8 +-- BIN/CAT.S.txt | 88 ++++++++++++++++----------------- BIN/EDIT.S.txt | 104 ++++++++++++++++++++++----------------- SYS/KERNEL.S.CORE.txt | 18 ++++--- 6 files changed, 120 insertions(+), 106 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 751618b1a21530b4b92c648896d2b1de001cc281..2d8aafcb68bbb2c0f7636765c592f082069844b8 100644 GIT binary patch delta 26523 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 Q8?oQHS1|kG|K;X?07I3WmH+?% delta 23471 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 J!WGW;{{TwRQ$7Fy diff --git a/BIN/ASM.S.OUT.txt b/BIN/ASM.S.OUT.txt index b563f04f..4bd92ecb 100644 --- a/BIN/ASM.S.OUT.txt +++ b/BIN/ASM.S.OUT.txt @@ -74,7 +74,13 @@ OUT.PrintLine jsr OUT.PrintLineOn OUT.PrintLine.1 jsr OUT.PrintLineOutBuf bcs OUT.PrintLine.9 - >PUSHW ZPLineBuf + >LDA.G SRC.LINENUM + cmp #76 + bne .23 + + >DEBUG + +.23 >PUSHW ZPLineBuf >PUSHW.G SRC.LINENUM >PUSHBI 4 >LDYA L.MSG.SRCLINE diff --git a/BIN/ASM.S.txt b/BIN/ASM.S.txt index 953f21b2..ab34552b 100644 --- a/BIN/ASM.S.txt +++ b/BIN/ASM.S.txt @@ -340,13 +340,7 @@ CS.RUN ldy #S.PS.hStdIn .2 jsr SRC.ParseLine bcs .9 - >LDA.G SRC.LINENUM - cmp #76 - bne .23 - - >DEBUG - -.23 jsr OUT.PrintLine + jsr OUT.PrintLine .8 clc rts diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt index 8fff780e..7228fea1 100644 --- a/BIN/CAT.S.txt +++ b/BIN/CAT.S.txt @@ -17,6 +17,17 @@ ZS.START ZPPTR1 .BS 2 ZPBufPtr .BS 2 ByteIndex .BS 1 +ArgCount .BS 1 +FileCount .BS 1 +bPause .BS 1 +bPrintAll .BS 1 +bLineNum .BS 1 +bSuppressBlankLine .BS 1 +ArgIndex .BS 1 +hBuf .BS 1 +hFile .BS 1 +LineNum .BS 2 +bPrintedBlankLine .BS 1 ZS.END .ED *-------------------------------------- * File Header (16 Bytes) @@ -49,13 +60,13 @@ L.ASCII .DA ASCII CS.INIT clc rts *-------------------------------------- -CS.RUN -.1 >INC.G ArgCount +CS.RUN +.1 inc ArgCount + lda ArgCount >SYSCALL ArgV bcs .7 >STYA ZPPtr1 - lda (ZPPtr1) cmp #'-' @@ -80,13 +91,13 @@ CS.RUN .3 ldy OptionVars-1,x lda #$80 - sta (pData),y + sta 0,y bra .1 -.4 >INC.G FileCount +.4 inc FileCount bra .1 scan for any other args -.7 >LDA.G FileCount +.7 lda FileCount beq .99 >LDYAI 256 @@ -94,8 +105,7 @@ CS.RUN bcs .9 >STYA ZPBufPtr - txa - >STA.G hBuf + stx hBuf *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y @@ -113,18 +123,19 @@ CS.RUN.LOOP ldy #S.PS.hStdIn cmp #$13 Ctrl-S bne .10 - >LDA.G bPause + lda bPause eor #$ff - sta (pData),y + sta bPause bne CS.RUN.LOOP -.10 >LDA.G bPause +.10 lda bPause bne CS.RUN.LOOP Pause... -.11 >LDA.G hFILE +.11 lda hFILE bne .2 -.1 >INC.G ArgIndex +.1 inc ArgIndex + lda ArgIndex >SYSCALL ArgV bcs .99 No more arg...the end! @@ -139,11 +150,11 @@ CS.RUN.LOOP ldy #S.PS.hStdIn jsr CS.RUN.OPEN .90 bcs .9 - >STA.G hFILE + sta hFILE .2 >PUSHWI 256 >PUSHW ZPBufPtr - >LDA.G hFILE + lda hFILE >SYSCALL fgets bcs .7 @@ -163,42 +174,41 @@ CS.RUN.LOOP ldy #S.PS.hStdIn .9 sec rts *-------------------------------------- -CS.RUN.OPEN phy - pha +CS.RUN.OPEN pha - lda #0 - >STA.G bPrintedBlankLine Reset this flag for the new file + stz bPrintedBlankLine Reset this flag for the new file >PUSHWI 0 Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT pla - ply >SYSCALL FOpen rts *-------------------------------------- -CS.RUN.PRINT >INCW.G LineNum - - >LDA.G bSuppressBlankLine +CS.RUN.PRINT inc LineNum + bne .10 + inc LineNum+1 + +.10 lda bSuppressBlankLine bpl .2 lda (ZPBufPtr) bne .1 Empty line ? - >LDA.G bPrintedBlankLine + lda bPrintedBlankLine bmi .8 lda #$ff - sta (pData),y + sta bPrintedBlankLine bra .2 -.1 >STZ.G bPrintedBlankLine +.1 stz bPrintedBlankLine .2 jsr CS.RUN.PRINTNUM bcs .99 - >LDA.G bPrintAll + lda bPrintAll bmi .3 >LDYA ZPBufPtr @@ -254,27 +264,24 @@ CS.RUN.PRINT >INCW.G LineNum .9 rts *-------------------------------------- CS.RUN.PRINTNUM clc - >LDA.G bLineNum + lda bLineNum bpl .8 - >PUSHW.G LineNum + >PUSHW LineNum >PUSHBI 2 >LDYA L.MSG.LINENUM >SYSCALL printf .8 rts *-------------------------------------- -CS.QUIT >LDA.G hBuf +CS.QUIT lda hBuf beq CS.RUN.CLOSE >SYSCALL FreeMem -CS.RUN.CLOSE >LDA.G hFILE +CS.RUN.CLOSE lda hFILE beq .8 - pha - lda #0 - sta (pData),y - pla + stz hFILE >SYSCALL FClose .8 clc @@ -332,17 +339,6 @@ ASCII >PSTR "NUL" .DUMMY .OR 0 DS.START -ArgCount .BS 1 -FileCount .BS 1 -bPause .BS 1 -bPrintAll .BS 1 -bLineNum .BS 1 -bSuppressBlankLine .BS 1 -ArgIndex .BS 1 -hBuf .BS 1 -hFile .BS 1 -LineNum .BS 2 -bPrintedBlankLine .BS 1 DS.END .ED *-------------------------------------- diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index 750ba328..6b7a1c79 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -10,11 +10,27 @@ AUTO 4,1 .INB INC/A2OSX.I .INB INC/MLI.I *-------------------------------------- -ZPPTR1 .EQ ZPBIN -ZPPTR2 .EQ ZPBIN+2 -BufPtr .EQ ZPBIN+4 -BufPtrBackup .EQ ZPBIN+6 -ClipboardPtr .EQ ZPBIN+8 + .DUMMY + .OR ZPBIN +ZS.START +ZPPTR1 .BS 2 +ZPPTR2 .BS 2 +BufPtr .BS 2 +BufPtrBackup .BS 2 +ClipboardPtr .BS 2 +hMem .BS 1 +TmpByte .BS 1 +TmpLen .BS 2 +TmpCount .BS 2 +TmpIndex .BS 2 +SelLen .BS 2 +BUF.LOffset .BS 2 +BUF.COffset .BS 2 +BUF.TmpLine1 .BS 2 +BUF.TmpLine2 .BS 2 +bNotRepaint .BS 1 +bSelected .BS 1 +ZS.END .ED *-------------------------------------- PromptBufMax .EQ 64 PromptModeHelp .EQ 2 @@ -33,7 +49,7 @@ CS.START cld .DA CS.END-CS.START CS .DA DS.END-DS.START DS .DA #16 SS - .DA #10 ZP + .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- * Relocation Table @@ -325,16 +341,15 @@ LoadFile >PUSHWI 0 Aux type >SYSCALL GetMemPtr - >SYSCALL LoadFile + >SYSCALL LoadTXTFile bcs .9 stx hMem - >STYA TmpLen iny - bne .2 - inc +1 for ending zero + bne .1 + inc Add 1 for \0 -.2 >SYSCALL GetMem0 +.1 >SYSCALL GetMem bcs .98 >STYA ZPPTR2 @@ -346,36 +361,34 @@ LoadFile >PUSHWI 0 Aux type >SYSCALL GetMemPtr >STYA ZPPTR1 - lda TmpLen - eor #$ff - tax - lda TmpLen+1 - eor #$ff - pha + stz TmpLen + stz TmpLen+1 + ldy #0 + ldx #0 -.5 inx - bne .6 - pla - inc - beq .7 - pha +.2 lda (ZPPTR1),y + beq .8 + + cpx #C.CR + bne .3 + cmp #C.LF + beq .4 -.6 lda (ZPPTR1),y - sta (ZPPTR2),y +.3 jsr PutBytePtr2 + +.4 tax set previous char iny - bne .5 + bne .2 inc ZPPTR1+1 - inc ZPPTR2+1 - bra .5 + bra .2 -.7 ldy #FileLen - lda TmpLen - sta (pData),y - iny - lda TmpLen+1 - sta (pData),y +.8 >LDYA TmpLen + >STYA.G FileLen + lda #0 + jsr PutBytePtr2 set ending \0 + jsr .98 clc rts @@ -387,6 +400,17 @@ LoadFile >PUSHWI 0 Aux type sec .9 rts *-------------------------------------- +PutBytePtr2 sta (ZPPTR2) + inc ZPPTR2 + bne .1 + inc ZPPTR2+1 + +.1 inc TmpLen + bne .8 + inc TmpLen+1 + +.8 rts +*-------------------------------------- SaveFile >PUSHWI 0 Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.CREATE+O.WRONLY @@ -481,18 +505,6 @@ MSG.HELP >PSTR "All commands: (* = Not yet implemented)" MSG.NEWFILE .AZ "(new file)" EscChars >PSTR "DBAC" EscAscii .HS 04080A0B15 -hMem .BS 1 -TmpByte .BS 1 -TmpLen .BS 2 -TmpCount .BS 2 -TmpIndex .BS 2 -SelLen .BS 2 -BUF.LOffset .BS 2 -BUF.COffset .BS 2 -BUF.TmpLine1 .BS 2 -BUF.TmpLine2 .BS 2 -bNotRepaint .BS 1 -bSelected .BS 1 *-------------------------------------- .DUMMY .OR 0 diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 199d923c..b2fda2c1 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -444,16 +444,22 @@ CORE.PSExec lda (pPS) bne CORE.PSResume bit #S.PS.F.RUN + bne .3 + + bit #S.PS.F.QUIT bne .2 - bit #S.PS.F.INIT - bne .1 - - ldx #PS.QUIT + ldx #31 + +.1 stz ZPBIN,x + dex + bpl .1 + + ldx #PS.INIT .HS 2C BIT ABS -.1 ldx #PS.INIT +.2 ldx #PS.QUIT .HS 2C BIT ABS -.2 ldx #PS.RUN +.3 ldx #PS.RUN .HS 2C BIT ABS CORE.PSDoEvent ldx #PS.DOEVENT