Kernel version 0.9 : Appletalk, ATBROWSE Command added....

Bugfix in F.CloseA
This commit is contained in:
Rémy GIBERT 2017-04-28 17:04:16 +02:00
parent a8e07582c4
commit bff3a943b7
12 changed files with 203 additions and 34 deletions

166
BIN/ATBROWSE.S.txt Normal file
View File

@ -0,0 +1,166 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/BIN/ATBROWSE
*--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/PRODOS.I
.INB /A2OSX.BUILD/INC/MLI.ERR.I
.INB /A2OSX.BUILD/INC/APPLETALK.I
*--------------------------------------
ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2
*--------------------------------------
* 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 Length To Relocate
.DA 0 Data Segment to Allocate
.DA 0
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.NOATK .DA MSG.NOATK
L.MSG.NETNODE .DA MSG.NETNODE
L.SEARCH.STRING .DA SEARCH.STRING
L.MSG.DUMP0 .DA MSG.DUMP0
L.MSG.DUMP .DA MSG.DUMP
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN stz K.MLI.PARAMS Sync
lda #ATGetInfo
sta K.MLI.PARAMS+1
>MLICALL MLIATALK
bcc .10
pha
>LDYA L.MSG.NOATK
>SYSCALL CPrintFYA
pla
sec
.99 rts
.10 >PUSHB K.MLI.PARAMS+$E NODE
>PUSHW K.MLI.PARAMS+$8 NET
>LDYA L.MSG.NETNODE
>SYSCALL CPrintFYA
stz K.MLI.PARAMS Sync
lda #ATLookupName
>LDYA L.SEARCH.STRING
>STYA K.MLI.PARAMS+$08 Entry Name Ptr
lda #4
sta K.MLI.PARAMS+$C RetInt
sta K.MLI.PARAMS+$D RetCnt
>LDYAI 1024
>STYA K.MLI.PARAMS+$10 BufLen
>PUSHBI 0
>SYSCALL GetMem
bcs .99
>STYA K.MLI.PARAMS+$12 BufPtr
>STYA ZPPTR1
txa
ldy #hBuf
sta (pData),y
lda #16
sta K.MLI.PARAMS+$16 MaxMatch
>MLICALL MLIATALK
bcs .99
lda K.MLI.PARAMS+$17
beq .8
>LDYA L.MSG.DUMP0
>SYSCALL CPrintFYA
bcs .9
.1 lda ZPPTR1
clc
adc #5
sta ZPPTR2
lda ZPPTR1+1
adc #0
sta ZPPTR2+2
>PUSHW ZPPTR2
ldy #4
.2 >PUSHB (ZPPTR1),y
dey
bpl .2
>LDYA L.MSG.DUMP
>SYSCALL CPrintFYA
bcs .9
lda ZPPTR2
sec
adc (ZPPTR2)
sta ZPPTR1
lda ZPPTR2+1
adc #0
sta ZPPTR1+1
dec K.MLI.PARAMS+$17
bne .2
lda #0
.8 sec
.9 rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT ldy #hBuf
lda (pData),y
beq .8
>SYSCALL FreeMemA
.8 clc
rts
*--------------------------------------
CS.END
MSG.NOATK >CSTR "AppleTalk Not Loaded.\r\n"
MSG.NETNODE >CSTR "Network/Node:$%H/$%h\r\n"
SEARCH.STRING >PSTR "*:*@*"
MSG.DUMP0 >CSTR "Net Nod SkT En# Name\r\n"
MSG.DUMP >CSTR "%H $%h $%h $%h %S\r\n"
*--------------------------------------
.DUMMY
.OR 0
DS.START
hBuf .BS 1
DS.END
.ED
*--------------------------------------
MAN
SAVE /A2OSX.SRC/BIN/ATBROWSE.S
ASM

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.BUILD PREFIX /A2OSX.BUILD
NEW LOMEM $A00
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -36,6 +36,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
.DA 0 End Of Reloc Table .DA 0 End Of Reloc Table
*-------------------------------------- *--------------------------------------
Dev.Detect >STYA ARGS Dev.Detect >STYA ARGS
>LDYA L.MSG.DETECT >LDYA L.MSG.DETECT
>SYSCALL PPrintFYA >SYSCALL PPrintFYA
@ -184,7 +185,7 @@ WRITE pha
* and #SSC.STATUS.DCD+SSC.STATUS.DSR * and #SSC.STATUS.DCD+SSC.STATUS.DSR
* beq .9 * beq .9
and #SSC.STATUS.TDRE Outgoing char? and #SSC.STATUS.TDRE Outgoing char?
beq .1 beq .1

View File

