From 627ba988124761bbc320cf4d3881ff0d9ed5785b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 1 Nov 2016 15:36:32 +0100 Subject: [PATCH] Kernel version 0.8 : new CAT command, see README.md --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes BIN/CAT.S.txt | 406 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 406 insertions(+) create mode 100644 BIN/CAT.S.txt diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 9c83b9b9b527c9b01f424b97e8529ecee4b3a7d1..a0139b042a7e3fe455f89a7b4da21064106e5ea7 100644 GIT binary patch delta 1682 zcmaJ>YfKbZ6rMZ7@{&a=SXNZLduLggU9kAxkk-z=2802GS$wqCtc_JjY^w-OV@-CW zVv(-6yJJe5)O4Ik!W!1hLR0#pZTbUPlG@Rvrdl#7TYG048~xLpoO{3f zoik_7oW}&GGJ{i@N=X{X8Mdaq2l!{)#8WHnX95uG2x1<=nQ7t|g4khpTSk=M0Cp?`1@?+r9L4q@g6#=908lG!a1%-xnmI zdM|~=SG(;XEcSLk8@N<1cR=FnF6R;UiUedL!6tWv)06Kgqxk9gIykr%cDawZWMasrq3=UBHFx0iknMs?P48CkA9TQ* zH~U?Vc2}1xe0|y-#IM5Imip>u7=^#X3+6RU z6SIlg#`G{Jn7d^U${v>CuHq9`pJ_weLzH2)>1r-B)*Bo3t6;KT@EVhqVF+Dh@sZ9N< zgKP}`EX80R2ID$dsFEf>_FN1YBCm|kPM*f2TmOt2Buo%aWSK>Tg? zmU#89<$Vtrkne3A8SsFuK+GctMgRwz78KHM=aWN1q+cc|;w@^VZ43B#^KyaAPW2Lk zT`&)E=p{6Z=Fme#5UIvEzK_PeQE`4Bt$E}7=)Ot?EH((}nt=K?Dqvw?6N&{RDEQ?} zJ01Kq-cD=RhiqAyQJcvx5eZcJrUdZ5TS~_jXCy-c6-7|0%aj&{s4d$a(oSXQ5I`v0sb%<5p;E%>}<|OmgOg+;ZQbX(T>-p9Usg(2`R>0{%$r?`; z@p6gq3X#^(!t<2SSVIZEEtFT6Mjz#EXri3%I?CncNtZzRoGy~*$W1mDzT$5btk9pNOO0wdrH@Tl`2M<7zN delta 1377 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 delta 10149 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 EKOROj;Q#;t diff --git a/BIN/CAT.S.txt b/BIN/CAT.S.txt new file mode 100644 index 00000000..092561ad --- /dev/null +++ b/BIN/CAT.S.txt @@ -0,0 +1,406 @@ +PR#3 +PREFIX /A2OSX.SRC +NEW +INC 1 +AUTO 6 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF /A2OSX.BOOT/BIN/CAT +*-------------------------------------- + .INB /A2OSX.DEV/INC/MACROS.I + .INB /A2OSX.DEV/INC/A2OSX.I + .INB /A2OSX.DEV/INC/PRODOS.I +*-------------------------------------- +ZPPTR1 .EQ ZPBIN +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp (.1,x) + .DA #$61 6502,Level 1 (65c02) + .DA #1 BIN Layout Version 1 + .DA 0 + .DA CS.END-CS.START Code Length To Relocate + .DA DS.END-DS.START Data Segment to Allocate + .DA 0 + .DA 0 +*-------------------------------------- +* Relocation Table +*-------------------------------------- +.1 .DA CS.INIT + .DA CS.RUN + .DA CS.DOEVENT + .DA CS.QUIT +L.MSG.USAGE .DA MSG.USAGE +L.MSG.LINENUM .DA MSG.LINENUM +L.MSG.CTRLCHAR .DA MSG.CTRLCHAR +L.ASCII .DA ASCII + .DA 0 +*-------------------------------------- +CS.INIT >SYSCALL GetArgC + sta ArgCount + cmp #1 + beq .99 + +.1 dec ArgCount + beq .5 + + lda ArgCount + >SYSCALL GetArgA + >STYA ZPPtr1 + + ldy #1 + lda (ZPPtr1),y + cmp #'-' + bne .4 + + lda (ZPPtr1) + cmp #2 + bne .4 + + iny + lda (ZPPtr1),y + + ldx OptionList + +.2 cmp OptionList,x + beq .3 + dex + bne .2 + +.99 >LDYA L.MSG.USAGE + >SYSCALL PrintFYA + lda #SYSMGR.ERRSYN + sec + rts + +.3 ldy OptionVars-1,x + lda #$80 + sta (pData),y + bra .1 + +.4 inc FileCount + bra .1 scan for any other args + +.5 lda FileCount + beq .99 + +.8 lda (pPs) + ora #S.PS.F.EVENT Now accept events + sta (pPs) + + clc + rts +*-------------------------------------- +CS.RUN ldy #bCANCEL + lda (pData),y + bmi .99 + + ldy #bSTOP + lda (pData),y + bmi .8 + + ldy #hFILE + lda (pData),y + bne .2 + +.1 ldy #ArgIndex + lda (pData),y + inc + sta (pData),y + >SYSCALL GetArgA + bcs .99 No more arg...the end! + + >STYA ZPPtr1 + + ldy #1 + lda (ZPPtr1),y + cmp #'-' + beq .1 An option, skip... + + >LDYA ZPPtr1 + + jsr CS.RUN.OPEN + bcs .9 + + ldy #hFILE + sta (pData),y + + clc + rts + +.2 pha + >PUSHWI UsrBuf256 + >PUSHWI 256 + pla + >PUSHA + >SYSCALL FRead + bcc CS.RUN.PRINT + + cmp #MLI.ERR.EOF + bne .9 + + ldy #hFILE + lda (pData),y + pha + lda #0 + sta (pData),y + pla + >SYSCALL FCloseA + +.8 clc + rts + +.99 lda #0 Exit with no Error +.9 sec + rts +*-------------------------------------- +CS.RUN.PRINT sty BytesRead Y,A = Bytes read + stz ByteIndex + + ldy #bLineNum + lda (pData),y + bpl .10 + + ldy #LineNum + lda (pData),y + clc + adc #1 + sta (pData),y + pha + + iny + lda (pData),y + adc #0 + sta (pData),y + ply + + >PUSHYA + >LDYA L.MSG.LINENUM + >SYSCALL PrintFYA + bcc .10 + rts +* bcs .9 + +.10 lda BytesRead + beq .12 + dec + bne .1 Only CR ? + lda UsrBuf256 + cmp #13 + bne .1 + +.12 ldy #bSuppress + lda (pData),y + bpl .8 + + ldy #bPrintedBlankLine + lda (pData),y + bpl .11 + clc + rts + +.11 lda #$ff + sta (pData),y + bra .8 + +.1 ldy #bPrintedBlankLine + lda #0 + sta (pData),y + +.20 ldx ByteIndex + lda UsrBuf256,x + cmp #' ' + bcs .6 + + ldy #bPrintAll + lda (pData),y + bpl .7 + + >LDYA L.ASCII + >STYA ZPPtr1 + + lda UsrBuf256,x + tax + +.2 dex + bmi .3 + + lda ZPPtr1 + sec + adc (ZPPtr1) + sta ZPPtr1 + bcc .2 + inc ZPPtr1+1 + bra .2 + +.3 >PUSHW ZPPtr1 + >LDYA L.MSG.CTRLCHAR + >SYSCALL PrintFYA + bcs .9 + + bra .7 + +.6 >SYSCALL COutA + bcs .9 + +.7 inc ByteIndex + dec BytesRead + bne .20 + +.8 lda #13 + >SYSCALL COutA + +.9 rts +*-------------------------------------- +CS.RUN.OPEN >SYSCALL GetFullPathYA + bcs .9 + stx hFullPath + pha + + >PUSHWI 0 Aux type + >PUSHBI 4 S.FILEINFO.TYPE.TXT + >PUSHBI SYS.FOPEN.R+SYS.FOPEN.T + + pla + >PUSHYA + >SYSCALL FOPEN + bcs .99 + + jsr .99 + + pha + ldy #LineNum + lda #0 + sta (pData),y + iny + sta (pData),y + + ldy #bPrintedBlankLine + sta (pData),y + + pla + clc + rts + +.99 pha + lda hFullPath + >SYSCALL FreeMemA + pla +.9 sec + rts +*-------------------------------------- +CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device? + lda (pEvent),y + ldy #S.PS.hINDEV + cmp (pPs),y + bne .9 + + lda (pEvent) + and #S.EVT.F.KEY is it a KEY event? + beq .9 + + ldy #S.EVT.DATAHI is it an O or SAPPLE key ? + lda (pEvent),y + bne .9 + + ldy #S.EVT.DATALO + lda (pEvent),y + cmp #$03 Ctrl-C + bne .1 + + lda #$FF + ldy #bCANCEL + sta (pData),y + bra .8 + +.1 cmp #$13 Ctrl-S + bne .8 + + ldy #bSTOP + lda (pData),y + eor #$FF + sta (pData),y + +.8 clc + rts + +.9 sec + rts +*-------------------------------------- +CS.QUIT ldy #hFILE + lda (pData),y + beq .8 + + >SYSCALL FCloseA + +.8 clc + rts +*-------------------------------------- +CS.END +*-------------------------------------- +OptionList >PSTR "ANS" +OptionVars .DA #bPrintAll,#bLineNum,#bSuppress +*-------------------------------------- +MSG.USAGE >CSTR "Usage : CAT File1 [File2...]\n -A : Show All non printable caracters\n -N : Number all output lines\n -S : Suppress repeated empty output lines\n" +MSG.LINENUM >CSTR "%5D:" +MSG.CTRLCHAR >CSTR "[%S]" +*-------------------------------------- +ASCII >PSTR "NULL" + >PSTR "SOH" + >PSTR "STX" + >PSTR "ETX" + >PSTR "EOT" + >PSTR "ENQ" + >PSTR "ACK" + >PSTR "BEL" + >PSTR "BS" + >PSTR "TAB" + >PSTR "LF" + >PSTR "VT" + >PSTR "FF" + >PSTR "CR" + >PSTR "SO" + >PSTR "SI" + >PSTR "DLE" + >PSTR "DC1" + >PSTR "DC2" + >PSTR "DC3" + >PSTR "DC4" + >PSTR "NAK" + >PSTR "SYN" + >PSTR "ETB" + >PSTR "CAN" + >PSTR "EM" + >PSTR "SUB" + >PSTR "ESC" + >PSTR "FS" + >PSTR "GS" + >PSTR "RS" + >PSTR "US" +*-------------------------------------- +ArgCount .BS 1 +FileCount .BS 1 +hFullPath .BS 1 +BytesRead .BS 1 +ByteIndex .BS 1 +*-------------------------------------- + .DUMMY + .OR 0 +DS.START +bCANCEL .BS 1 +bSTOP .BS 1 +bPrintAll .BS 1 +bLineNum .BS 1 +bSuppress .BS 1 +ArgIndex .BS 1 +hFILE .BS 1 +LineNum .BS 2 +bPrintedBlankLine .BS 1 +DS.END + .ED +*-------------------------------------- +MAN +SAVE BIN/CAT.S +ASM