From 65be4815e28d7ee0d247323c91b1f4e4a63432ce Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 30 Jan 2024 22:34:07 +0100 Subject: [PATCH] File converters... --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/MAC2UNIX.S.txt | 433 +++++++++++++++++++++++++++++++++++++++ BIN/UNIX2MAC.S.txt | 433 +++++++++++++++++++++++++++++++++++++++ INC/A2osX.I.txt | 1 + 4 files changed, 867 insertions(+) create mode 100644 BIN/MAC2UNIX.S.txt create mode 100644 BIN/UNIX2MAC.S.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5422a785396ecf6714b30575e52ad823cf1afad5..d4b8bc64aaea7f2f671610568ea49d1b5f27fe07 100644 GIT binary patch delta 373897 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 delta 353008 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ o1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#~E{~&PMowx7*0Gn6}Pyhe` diff --git a/BIN/MAC2UNIX.S.txt b/BIN/MAC2UNIX.S.txt new file mode 100644 index 00000000..7849378b --- /dev/null +++ b/BIN/MAC2UNIX.S.txt @@ -0,0 +1,433 @@ +NEW + AUTO 3,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF bin/mac2unix +*-------------------------------------- + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.i + .INB inc/mli.i + .INB inc/mli.e.i +*-------------------------------------- +X.ENTER.SUBDIR .EQ 0 +X.COPY.TO.DEST .EQ 0 +X.DELETE.SOURCE .EQ 0 +X.RESET.SRC.DIR .EQ 0 +*-------------------------------------- + .DUMMY + .OR ZPBIN +ZS.START +ZPPtr1 .BS 2 +ZPPtr2 .BS 2 +ZPFileName .BS 2 +ZPFileStat .BS 2 + +ZPFullPath .BS 2 +ZPRelPath .BS 2 +ZPFileBuf .BS 2 + +ArgIndex .BS 1 +hFile .BS 1 + +FilePos .BS 4 + +ByteCnt .BS 2 + +bPause .BS 1 +bContinue .BS 1 +bRecurse .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 0 + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data SegmentSize + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size + .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.CRLF .DA MSG.CRLF +L.MSG.ERR .DA MSG.ERR + .DA 0 +*-------------------------------------- +CS.INIT clc + rts +*-------------------------------------- +CS.RUN inc ArgIndex + lda ArgIndex + >SYSCALL ArgV + bcs .5 + + >STYA ZPPtr1 + lda (ZPPtr1) + cmp #'-' + bne .4 + + jsr CS.RUN.CheckOpt + bcc CS.RUN + +.9 >LDYA L.MSG.USAGE + >SYSCALL PutS + lda #E.SYN + sec + rts + +.4 >LDA.G hSrcBasePath + bne .9 + + >LDYA ZPPtr1 + jsr X.InitSrcDirYA + bcc CS.RUN + +.99 rts +*-------------------------------------- +.5 >LDA.G hSrcBasePath + bne .6 + + ldy #S.PS.hCWD + lda (pPS),y + >SYSCALL GetMemPtr + >STYA ZPPtr1 + +.6 >LDYAI 256 + >SYSCALL Malloc + bcs .99 + + >STYA ZPFullPath + + >LDA.G hSrcBasePath + >SYSCALL GetMemPtr + >STYA ZPPtr1 + + ldy #$ff + +.80 iny + lda (ZPPtr1),y + bne .80 + + tya + clc + adc ZPFullPath + sta ZPRelPath + lda ZPFullPath+1 + adc #0 + sta ZPRelPath+1 + + >LDYAI 256 + >SYSCALL Malloc + bcs .99 + + >STYA ZPFileBuf +*-------------------------------------- +CS.RUN.LOOP jsr CS.RUN.CheckSTDIN + bcs .99 + + jsr X.GetEntry + bcs .9 + + ldy #S.STAT.P.DRIVE + lda (ZPFileStat),y ProDOS Device ? + beq .5 + + jsr CS.RUN.DEV + bcc CS.RUN.LOOP + + rts + +.5 ldy #S.STAT.MODE+1 + lda (ZPFileStat),y + and #$F0 + cmp /S.STAT.MODE.DIR + bne .6 + + jsr CS.RUN.DIR + bcs .99 + + bra .8 + +.6 jsr CS.RUN.FILE + bcs .99 + + bra .8 + +.9 jsr X.LeaveSubDir + bcs .90 + + jsr X.BasePath.. +.8 jsr X.GetNextEntry + jmp CS.RUN.LOOP + +.90 lda #0 + sec +.99 rts +*-------------------------------------- +CS.RUN.CheckSTDIN + ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .9 + + tay + bne .1 + + >SYSCALL GetChar + bcs .9 + + cmp #$03 Ctrl-C + beq .9 Abort.... + + cmp #$13 Ctrl-S + bne .1 + + lda bPause + eor #$ff + sta bPause + bne CS.RUN.CheckSTDIN + + clc + rts + +.1 lda bPause + bne CS.RUN.CheckSTDIN Pause... + +* clc + +.9 rts +*-------------------------------------- +CS.RUN.DIR lda bRecurse + bpl .8 + + lda (ZPFileName) + cmp #'.' + beq .8 + + >LDYA ZPFileName + jsr X.EnterSubDirYA + jmp CS.RUN.CheckErr + +.8 clc + rts +*-------------------------------------- +CS.RUN.DEV +.8 jsr X.GetNextEntry + +CS.RUN.DEV.CLC.RTS + clc + rts +*-------------------------------------- +CS.RUN.FILE jsr X.IncludeMatch + bcs CS.RUN.DEV.CLC.RTS no match, skip.... + + jsr CS.RUN.GetFilePath + + jsr CS.RUN.OpenFile + bcs .9 + + jsr CS.RUN.FILE.LOOP + bcs .7 + + jmp CS.RUN.CloseFile + +.8 clc + rts + +.7 pha + jsr CS.RUN.CloseFile + pla + sec +.9 jmp CS.RUN.CheckErr + +.99 rts +*-------------------------------------- +CS.RUN.FILE.LOOP +.1 >PUSHB hFile + >PUSHW ZPFileBuf + >PUSHWI 256 + >SYSCALL FRead + bcs .8 + + >STYA ByteCnt + + jsr CS.RUN.FILE.MOD + + jsr CS.RUN.FSeek + bcs .99 + + >PUSHB hFile + >PUSHW ZPFileBuf + >PUSHW ByteCnt + >SYSCALL FWrite + bcs .99 + + lda ByteCnt +* clc + adc FilePos + sta FilePos + lda ByteCnt+1 + adc FilePos+1 + sta FilePos+1 + bcc .1 + + inc FilePos+2 + bne .1 + + inc FilePos+3 + jmp .1 + +.8 cmp #MLI.E.EOF + bne .99 + + clc + +.99 rts +*-------------------------------------- +CS.RUN.FILE.MOD ldy #0 + +.2 lda (ZPFileBuf),y + cmp #C.LF + bne .3 + + lda #C.CR + sta (ZPFileBuf),y + +.3 iny + cpy ByteCnt + bne .2 + + rts +*-------------------------------------- +CS.RUN.CheckErr bcc .9 + + pha + >PUSHW L.MSG.ERR + >PUSHA + >PUSHBI 1 + >SYSCALL PrintF + lda bContinue + eor #$80 + asl + pla + +.9 rts +*-------------------------------------- +CS.RUN.GetFilePath + >PUSHW ZPFullPath + >LDA.G hSrcBasePath + >SYSCALL GetMemPtr + >PUSHYA + >SYSCALL StrCpy + + >PUSHW ZPFullPath + >PUSHW ZPFileName + >SYSCALL StrCat + rts +*-------------------------------------- +CS.RUN.OpenFile >PUSHW ZPFullPath + >PUSHBI O.RDWR+O.APPEND + >PUSHBI 0 Type + >PUSHWZ Aux type + >SYSCALL FOpen + bcs CS.RUN.FSeek.9 + + sta hFile + + stz FilePos + stz FilePos+1 + stz FilePos+2 + stz FilePos+3 + +CS.RUN.FSeek >PUSHB hFile + >PUSHL FilePos + >PUSHBI SEEK.SET + >SYSCALL fseek + +CS.RUN.FSeek.9 rts +*-------------------------------------- +CS.RUN.CloseFile + lda hFile + >SYSCALL FClose + bcs .9 + + stz hFile + +.9 rts +*-------------------------------------- +CS.DOEVENT sec + rts +*-------------------------------------- +CS.QUIT jsr X.LeaveSubDir + bcc CS.QUIT + + >LDA.G hInclude + beq .1 + + >SYSCALL FreeMem + +.1 >LDYA ZPFileBuf + >SYSCALL Free + +.2 >LDYA ZPFullPath + >SYSCALL Free + +.8 clc + rts +*-------------------------------------- +CS.RUN.CheckOpt ldy #1 + lda (ZPPtr1),y + + ldx #OptionVars-OptionList-1 + +.2 cmp OptionList,x + beq .3 + + dex + bpl .2 + + sec + rts + +.3 ldy OptionVars,x + lda #$ff + sta 0,y + clc + rts +*-------------------------------------- + .INB usr/src/shared/x.fileenum.s +*-------------------------------------- +CS.END +*-------------------------------------- +OptionList .AS "CRcr" +OptionVars .DA #bContinue,#bRecurse + .DA #bContinue,#bRecurse +*-------------------------------------- +MSG.USAGE .CS "Usage : MAC2UNIX File(s) (*,? wildcards allowed)\r\n" + .CS " -C : Continue on error\r\n" + .CS " -R : Recurse subdirectories\r\n" +MSG.CRLF .CZ "\r\n" +MSG.ERR .CZ "[%h]\r\n" +*-------------------------------------- + .DUMMY + .OR 0 +DS.START + .INB usr/src/shared/x.fileenum.g + +DS.END .ED +*-------------------------------------- +MAN +SAVE usr/src/bin/mac2unix.s +ASM diff --git a/BIN/UNIX2MAC.S.txt b/BIN/UNIX2MAC.S.txt new file mode 100644 index 00000000..6dc40483 --- /dev/null +++ b/BIN/UNIX2MAC.S.txt @@ -0,0 +1,433 @@ +NEW + AUTO 3,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF bin/unix2mac +*-------------------------------------- + .INB inc/macros.i + .INB inc/a2osx.i + .INB inc/kernel.i + .INB inc/mli.i + .INB inc/mli.e.i +*-------------------------------------- +X.ENTER.SUBDIR .EQ 0 +X.COPY.TO.DEST .EQ 0 +X.DELETE.SOURCE .EQ 0 +X.RESET.SRC.DIR .EQ 0 +*-------------------------------------- + .DUMMY + .OR ZPBIN +ZS.START +ZPPtr1 .BS 2 +ZPPtr2 .BS 2 +ZPFileName .BS 2 +ZPFileStat .BS 2 + +ZPFullPath .BS 2 +ZPRelPath .BS 2 +ZPFileBuf .BS 2 + +ArgIndex .BS 1 +hFile .BS 1 + +FilePos .BS 4 + +ByteCnt .BS 2 + +bPause .BS 1 +bContinue .BS 1 +bRecurse .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 0 + .DA CS.END-CS.START Code Size (without Constants) + .DA DS.END-DS.START Data SegmentSize + .DA #64 Stack Size + .DA #ZS.END-ZS.START Zero Page Size + .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.CRLF .DA MSG.CRLF +L.MSG.ERR .DA MSG.ERR + .DA 0 +*-------------------------------------- +CS.INIT clc + rts +*-------------------------------------- +CS.RUN inc ArgIndex + lda ArgIndex + >SYSCALL ArgV + bcs .5 + + >STYA ZPPtr1 + lda (ZPPtr1) + cmp #'-' + bne .4 + + jsr CS.RUN.CheckOpt + bcc CS.RUN + +.9 >LDYA L.MSG.USAGE + >SYSCALL PutS + lda #E.SYN + sec + rts + +.4 >LDA.G hSrcBasePath + bne .9 + + >LDYA ZPPtr1 + jsr X.InitSrcDirYA + bcc CS.RUN + +.99 rts +*-------------------------------------- +.5 >LDA.G hSrcBasePath + bne .6 + + ldy #S.PS.hCWD + lda (pPS),y + >SYSCALL GetMemPtr + >STYA ZPPtr1 + +.6 >LDYAI 256 + >SYSCALL Malloc + bcs .99 + + >STYA ZPFullPath + + >LDA.G hSrcBasePath + >SYSCALL GetMemPtr + >STYA ZPPtr1 + + ldy #$ff + +.80 iny + lda (ZPPtr1),y + bne .80 + + tya + clc + adc ZPFullPath + sta ZPRelPath + lda ZPFullPath+1 + adc #0 + sta ZPRelPath+1 + + >LDYAI 256 + >SYSCALL Malloc + bcs .99 + + >STYA ZPFileBuf +*-------------------------------------- +CS.RUN.LOOP jsr CS.RUN.CheckSTDIN + bcs .99 + + jsr X.GetEntry + bcs .9 + + ldy #S.STAT.P.DRIVE + lda (ZPFileStat),y ProDOS Device ? + beq .5 + + jsr CS.RUN.DEV + bcc CS.RUN.LOOP + + rts + +.5 ldy #S.STAT.MODE+1 + lda (ZPFileStat),y + and #$F0 + cmp /S.STAT.MODE.DIR + bne .6 + + jsr CS.RUN.DIR + bcs .99 + + bra .8 + +.6 jsr CS.RUN.FILE + bcs .99 + + bra .8 + +.9 jsr X.LeaveSubDir + bcs .90 + + jsr X.BasePath.. +.8 jsr X.GetNextEntry + jmp CS.RUN.LOOP + +.90 lda #0 + sec +.99 rts +*-------------------------------------- +CS.RUN.CheckSTDIN + ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .9 + + tay + bne .1 + + >SYSCALL GetChar + bcs .9 + + cmp #$03 Ctrl-C + beq .9 Abort.... + + cmp #$13 Ctrl-S + bne .1 + + lda bPause + eor #$ff + sta bPause + bne CS.RUN.CheckSTDIN + + clc + rts + +.1 lda bPause + bne CS.RUN.CheckSTDIN Pause... + +* clc + +.9 rts +*-------------------------------------- +CS.RUN.DIR lda bRecurse + bpl .8 + + lda (ZPFileName) + cmp #'.' + beq .8 + + >LDYA ZPFileName + jsr X.EnterSubDirYA + jmp CS.RUN.CheckErr + +.8 clc + rts +*-------------------------------------- +CS.RUN.DEV +.8 jsr X.GetNextEntry + +CS.RUN.DEV.CLC.RTS + clc + rts +*-------------------------------------- +CS.RUN.FILE jsr X.IncludeMatch + bcs CS.RUN.DEV.CLC.RTS no match, skip.... + + jsr CS.RUN.GetFilePath + + jsr CS.RUN.OpenFile + bcs .9 + + jsr CS.RUN.FILE.LOOP + bcs .7 + + jmp CS.RUN.CloseFile + +.8 clc + rts + +.7 pha + jsr CS.RUN.CloseFile + pla + sec +.9 jmp CS.RUN.CheckErr + +.99 rts +*-------------------------------------- +CS.RUN.FILE.LOOP +.1 >PUSHB hFile + >PUSHW ZPFileBuf + >PUSHWI 256 + >SYSCALL FRead + bcs .8 + + >STYA ByteCnt + + jsr CS.RUN.FILE.MOD + + jsr CS.RUN.FSeek + bcs .99 + + >PUSHB hFile + >PUSHW ZPFileBuf + >PUSHW ByteCnt + >SYSCALL FWrite + bcs .99 + + lda ByteCnt +* clc + adc FilePos + sta FilePos + lda ByteCnt+1 + adc FilePos+1 + sta FilePos+1 + bcc .1 + + inc FilePos+2 + bne .1 + + inc FilePos+3 + jmp .1 + +.8 cmp #MLI.E.EOF + bne .99 + + clc + +.99 rts +*-------------------------------------- +CS.RUN.FILE.MOD ldy #0 + +.2 lda (ZPFileBuf),y + cmp #C.CR + bne .3 + + lda #C.LF + sta (ZPFileBuf),y + +.3 iny + cpy ByteCnt + bne .2 + + rts +*-------------------------------------- +CS.RUN.CheckErr bcc .9 + + pha + >PUSHW L.MSG.ERR + >PUSHA + >PUSHBI 1 + >SYSCALL PrintF + lda bContinue + eor #$80 + asl + pla + +.9 rts +*-------------------------------------- +CS.RUN.GetFilePath + >PUSHW ZPFullPath + >LDA.G hSrcBasePath + >SYSCALL GetMemPtr + >PUSHYA + >SYSCALL StrCpy + + >PUSHW ZPFullPath + >PUSHW ZPFileName + >SYSCALL StrCat + rts +*-------------------------------------- +CS.RUN.OpenFile >PUSHW ZPFullPath + >PUSHBI O.RDWR+O.APPEND + >PUSHBI 0 Type + >PUSHWZ Aux type + >SYSCALL FOpen + bcs CS.RUN.FSeek.9 + + sta hFile + + stz FilePos + stz FilePos+1 + stz FilePos+2 + stz FilePos+3 + +CS.RUN.FSeek >PUSHB hFile + >PUSHL FilePos + >PUSHBI SEEK.SET + >SYSCALL fseek + +CS.RUN.FSeek.9 rts +*-------------------------------------- +CS.RUN.CloseFile + lda hFile + >SYSCALL FClose + bcs .9 + + stz hFile + +.9 rts +*-------------------------------------- +CS.DOEVENT sec + rts +*-------------------------------------- +CS.QUIT jsr X.LeaveSubDir + bcc CS.QUIT + + >LDA.G hInclude + beq .1 + + >SYSCALL FreeMem + +.1 >LDYA ZPFileBuf + >SYSCALL Free + +.2 >LDYA ZPFullPath + >SYSCALL Free + +.8 clc + rts +*-------------------------------------- +CS.RUN.CheckOpt ldy #1 + lda (ZPPtr1),y + + ldx #OptionVars-OptionList-1 + +.2 cmp OptionList,x + beq .3 + + dex + bpl .2 + + sec + rts + +.3 ldy OptionVars,x + lda #$ff + sta 0,y + clc + rts +*-------------------------------------- + .INB usr/src/shared/x.fileenum.s +*-------------------------------------- +CS.END +*-------------------------------------- +OptionList .AS "CRcr" +OptionVars .DA #bContinue,#bRecurse + .DA #bContinue,#bRecurse +*-------------------------------------- +MSG.USAGE .CS "Usage : UNIX2MAC File(s) (*,? wildcards allowed)\r\n" + .CS " -C : Continue on error\r\n" + .CS " -R : Recurse subdirectories\r\n" +MSG.CRLF .CZ "\r\n" +MSG.ERR .CZ "[%h]\r\n" +*-------------------------------------- + .DUMMY + .OR 0 +DS.START + .INB usr/src/shared/x.fileenum.g + +DS.END .ED +*-------------------------------------- +MAN +SAVE usr/src/bin/unix2mac.s +ASM diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index bcbaa643..66859547 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -319,6 +319,7 @@ SYS.SListNew .EQ $EE *--------------------------------------F0 * MEM SYS.GetMem .EQ $F0 +SYS.Malloc .EQ $F0 SYS.Realloc .EQ $F2 SYS.GetMemPtr .EQ $F4 SYS.FreeMem .EQ $F6