Kernel version 0.8 : Fixed bug in STAT (AUXTYPE) preventing relocation

This commit is contained in:
Rémy GIBERT 2016-10-03 08:18:46 +02:00
parent d1de493789
commit e30dfc0eb4
13 changed files with 42 additions and 47 deletions

Binary file not shown.

Binary file not shown.

View File

@ -247,7 +247,6 @@ SYS.GetKeyboardEvent .EQ $98
SYS.MKNOD .EQ $FF
SYS.MKFIFO .EQ $FF
*--------------------------------------
*--------------------------------------
* ProDOS ERROR CODES : $00->$5F
* Lib ERROR CODES : $80->$BF
* Kernel ERROR CODES : $C0->$FF
@ -441,8 +440,8 @@ S.STAT.MTIME .EQ 26 DWORD
S.STAT.CTIME .EQ 30 DWORD
S.STAT.BLOCKS .EQ 34 DWORD
S.STAT.BLKSIZE .EQ 38 WORD
S.STAT.TYPE .EQ 40 BYTE
S.STAT.AUXTYPE .EQ 41 WORD
S.STAT.PRODOS.TYPE .EQ 40 BYTE
S.STAT.PRODOS.AUXTYPE .EQ 41 WORD
*
S.STAT .EQ 43
*--------------------------------------

View File

@ -121,7 +121,7 @@ Cmd.Exec.EXT ldy #1
>SYSCALL SYS.STAT
bcs .99
lda STAT+S.STAT.TYPE
lda STAT+S.STAT.PRODOS.TYPE
cmp #$04 TXT File ?
beq Cmd.Exec.EXT.TXT
cmp #$06 BIN File ?
@ -253,7 +253,7 @@ Cmd.Exec.CD.Change
>SYSCALL SYS.STAT
bcs .9
lda STAT+S.STAT.TYPE
lda STAT+S.STAT.PRODOS.TYPE
sec
eor #$0F Directory ?
bne .9
@ -379,7 +379,7 @@ Cmd.Exec.DATE >LDYA L.TIME
>PUSHWI UsrBuf256
>PUSHW L.FMT.DATE
>PUSHW L.TIME
>SYSCALL SYS.StrFTime
>SYSCALL SYS.PStrFTime
>LDYAI UsrBuf256
>SYSCALL SYS.PStrOutYA
@ -396,7 +396,7 @@ Cmd.Exec.TIME >LDYA L.TIME
>PUSHW L.FMT.TIME
>PUSHW L.TIME
>SYSCALL SYS.StrFTime
>SYSCALL SYS.PStrFTime
>LDYAI UsrBuf256
>SYSCALL SYS.PStrOutYA

View File

@ -5,10 +5,13 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
TXT.OpenFileYA >PUSHWI 0 Aux type
TXT.OpenFileYA pha
>PUSHWI 0 Aux type
>PUSHBI 4 S.FILEINFO.TYPE.TXT
>PUSHBI SYS.FOPEN.R+SYS.FOPEN.T
pla
>PUSHYA
>SYSCALL SYS.FOPEN
bcs .9
@ -59,20 +62,13 @@ TXT.ReadFile >PUSHWI UsrBuf256+1
.8 clc
.9 rts
*--------------------------------------
TXT.CloseFile ldy #hInputArgs
lda (pData),y
beq .1
>SYSCALL SYS.FreeMemA
.1 ldy #hInputFile
TXT.CloseFile ldy #hInputFile
lda (pData),y
beq .9
>SYSCALL SYS.FCLOSEA
.9 lda #0
ldy #hInputArgs
sta (pData),y
ldy #hInputFile
sta (pData),y
rts

View File

@ -60,7 +60,9 @@ J.INTCMDS .DA Cmd.Exec.CD
.DA Cmd.Exec.TYPE
.DA 0
*--------------------------------------
CS.INIT >SYSCALL SYS.GetArgC
CS.INIT >DEBUG
>SYSCALL SYS.GetArgC
cmp #1
beq CS.INIT.INTERACTIVE no arg, continue starting interactive
@ -460,7 +462,6 @@ hCmdHistory .BS 1
CmdHistory.IDX .BS 1
CmdHistory.END .BS 1
hInputFile .BS 1
hInputArgs .BS 1
DS.END
.ED
*--------------------------------------

View File

@ -31,18 +31,17 @@ K.LoadEXEYA.1 >PUSHWI KrnBuf256
jsr K.STAT Look for AUXTYPE
bcs .9
>LDYA KrnBuf256+S.STAT.AUXTYPE
>LDYA KrnBuf256+S.STAT.PRODOS.AUXTYPE
>STYA BIN.Relocate.Start
>PUSHYA Push AUXTYPE
>PUSHBI 6 S.FILEINFO.TYPE.BIN
>PUSHBI SYS.FOPEN.R
>PUSHW K.LoadEXEYA.Filename
jsr K.LoadFile
.9 bcs .99 Error Loading file
>DEBUG
stx K.LoadEXEYA.hMem save hMem
pha YA=CODE+DATA size
@ -59,8 +58,6 @@ K.LoadEXEYA.1 >PUSHWI KrnBuf256
jsr K.GetMemPtrA
>STYA ZPQuickPtr1 set ZPQuickPtr1 -> Code start
>DEBUG
pha YA = actual load address
tya
sec
@ -310,7 +307,7 @@ BIN.RelocateEXE ldy #H.BIN.HEADER+1
lda (ZPQuickPtr1),y
cmp /H.BIN.HEADER.BIN65
bne *
ldy #H.BIN.JMP relocate Main JMP
lda (ZPQuickPtr1),y
clc

