Kernel version 0.8 : Fixed bug in LOADBIN called from BNK1

This commit is contained in:
Rémy GIBERT 2016-09-30 08:24:52 +02:00
parent c04a398bf8
commit 4219fe9e0d
8 changed files with 24 additions and 23 deletions

Binary file not shown.

Binary file not shown.

View File

@ -190,7 +190,7 @@ SYS.SaveFile .EQ $46
SYS.LoadDrvYA .EQ $50
SYS.LoadLibYA .EQ $52
SYS.UnloadLibA .EQ $54
* .EQ $56
SYS.LoadExeYA .EQ $56
SYS.TimeYA .EQ $58
SYS.CTime2Time .EQ $5A

View File

@ -12,10 +12,10 @@ AUTO 6
* Y,A = MEMPTR
* X = hMem of Code Segment
*--------------------------------------
BIN.LoadEXEYA >STYA BIN.LoadExe.Filename
jsr K.PStrUprYA Y,A unmodified
K.LoadEXEYA >STYA K.LoadEXEYA.Filename
>SYSCALL SYS.PStrUprYA Y,A unmodified
jsr K.GetMemByNameYA
bcs BIN.LoadEXEYA.1 not already loaded
bcs K.LoadEXEYA.1 not already loaded
>STYA ZPQuickPtr1 Save base address
ldy #S.MEM.REFCNT
@ -26,8 +26,8 @@ BIN.LoadEXEYA >STYA BIN.LoadExe.Filename
txa
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
*--------------------------------------
BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
>PUSHW BIN.LoadExe.Filename
K.LoadEXEYA.1 >PUSHWI KrnBuf256
>PUSHW K.LoadEXEYA.Filename
jsr K.STAT Look for AUXTYPE
bcs .9
@ -37,12 +37,12 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
>PUSHYA Push AUXTYPE
>PUSHBI 6 S.FILEINFO.TYPE.BIN
>PUSHBI SYS.FOPEN.R
>PUSHW BIN.LoadExe.Filename
>PUSHW K.LoadEXEYA.Filename
jsr K.LoadFile
.9 bcs .99 Error Loading file
>STYA BIN.Relocate.SegLen
stx BIN.LoadExe.hMem save hMem
stx K.LoadEXEYA.hMem save hMem
txa
jsr K.GetMemPtrA
>STYA ZPQuickPtr1
@ -57,7 +57,7 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
lda BIN.Relocate.Start Get AUXTYPE for actual Base Address
clc
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
adc BIN.Relocate.SegLen+1
@ -73,14 +73,13 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
sta BIN.Relocate.Offset+1
jsr Bin.RelocateEXE
bcs .98 relocation error, dicard Code segment
>LDYA BIN.LoadExe.Filename get back bin path
jsr K.NewPStrYA make a copy of this string
>LDYA K.LoadEXEYA.Filename get back bin path
>SYSCALL SYS.NewPStrYA make a copy of this string
bcs .98
phx save copy
lda BIN.LoadExe.hMem
lda K.LoadEXEYA.hMem
jsr K.GetMemByIDA
>STYA ZPQuickPtr1
@ -92,22 +91,22 @@ BIN.LoadEXEYA.1 >PUSHWI KrnBuf256
ldy #S.MEM.BIN
sta (ZPQuickPtr1),y
lda BIN.LoadExe.hMem
lda K.LoadEXEYA.hMem
tax return hMEM to Caller...
jsr K.GetMemPtrA
clc ...and Y,A=PTR to CS
rts
.98 pha
lda BIN.LoadExe.hMem
lda K.LoadEXEYA.hMem
jsr K.FreeMemA Discard Loaded Code
pla
sec
.99 rts
*--------------------------------------
BIN.LoadExe.Filename .BS 2
BIN.LoadExe.hMem .BS 1
K.LoadEXEYA.Filename .BS 2
K.LoadEXEYA.hMem .BS 1
*--------------------------------------
* BIN.InstallDRV
* 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)
>DEBUG
.HS 2C bit abs
*--------------------------------------
BIN.RelocateDRV ldy #0
@ -418,8 +420,7 @@ BIN.RelocateDRV ldy #0
inc ZPQuickPtr1+1
bra .3 next opcode....
.8 clc
rts
.8 rts
*--------------------------------------
* 65C02 OPCODES
* Bit 3 : 1 = absolute addressing

View File

@ -25,7 +25,7 @@ K.LoadDrvYA >STYA K.LoadDrv.CmdArray
bcs .99
stx K.LoadDrv.hFullName
jsr BIN.LoadExeYA Y,A =filename full path
jsr K.LoadExeYA Y,A =filename full path
bcs .98
>STYA pDrv

View File

@ -61,7 +61,7 @@ KERNEL.SYSCALL
.DA K.LoadDrvYA $50
.DA K.LoadLibYA
.DA K.UnloadLibA
.DA 0
.DA K.LoadExeYA
.DA K.TimeYA
.DA K.CTime2Time
.DA K.PTime2Time

View File

@ -25,7 +25,7 @@ K.LoadLibYA >STYA K.LoadLib.Name save libname for K.FileSearch
stx K.LoadLib.hFullName
jsr BIN.LoadExeYA Y,A=filename full path
jsr K.LoadExeYA Y,A=filename full path
bcs .98
stx K.LoadLib.hMem

View File

@ -257,7 +257,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine
pla Restore PTR...
ply
jsr BIN.LoadEXEYA Y,A=filename full path
>SYSCALL SYS.LoadExeYA Y,A=filename full path
bcs .9
>STYA ZPQuickPtr4 save PTR to Code Segment