mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-19 23:29:29 +00:00
Kernel version 0.8 : Fixed bug in LOADBIN called from BNK1
This commit is contained in:
parent
c04a398bf8
commit
4219fe9e0d
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -190,7 +190,7 @@ SYS.SaveFile .EQ $46
|
|||||||
SYS.LoadDrvYA .EQ $50
|
SYS.LoadDrvYA .EQ $50
|
||||||
SYS.LoadLibYA .EQ $52
|
SYS.LoadLibYA .EQ $52
|
||||||
SYS.UnloadLibA .EQ $54
|
SYS.UnloadLibA .EQ $54
|
||||||
* .EQ $56
|
SYS.LoadExeYA .EQ $56
|
||||||
|
|
||||||
SYS.TimeYA .EQ $58
|
SYS.TimeYA .EQ $58
|
||||||
SYS.CTime2Time .EQ $5A
|
SYS.CTime2Time .EQ $5A
|
||||||
|
@ -12,10 +12,10 @@ AUTO 6
|
|||||||
* Y,A = MEMPTR
|
* Y,A = MEMPTR
|
||||||
* X = hMem of Code Segment
|
* X = hMem of Code Segment
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.LoadEXEYA >STYA BIN.LoadExe.Filename
|
K.LoadEXEYA >STYA K.LoadEXEYA.Filename
|
||||||
jsr K.PStrUprYA Y,A unmodified
|
>SYSCALL SYS.PStrUprYA Y,A unmodified
|
||||||
jsr K.GetMemByNameYA
|
jsr K.GetMemByNameYA
|
||||||
bcs BIN.LoadEXEYA.1 not already loaded
|
bcs K.LoadEXEYA.1 not already loaded
|
||||||
|
|
||||||
>STYA ZPQuickPtr1 Save base address
|
>STYA ZPQuickPtr1 Save base address
|
||||||
ldy #S.MEM.REFCNT
|
ldy #S.MEM.REFCNT
|
||||||
@ -26,8 +26,8 @@ BIN.LoadEXEYA >STYA BIN.LoadExe.Filename
|
|||||||
txa
|
txa
|
||||||
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
|
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
|
K.LoadEXEYA.1 >PUSHWI KrnBuf256
|
||||||
>PUSHW BIN.LoadExe.Filename
|
>PUSHW K.LoadEXEYA.Filename
|
||||||
jsr K.STAT Look for AUXTYPE
|
jsr K.STAT Look for AUXTYPE
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -37,12 +37,12 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
|
|||||||
>PUSHYA Push AUXTYPE
|
>PUSHYA Push AUXTYPE
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
||||||
>PUSHBI SYS.FOPEN.R
|
>PUSHBI SYS.FOPEN.R
|
||||||
>PUSHW BIN.LoadExe.Filename
|
>PUSHW K.LoadEXEYA.Filename
|
||||||
jsr K.LoadFile
|
jsr K.LoadFile
|
||||||
.9 bcs .99 Error Loading file
|
.9 bcs .99 Error Loading file
|
||||||
|
|
||||||
>STYA BIN.Relocate.SegLen
|
>STYA BIN.Relocate.SegLen
|
||||||
stx BIN.LoadExe.hMem save hMem
|
stx K.LoadEXEYA.hMem save hMem
|
||||||
txa
|
txa
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPQuickPtr1
|
||||||
@ -57,7 +57,7 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
|
|||||||
lda BIN.Relocate.Start Get AUXTYPE for actual Base Address
|
lda BIN.Relocate.Start Get AUXTYPE for actual Base Address
|
||||||
clc
|
clc
|
||||||
adc BIN.Relocate.SegLen
|
adc BIN.Relocate.SegLen
|
||||||
sta BIN.Relocate.End compute Range End=AUXTYPE+FILELEN
|
sta BIN.Relocate.End compute Range End=AUXTYPE+FILELEN
|
||||||
|
|
||||||
lda BIN.Relocate.Start+1
|
lda BIN.Relocate.Start+1
|
||||||
adc BIN.Relocate.SegLen+1
|
adc BIN.Relocate.SegLen+1
|
||||||
@ -73,14 +73,13 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
|
|||||||
sta BIN.Relocate.Offset+1
|
sta BIN.Relocate.Offset+1
|
||||||
|
|
||||||
jsr Bin.RelocateEXE
|
jsr Bin.RelocateEXE
|
||||||
bcs .98 relocation error, dicard Code segment
|
|
||||||
|
|
||||||
>LDYA BIN.LoadExe.Filename get back bin path
|
>LDYA K.LoadEXEYA.Filename get back bin path
|
||||||
jsr K.NewPStrYA make a copy of this string
|
>SYSCALL SYS.NewPStrYA make a copy of this string
|
||||||
bcs .98
|
bcs .98
|
||||||
phx save copy
|
phx save copy
|
||||||
|
|
||||||
lda BIN.LoadExe.hMem
|
lda K.LoadEXEYA.hMem
|
||||||
jsr K.GetMemByIDA
|
jsr K.GetMemByIDA
|
||||||
>STYA ZPQuickPtr1
|
>STYA ZPQuickPtr1
|
||||||
|
|
||||||
@ -92,22 +91,22 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
|
|||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
sta (ZPQuickPtr1),y
|
sta (ZPQuickPtr1),y
|
||||||
|
|
||||||
lda BIN.LoadExe.hMem
|
lda K.LoadEXEYA.hMem
|
||||||
tax return hMEM to Caller...
|
tax return hMEM to Caller...
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
clc ...and Y,A=PTR to CS
|
clc ...and Y,A=PTR to CS
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.98 pha
|
.98 pha
|
||||||
lda BIN.LoadExe.hMem
|
lda K.LoadEXEYA.hMem
|
||||||
jsr K.FreeMemA Discard Loaded Code
|
jsr K.FreeMemA Discard Loaded Code
|
||||||
pla
|
pla
|
||||||
|
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.LoadExe.Filename .BS 2
|
K.LoadEXEYA.Filename .BS 2
|
||||||
BIN.LoadExe.hMem .BS 1
|
K.LoadEXEYA.hMem .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BIN.InstallDRV
|
* BIN.InstallDRV
|
||||||
* pDrv = .DRV File Loaded Address
|
* pDrv = .DRV File Loaded Address
|
||||||
@ -326,6 +325,9 @@ BIN.RelocateEXE ldy #H.BIN.JMP relocate Main JMP
|
|||||||
|
|
||||||
ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
ldy #H.BIN.RELOC.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
||||||
|
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.RelocateDRV ldy #0
|
BIN.RelocateDRV ldy #0
|
||||||
@ -418,8 +420,7 @@ BIN.RelocateDRV ldy #0
|
|||||||
inc ZPQuickPtr1+1
|
inc ZPQuickPtr1+1
|
||||||
bra .3 next opcode....
|
bra .3 next opcode....
|
||||||
|
|
||||||
.8 clc
|
.8 rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* 65C02 OPCODES
|
* 65C02 OPCODES
|
||||||
* Bit 3 : 1 = absolute addressing
|
* Bit 3 : 1 = absolute addressing
|
||||||
|
@ -25,7 +25,7 @@ K.LoadDrvYA >STYA K.LoadDrv.CmdArray
|
|||||||
bcs .99
|
bcs .99
|
||||||
stx K.LoadDrv.hFullName
|
stx K.LoadDrv.hFullName
|
||||||
|
|
||||||
jsr BIN.LoadExeYA Y,A =filename full path
|
jsr K.LoadExeYA Y,A =filename full path
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>STYA pDrv
|
>STYA pDrv
|
||||||
|
@ -61,7 +61,7 @@ KERNEL.SYSCALL
|
|||||||
.DA K.LoadDrvYA $50
|
.DA K.LoadDrvYA $50
|
||||||
.DA K.LoadLibYA
|
.DA K.LoadLibYA
|
||||||
.DA K.UnloadLibA
|
.DA K.UnloadLibA
|
||||||
.DA 0
|
.DA K.LoadExeYA
|
||||||
.DA K.TimeYA
|
.DA K.TimeYA
|
||||||
.DA K.CTime2Time
|
.DA K.CTime2Time
|
||||||
.DA K.PTime2Time
|
.DA K.PTime2Time
|
||||||
|
@ -25,7 +25,7 @@ K.LoadLibYA >STYA K.LoadLib.Name save libname for K.FileSearch
|
|||||||
|
|
||||||
stx K.LoadLib.hFullName
|
stx K.LoadLib.hFullName
|
||||||
|
|
||||||
jsr BIN.LoadExeYA Y,A=filename full path
|
jsr K.LoadExeYA Y,A=filename full path
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
stx K.LoadLib.hMem
|
stx K.LoadLib.hMem
|
||||||
|
@ -257,7 +257,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine
|
|||||||
pla Restore PTR...
|
pla Restore PTR...
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr BIN.LoadEXEYA Y,A=filename full path
|
>SYSCALL SYS.LoadExeYA Y,A=filename full path
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPQuickPtr4 save PTR to Code Segment
|
>STYA ZPQuickPtr4 save PTR to Code Segment
|
||||||
|
Loading…
x
Reference in New Issue
Block a user