View File

@ -411,7 +411,7 @@ K.READDIRA.ADD. lda #1
jsr K.READDIRA.ClrStat
lda #$0F
sta KrnBuf256+S.STAT.TYPE
sta KrnBuf256+S.STAT.PRODOS.TYPE
ldy #$25 total_blocks
lda (ZPQuickPtr3),y
@ -432,7 +432,7 @@ K.READDIRA.ADD..
jsr K.READDIRA.ClrStat
lda #$0F
sta KrnBuf256+S.STAT.TYPE
sta KrnBuf256+S.STAT.PRODOS.TYPE
bra K.READDIRA.ADDSTAT
*--------------------------------------
@ -441,7 +441,7 @@ K.READDIRA.ADDD jsr K.READDIRA.AddFNToBuf
jsr K.READDIRA.ClrStat
lda #$0F
sta KrnBuf256+S.STAT.TYPE
sta KrnBuf256+S.STAT.PRODOS.TYPE
bra K.READDIRA.ADDSTAT
*--------------------------------------
@ -451,14 +451,14 @@ K.READDIRA.ADDF jsr K.READDIRA.AddFNToBuf
ldy #$10 type
lda (ZPQuickPtr3),y
sta KrnBuf256+S.STAT.TYPE
sta KrnBuf256+S.STAT.PRODOS.TYPE
ldy #$1F auxtype
lda (ZPQuickPtr3),y
sta KrnBuf256+S.STAT.AUXTYPE
sta KrnBuf256+S.STAT.PRODOS.AUXTYPE
iny
lda (ZPQuickPtr3),y
sta KrnBuf256+S.STAT.AUXTYPE+1
sta KrnBuf256+S.STAT.PRODOS.AUXTYPE+1
*--------------------------------------
K.READDIRA.AddStat

View File

@ -155,9 +155,9 @@ K.FREAD jsr PFT.CheckFileSTK
* Y,A = Bytes Written
*--------------------------------------
K.FWRITE jsr PFT.CheckFileSTK
>PULLA
ldx #MLIWRITE
K.FREAD.1 jsr FILE.SetupPrt1A
K.FREAD.1 >PULLA
jsr FILE.SetupPrt1A
>PULLW MLICALL.PARAMS+4
>PULLW MLICALL.PARAMS+2
@ -335,14 +335,16 @@ FILE.MLI2STAT.Types
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
.2 ldy #S.STAT.MODE
sta (ZPQuickPtr3),y
sta (ZPQuickPtr2),y
ldy #S.STAT.BLOCKS
lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE
sta (ZPQuickPtr3),y
iny
lda MLICALL.PARAMS+S.FILEINFO.AUXTYPE+1
sta (ZPQuickPtr3),y
ldx #2
ldy #S.STAT.PRODOS.TYPE+2
.3 lda MLICALL.PARAMS+S.FILEINFO.TYPE,x
sta (ZPQuickPtr2),y
dey
dex
bpl .3
rts
*--------------------------------------
MAN

View File

@ -36,7 +36,7 @@ PFT.CheckPathYA
stx S.PFT.SYSCALL save #SYSCALL
>STYA ZPQuickPtr1
>LDYA FltMgr.Table
>LDYAI FltMgr.Table
>STYA ZPQuickPtr2
.1 lda (ZPQuickPtr2) Get Filter Len

View File

@ -238,7 +238,6 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS.SIZE
.82 lda #S.PS.F.INUSE+S.PS.F.INIT
ora (ZPQuickPtr3)
sta (ZPQuickPtr3) Make this PS Init....
lda TSKMGR.LASTID
clc Exit with A=PSID
.9 rts
@ -344,6 +343,7 @@ PS.Select0
>STYA pPs
bra PS.SelectDev
PS.SelectN
>DEBUG
jsr K.GetPSByIDA
bcs *
>STYA pPs

View File

@ -5,9 +5,7 @@ INC 1
AUTO 6
.LIST OFF
*--------------------------------------
K.KernelRun >DEBUG
jsr TSK.TskMgrRun
K.KernelRun jsr TSK.TskMgrRun
bcs .9
jsr EVT.GetEvents

View File

@ -31,7 +31,7 @@ TSK.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
and #$FF^S.PS.F.HOLD unmark as HOLD
sta (pPs)
.2 jsr PS.SelectA
.2 jsr PS.Select
lda (pPS)
bit #S.PS.F.INIT
@ -63,7 +63,9 @@ TSK.TskMgrRun >LDYAI TskMgr.Table+S.PS.SIZE skip PS 0
bra .4
.3 ldx #TSKMGR.RUN
.31 jsr pCodeJmp Call INIT/RUN function
.4 bcc .7 INIT/RUN said CS=QUIT?
ldx #TSKMGR.QUIT yes, quit this process
@ -113,7 +115,7 @@ TSK.DispatchEvents
bit #S.PS.F.EVENT Accept Events ?
beq .4
jsr PS.SelectA
jsr PS.Select
stz pEvent