From 9222922ed384245a80fcd276d6e7b6fa22785800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 19 Aug 2016 16:52:18 +0200 Subject: [PATCH] VCPU16 removed from Relocator & LIB/LIBCRYPT.S --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes LIB/LIBCRYPT.S.txt | 50 +++++++++-------- SYS/KERNEL.S.BIN.txt | 53 +++++------------- SYS/KERNEL.S.FIO.txt | 78 +++++++++++++------------- SYS/KERNEL.S.REL.txt | 128 +++++++++++++++++++++++++++---------------- 6 files changed, 164 insertions(+), 145 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 50aa342433f04f901ebbbb49402f650a79bb9558..9716abdb7b339b7b458a852be4182b0e2e4e0d26 100644 GIT binary patch delta 3765 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 delta 3285 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 diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 07a5ff0b57068034ad06a91b0f4afc210230b03d..2c50441b6db3a34638d0aab69b532a86c59dd7d1 100644 GIT binary patch delta 15933 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 S.MD5.SIZE MD5Update >PULLA get MD5 Context >SYSCALL SYS.GetMemPtrA >STYA ZPTmpPtr1 get MD5 Context - >PULLW R.AX get DATA - >PULLW R.BX get LEN + >PULLW ZPDataPtr get DATA + >PULLW ZPDataLen get LEN ldy #S.MD5.FINALIZED lda (ZPTmpPtr1),y beq .1 sec rts -.1 lda R.BH More than 256 Bytes remaining to hash ? +.1 lda ZPDataLen+1 More than 256 Bytes remaining to hash ? bne .3 yes - lda R.BL + lda ZPDataLen bne .2 Len = O ? clc All data processed rts + .2 cmp #64 More than 64 Bytes remaining to hash ? bcc .50 yes .3 lda #64 -.50 sta R.CL Save Chunk Len +.50 sta ZPChunkLen Save Chunk Len jsr MD5UpdateBitCount ldy #0 -.51 lda (R.AX),y Load Buffer with data +.51 lda (ZPDataPtr),y Load Buffer with data sta MD5.BUFFER64,y iny - cpy R.CL + cpy ZPChunkLen bne .51 cpy #64 Full 64 Bytes DATA ? beq .58 @@ -218,25 +222,25 @@ MD5Update >PULLA get MD5 Context .53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended lda #$80 sta (ZPTmpPtr1),y - lda R.CL + lda ZPChunkLen cmp #56 Enough room for BITCOUNT ? bcs .58 no jsr MD5AppendBitCount .58 jsr MD5Transform jsr MD5UpdateABCD0 -.8 lda R.BL Substract Bytes processed from LEN +.8 lda ZPDataLen Substract Bytes processed from LEN sec - sbc R.CL get back chunk Len - sta R.BL + sbc ZPChunkLen get back chunk Len + sta ZPDataLen bcs .81 - dec R.BH -.81 lda R.AL Add Bytes processed to DATA + dec ZPDataLen+1 +.81 lda ZPDataPtr Add Bytes processed to DATA clc - adc R.CL - sta R.AL + adc ZPChunkLen + sta ZPDataPtr bcc .82 - inc R.AH -.82 jmp .1 + inc ZPDataPtr+1 +.82 bra .1 *-------------------------------------- * MD5FinalizeA * In : @@ -314,20 +318,20 @@ MD5AppendBitCount * ZPTmpPtr1 = MD5 Context *-------------------------------------- MD5UpdateBitCount - stz R.CH - lda R.CL + stz ZPChunkLen+1 + lda ZPChunkLen asl - rol R.CH + rol ZPChunkLen+1 asl times 8 to get bit count - rol R.CH + rol ZPChunkLen+1 asl - rol R.CH + rol ZPChunkLen+1 clc ldy #S.MD5.BITCOUNT adc (ZPTmpPtr1),y sta (ZPTmpPtr1),y iny - lda R.CH + lda ZPChunkLen+1 adc (ZPTmpPtr1),y sta (ZPTmpPtr1),y bcc .8 diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index cc40a6b4..95df7de4 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -36,55 +36,31 @@ S.LoadBinYA >STYA S.LoadBin.Filename .3 >LDYA S.LoadBin.Filename jsr S.LoadFileYA - bcc .4 - rts Error Loading file + bcs .99 Error Loading file -.4 >STYA S.LoadBin.FileLen + >STYA S.LoadBin.SegLen stx S.LoadBin.hMem save hMem txa jsr S.GetMemPtrA - >STYA ZPQuickPtr1 save base address for relocation - - ldy #H.BIN.CODE.LEN make AX = Code Len - lda (ZPQuickPtr1),y - sta R.AL - iny - lda (ZPQuickPtr1),y - sta R.AH + >STYA S.LoadBin.NewBase >LDYA S.LoadBin.Filename jsr S.MLIGetFileInfoYA Get File Info for AUXTYPE bcs .98 - >STYA ZPQuickPtr2 + >STYA ZPQuickPtr1 + ldy #2 get AUXTYPE - lda (ZPQuickPtr2),y - sta R.BL Make BX=Range Start=AUXTYPE - sta S.LoadBin.AuxType - clc - adc S.LoadBin.FileLen - sta R.CL Make CX=Range End=AUXTYPE+FILELEN + lda (ZPQuickPtr1),y + sta S.LoadBin.OldBase iny - lda (ZPQuickPtr2),y - sta R.BH - sta S.LoadBin.AuxType+1 - adc S.LoadBin.FileLen+1 - sta R.CH - - lda ZPQuickPtr1 Compute relocation offset in DX - sec - sbc S.LoadBin.AuxType - sta R.DL DX=Offset=ZPQuickPtr1-AUXTYPE - lda ZPQuickPtr1+1 - sbc S.LoadBin.AuxType+1 - sta R.DH - - >LDYA ZPQuickPtr1 - + lda (ZPQuickPtr1),y + sta S.LoadBin.OldBase+1 + bit RRAMWRAMBNK2 bit RRAMWRAMBNK2 - jsr S.BinRelocateYA + jsr S.InsBin bit RRAMWRAMBNK1 bit RRAMWRAMBNK1 @@ -120,12 +96,13 @@ S.LoadBinYA >STYA S.LoadBin.Filename pla sec - rts +.99 rts *-------------------------------------- S.LoadBin.Filename .BS 2 S.LoadBin.hMem .BS 1 -S.LoadBin.AuxType .BS 2 -S.LoadBin.FileLen .BS 2 +S.LoadBin.OldBase .BS 2 +S.LoadBin.NewBase .BS 2 +S.LoadBin.SegLen .BS 2 *-------------------------------------- MAN SAVE SYS/KERNEL.S.BIN diff --git a/SYS/KERNEL.S.FIO.txt b/SYS/KERNEL.S.FIO.txt index a4f992ab..5ee82969 100644 --- a/SYS/KERNEL.S.FIO.txt +++ b/SYS/KERNEL.S.FIO.txt @@ -239,7 +239,7 @@ S.ListDirInitYA >STYA R.BX Store path >PUSHBI S.MEM.F.INIT0 reset all bytes jsr S.GetMem bcs .99 - stx R.AH + stx S.ListDirInitYA.hDir >STYA R.CX Store LISTDIR Struct >LDYA R.BX @@ -275,21 +275,23 @@ S.ListDirInitYA >STYA R.BX Store path bne .6 jsr S.ListDirInitAV bcs .98 - lda R.AH + lda S.ListDirInitYA.hDir rts .6 jsr S.ListDirInitAD bcs .98 - lda R.AH + lda S.ListDirInitYA.hDir rts .98 pha - lda R.AH Discard S.LISTDIR + lda S.ListDirInitYA.hDir Discard S.LISTDIR jsr S.ListDirCloseA pla .99 sec rts *-------------------------------------- +S.ListDirInitYA.hDir .BS 1 +*-------------------------------------- S.ListDirInitAV >PUSHWI 256 >PUSHBI 0 jsr S.GetMem @@ -430,7 +432,7 @@ S.ListDirNextAV jsr S.GetMemPtrA .9 sec rts *-------------------------------------- -S.ListDirNextAD stz R.DL Reset Return Record hMem +S.ListDirNextAD stz S.ListDirNext.hRec Reset Return Record hMem ldy #S.LISTDIR.FI File Index = File count ? lda (R.CX),y ldy #S.LISTDIR.FC @@ -505,7 +507,7 @@ S.ListDirNextAD stz R.DL Reset Return Record hMem jsr S.GetMem bcs .99 >STYA R.BX R.BX = DEST RECORD - stx R.DL + stx S.ListDirNext.hRec ldy #S.LISTDIR.EL lda (R.CX),y @@ -547,7 +549,7 @@ S.ListDirNextAD stz R.DL Reset Return Record hMem inc sta (R.CX),y -.6 lda R.DL +.6 lda S.ListDirNext.hRec bne .8 jmp S.ListDirNextAD Nothing to return, start over for next file entry @@ -557,6 +559,37 @@ S.ListDirNextAD stz R.DL Reset Return Record hMem .99 sec rts *-------------------------------------- +* S.ListDirReadBlock +* In : +* CX = LISTDIR +* Out : +* Y,A = READ BUFFER +*-------------------------------------- +S.ListDirReadBlock + ldy #S.LISTDIR.REFNUM + lda (R.CX),y get ref_num + sta MLICALL.PARAMS+1 + ldy #S.LISTDIR.hREADBUF + lda (R.CX),y get READ BUFFER + jsr S.GetMemPtrA + >STYA MLICALL.PARAMS+2 + >LDYAI 512 + >STYA MLICALL.PARAMS+4 + >MLICALL MLIREAD + bcs .9 + ldy #S.LISTDIR.BLKPTR set BLKPTR to $0004 + lda #4 + sta (R.CX),y + iny + lda #0 + sta (R.CX),y + ldy #S.LISTDIR.EIB set EIB to 0 + sta (R.CX),y + >LDYA MLICALL.PARAMS+2 +.9 rts +*-------------------------------------- +S.ListDirNext.hRec .BS 1 +*-------------------------------------- * S.DirListCloseA * in : * A = hS.LISTDIR @@ -600,37 +633,6 @@ S.ListDirCloseA pha clc rts *-------------------------------------- -* PRIVATE -*-------------------------------------- -* S.ListDirReadBlock -* In : -* CX = LISTDIR -* Out : -* Y,A = READ BUFFER -*-------------------------------------- -S.ListDirReadBlock - ldy #S.LISTDIR.REFNUM - lda (R.CX),y get ref_num - sta MLICALL.PARAMS+1 - ldy #S.LISTDIR.hREADBUF - lda (R.CX),y get READ BUFFER - jsr S.GetMemPtrA - >STYA MLICALL.PARAMS+2 - >LDYAI 512 - >STYA MLICALL.PARAMS+4 - >MLICALL MLIREAD - bcs .9 - ldy #S.LISTDIR.BLKPTR set BLKPTR to $0004 - lda #4 - sta (R.CX),y - iny - lda #0 - sta (R.CX),y - ldy #S.LISTDIR.EIB set EIB to 0 - sta (R.CX),y - >LDYA MLICALL.PARAMS+2 -.9 rts -*-------------------------------------- TmpFileName .BS 16 *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.REL.txt b/SYS/KERNEL.S.REL.txt index fe397027..976eca20 100644 --- a/SYS/KERNEL.S.REL.txt +++ b/SYS/KERNEL.S.REL.txt @@ -5,41 +5,74 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- +* S.InsBin +*-------------------------------------- +S.InsBin >LDYA S.LoadBin.NewBase + >STYA ZPQuickPtr1 + + ldy #H.BIN.CODE.LEN make AX = Code Len + lda (ZPQuickPtr1),y + sta Rel.CodeLen + iny + lda (ZPQuickPtr1),y + sta Rel.CodeLen+1 + + lda S.LoadBin.OldBase + sta Rel.Start Make BX=Range Start=AUXTYPE + clc + adc S.LoadBin.SegLen + sta Rel.End Make CX=Range End=AUXTYPE+FILELEN + + lda S.LoadBin.OldBase+1 + sta Rel.Start+1 + adc S.LoadBin.SegLen+1 + sta Rel.End+1 + + lda ZPQuickPtr1 Compute relocation offset in DX + sec + sbc S.LoadBin.OldBase + sta Rel.Offset DX=Offset=ZPQuickPtr1-AUXTYPE + lda ZPQuickPtr1+1 + sbc S.LoadBin.OldBase+1 + sta Rel.Offset+1 + + jmp S.BinRelocate +*-------------------------------------- * S.InsDrv * pDrv = .DRV File Loaded Address *-------------------------------------- S.InsDrv ldy #H.BIN.DRV.CODE.LEN lda (pDrv),y - sta R.AL + sta Rel.CodeLen iny lda (pDrv),y - sta R.AH + sta Rel.CodeLen+1 ldy #H.BIN.DRV.CODE.O lda (pDrv),y clc - adc S.LoadBin.AuxType - sta R.BL + adc S.LoadBin.OldBase + sta Rel.Start iny lda (pDrv),y - adc S.LoadBin.AuxType+1 - sta R.BH set BX=End Of Code + adc S.LoadBin.OldBase+1 + sta Rel.Start+1 set BX=End Of Code - lda S.LoadBin.AuxType + lda S.LoadBin.OldBase clc - adc S.LoadBin.FileLen - sta R.CL - lda S.LoadBin.AuxType+1 - adc S.LoadBin.FileLen+1 - sta R.CH set CX=End Of Range + adc S.LoadBin.SegLen + sta Rel.End + lda S.LoadBin.OldBase+1 + adc S.LoadBin.SegLen+1 + sta Rel.End+1 set CX=End Of Range ldy #H.BIN.DRV.CODE.O - lda S.LoadBin.FileLen + lda S.LoadBin.SegLen sec sbc (pDrv),y sta S.InsDrv.DRVLen iny - lda S.LoadBin.FileLen+1 + lda S.LoadBin.SegLen+1 sbc (pDrv),y sta S.InsDrv.DRVLen+1 Compute DRV Len @@ -82,23 +115,24 @@ S.InsDrv ldy #H.BIN.DRV.CODE.LEN lda DevMgr.Free sec sbc (ZPQuickPtr1),y - sta R.DL + sta Rel.Offset lda DevMgr.Free+1 iny sbc (ZPQuickPtr1),y - sta R.DH set DX=Offset + sta Rel.Offset+1 set DX=Offset ldy #H.BIN.DRV.CODE.O lda (pDrv),y clc adc pDrv - pha + sta ZPQuickPtr1 + iny lda (pDrv),y adc pDrv+1 - ply + sta ZPQuickPtr1+1 - jsr S.DrvRelocateYA + jsr S.DrvRelocate jsr S.InsDrv.Move @@ -128,11 +162,11 @@ S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O ldy #S.DEV.JMP Relocate Main JMP lda (ZPQuickPtr1),y clc - adc R.DL + adc Rel.Offset sta (ZPQuickPtr1),y iny lda (ZPQuickPtr1),y - adc R.DH + adc Rel.Offset+1 sta (ZPQuickPtr1),y lda DevMgr.LastDevID @@ -195,60 +229,57 @@ S.InsDrv.Move ldy #H.BIN.DEV.HEADER.O S.InsDrv.DrvLen .BS 2 S.InsDrv.DrvEnd .BS 2 *-------------------------------------- -* S.BinRelocateYA : -* YA = Ptr to Code +* S.BinRelocate : +* ZPQuickPtr1 = Ptr to Code * R.AX = Code Length * R.BX = Range Start address to relocate * R.CX = Range End address to relocate * R.DX = offset to apply to all abs addresses between R.BX and R.CX *-------------------------------------- -S.BinRelocateYA >STYA ZPQuickPtr1 - - ldy #H.BIN.JMP relocate Main JMP +S.BinRelocate ldy #H.BIN.JMP relocate Main JMP lda (ZPQuickPtr1),y clc - adc R.DL + adc Rel.Offset sta (ZPQuickPtr1),y iny lda (ZPQuickPtr1),y - adc R.DH + adc Rel.Offset+1 sta (ZPQuickPtr1),y ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) - bra S.JmpRelocate -S.DrvRelocateYA >STYA ZPQuickPtr1 - - ldy #0 + .HS 2C bit abs -S.JmpRelocate lda (ZPQuickPtr1),y Start Relocate JMP table +S.DrvRelocate ldy #0 + +.1 lda (ZPQuickPtr1),y Start Relocate JMP table tax iny ora (ZPQuickPtr1),y - beq S.CodeRelocate $0000 = end of table + beq .2 $0000 = end of table dey txa clc - adc R.DL + adc Rel.Offset sta (ZPQuickPtr1),y iny lda (ZPQuickPtr1),y - adc R.DH + adc Rel.Offset+1 sta (ZPQuickPtr1),y iny - bra S.JmpRelocate + bra .1 -S.CodeRelocate lda ZPQuickPtr1 +.2 lda ZPQuickPtr1 clc - adc R.AL Make ZPQuickPtr2=End of code + adc Rel.CodeLen Make ZPQuickPtr2=End of code sta ZPQuickPtr2 =ZPQuickPtr1+AX (code len) lda ZPQuickPtr1+1 - adc R.AH + adc Rel.CodeLen+1 sta ZPQuickPtr2+1 iny @@ -271,29 +302,29 @@ S.CodeRelocate lda ZPQuickPtr1 ldy #1 lda (ZPQuickPtr1),y Get LO sec - sbc R.BL + sbc Rel.Start iny lda (ZPQuickPtr1),y Get HI - sbc R.BH + sbc Rel.Start+1 bcc .6 addr < AX, out of range dey lda (ZPQuickPtr1),y Get LO sec - sbc R.CL + sbc Rel.End iny lda (ZPQuickPtr1),y Get HI - sbc R.CH + sbc Rel.End+1 bcs .6 addr > CX, out of range dey lda (ZPQuickPtr1),y Get LO clc - adc R.DL add DX to abs address + adc Rel.Offset add DX to abs address sta (ZPQuickPtr1),y store relocated addr LO iny lda (ZPQuickPtr1),y Get HI - adc R.DH + adc Rel.Offset+1 sta (ZPQuickPtr1),y store relocated addr HI .6 pla @@ -336,6 +367,11 @@ OPCODES .HS 01.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 .HS 02.02.02.01.02.02.02.02.01.02.01.01.83.83.83.03 .HS 02.02.02.01.02.02.02.02.01.83.01.01.01.83.83.03 *-------------------------------------- +Rel.CodeLen .BS 2 +Rel.Start .BS 2 +Rel.End .BS 2 +Rel.Offset .BS 2 +*-------------------------------------- MAN SAVE SYS/KERNEL.S.REL LOAD SYS/KERNEL.S