@ -39,7 +39,7 @@ L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
.DA 0 End Of Reloc Table .DA 0 End Of Reloc Table
*-------------------------------------- *--------------------------------------
Dev.Detect >STYA ARGS Dev.Detect >STYA ARGS
>LDYA L.MSG.DETECT >LDYA L.MSG.DETECT
>SYSCALL PPrintFYA >SYSCALL PPrintFYA
@ -149,7 +149,7 @@ OPEN php
stz INBUF.TAIL stz INBUF.TAIL
stz OUTBUF.HEAD stz OUTBUF.HEAD
stz OUTBUF.TAIL stz OUTBUF.TAIL
lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP lda #SSC.CTL.CLKINT+SSC.CTL.B9600+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
sta SSC.CTL,x sta SSC.CTL,x

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -63,8 +63,8 @@ UsrBuf256 .EQ $0C00 Main
KrnBuf256 .EQ $0D00 Main KrnBuf256 .EQ $0D00 Main
*-------------------------------------- *--------------------------------------
K.MLI.PARAMS .EQ $0E00 Main, 18 bytes min for GetFileInfo K.MLI.PARAMS .EQ $0E00 Main, 18 bytes min for GetFileInfo
K.MLI.PATH .EQ K.MLI.PARAMS+18 K.MLI.PATH .EQ K.MLI.PARAMS+32 (ATLK needs MORE!!!...32 max for now
K.S.STAT .EQ K.MLI.PATH+65 S.STAT for internal kernel operations (DIR,FIO) K.S.STAT .EQ K.MLI.PATH+64 S.STAT for internal kernel operations (DIR,FIO)
K.S.DEVSTAT .EQ K.S.STAT+64 K.S.DEVSTAT .EQ K.S.STAT+64
K.S.PORTCALL .EQ K.S.DEVSTAT+64 S.DEVSTAT=25 or higher depends on dev type K.S.PORTCALL .EQ K.S.DEVSTAT+64 S.DEVSTAT=25 or higher depends on dev type
*-------------------------------------- *--------------------------------------

12
INC/APPLETALK.I.txt Normal file
View File

@ -0,0 +1,12 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
ATGetInfo .EQ $02
ATLookupName .EQ $10
*--------------------------------------
MAN
SAVE /A2OSX.BUILD/INC/APPLETALK.I

View File

@ -35,6 +35,9 @@ AUTO 6
.DO ]1=MLIDEALLOCIRQ .DO ]1=MLIDEALLOCIRQ
lda #1 lda #1
.FIN .FIN
.DO ]1=MLIATALK
lda #1
.FIN
.DO ]1=MLIREADBLOCK .DO ]1=MLIREADBLOCK
lda #3 lda #3
.FIN .FIN

View File

@ -59,6 +59,7 @@ K.OpenDirYA jsr PFT.CheckPathYA
rts rts
.98 pha save MLI error .98 pha save MLI error
lda K.ReadDirA.hDir
jsr K.CloseDirA.1 jsr K.CloseDirA.1
pla get back MLI error pla get back MLI error
sec sec
@ -572,27 +573,7 @@ ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1
* none, always succeed. * none, always succeed.
*\------------------------------------- *\-------------------------------------
K.CloseDirA .EQ K.FCloseA K.CloseDirA .EQ K.FCloseA
* jsr PFT.CheckNodeA
* sta K.ReadDirA.hDir
* jsr K.GetMemPtrA
* >STYA ZPPtr1
K.CloseDirA.1 .EQ K.FCloseA.1 K.CloseDirA.1 .EQ K.FCloseA.1
* ldy #S.NODE.DIR.REF
* lda (ZPPtr1),y
* beq .1
* sta K.MLI.PARAMS+1
* >MLICALL MLICLOSE
*.1 ldy #S.NODE.DIR.IOBUF
* lda (ZPPtr1),y
* beq .2
* jsr K.FreeMemA
*
*.2 lda K.ReadDirA.hDir
* jmp K.FreeMemA
*/------------------------------------- */-------------------------------------
* # MKDirYA * # MKDirYA
* ## In: * ## In:

View File

@ -132,11 +132,13 @@ hFILE .BS 1
* ## Out : * ## Out :
*\-------------------------------------- *\--------------------------------------
K.FCloseA jsr PFT.CheckNodeA K.FCloseA jsr PFT.CheckNodeA
sta K.FCloseA.2+1 pha
jsr K.GetMemPtrA jsr K.GetMemPtrA
>STYA ZPPtr1 >STYA ZPPtr1
pla
K.FCloseA.1 ldy #S.NODE.REG.REF
K.FCloseA.1 sta K.FCloseA.2+1
ldy #S.NODE.REG.REF
lda (ZPPtr1),y lda (ZPPtr1),y
beq .1 beq .1
sta K.MLI.PARAMS+1 sta K.MLI.PARAMS+1

View File

@ -114,7 +114,7 @@ K.GetMem >PULLB MemMgr.ReqFlags store requested flags
and #S.MEM.F.INIT0 and #S.MEM.F.INIT0
beq .8 beq .8
jsr MemMgr.Init0 X not madified jsr MemMgr.Init0 X not modified
.8 lda #0 .8 lda #0
ldy #S.MEM.BIN ldy #S.MEM.BIN
@ -225,18 +225,22 @@ MemMgr.Init0 ldy #S.MEM.PTR
ply y=not lo count ply y=not lo count
phx
ldx #0
.1 iny .1 iny
bne .2 bne .2
inc inc
beq .8 beq .8
.2 stz $ffff .2 stz $ffff,x
inc .2+1 inx
bne .1 bne .1
inc .2+2 inc .2+2
bne .1 bne .1
.8 rts .8 plx
rts
*/-------------------------------------- */--------------------------------------
* # FreeMemA * # FreeMemA
* ## In: * ## In:
@ -453,7 +457,7 @@ MEM.GetMemByNameYA
ldx MemMgr.LastSlot ldx MemMgr.LastSlot
beq .9 beq .9
>STYA ZPMemMgrSrcPtr SAVE /A2OSX.SRC/BINPATH >STYA ZPMemMgrSrcPtr SAVE BINPATH
>LDYAI MemMgr.Table >LDYAI MemMgr.Table
>STYA ZPMemMgrTmp1 >STYA ZPMemMgrTmp1