Kernel version 0.8 : ANSI conversion & API 0.8 compliance

This commit is contained in:
Rémy GIBERT 2016-10-26 22:51:06 +02:00
parent 773c1f22b8
commit caaaa185de
48 changed files with 448 additions and 317 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -10,11 +10,11 @@ AUTO 8
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/A2OSX.SYSTEM,TSYS .TF /A2OSX.BOOT/A2OSX.SYSTEM,TSYS
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
.INB INC/MONITOR.I .INB /A2OSX.DEV/INC/MONITOR.I
.INB INC/PRODOS.I .INB /A2OSX.DEV/INC/PRODOS.I
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 main & aux ZP TmpPtr1 .EQ $0 main & aux ZP
TmpPtr2 .EQ $2 main & aux ZP TmpPtr2 .EQ $2 main & aux ZP

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/ARP .TF /A2OSX.BOOT/BIN/ARP
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.DEV/BIN/ASM .TF /A2OSX.DEV/BIN/ASM
*--------------------------------------- *---------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBSTR.I .INB /A2OSX.DEV/INC/LIBSTR.I
*--------------------------------------- *---------------------------------------
ZPPtr1 .EQ ZPBIN ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2 ZPPtr2 .EQ ZPBIN+2

View File

@ -12,8 +12,8 @@ AUTO 6
* -Y no confirm * -Y no confirm
* -C continue on error * -C continue on error
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
MAX.RECURSE .EQ 8 MAX.RECURSE .EQ 8
COPY.BUF.SIZE .EQ 4096 COPY.BUF.SIZE .EQ 4096

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.DEV/BIN/DEVDUMP .TF /A2OSX.DEV/BIN/DEVDUMP
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/EDIT .TF /A2OSX.BOOT/BIN/EDIT
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2 ZPPTR2 .EQ ZPBIN+2

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/IPCONFIG .TF /A2OSX.BOOT/BIN/IPCONFIG
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPIPCfgPtr .EQ ZPBIN ZPIPCfgPtr .EQ ZPBIN
ZPDevPtr .EQ ZPBIN+2 ZPDevPtr .EQ ZPBIN+2

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/LSDEV .TF /A2OSX.BOOT/BIN/LSDEV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2 ZPPTR2 .EQ ZPBIN+2

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/MD .TF /A2OSX.BOOT/BIN/MD
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------
@ -41,7 +41,7 @@ CS.INIT >SYSCALL GetArgC
>SYSCALL GetArgA >SYSCALL GetArgA
>SYSCALL GetFullPathYA >SYSCALL GetFullPathYA
stx hFullPath stx hFullPath
>SYSCALL MKDIRYA >SYSCALL MKDirYA
pha save error code pha save error code
jsr .98 jsr .98

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/MEM .TF /A2OSX.BOOT/BIN/MEM
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
PAGELEN .EQ 22 PAGELEN .EQ 22
FOOTERLEN .EQ 8 FOOTERLEN .EQ 8

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.DEV/BIN/MEMDUMP .TF /A2OSX.DEV/BIN/MEMDUMP
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
PAGELEN .EQ 22 PAGELEN .EQ 22
FOOTERLEN .EQ 8 FOOTERLEN .EQ 8
@ -293,10 +293,10 @@ CS.QUIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG0 >CSTR "hMem Flags PID REF PTR LEN BINPATH/DATA\n" MSG0 >CSTR " # Flags PID REF PTR LEN BINPATH/DATA\n"
MSG1 >CSTR " %03d %b %03d %03d $%H %05D " MSG1 >CSTR "%03d %b %03d %03d $%H %05D "
MSG1.BIN >CSTR "!BIN:%40S\n" MSG1.BIN >CSTR "!BIN:%41S\n"
MSG1.STR >CSTR "#STR:[%03d]:%32S\n" MSG1.STR >CSTR "[%02h]:%41S\n"
MSG1.HEX >CSTR "?HEX:%h%h%h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h\n" MSG1.HEX >CSTR "?HEX:%h%h%h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h\n"
MSG2 >CSTR "\nAllocated hMem:%d, Total:%d\n" MSG2 >CSTR "\nAllocated hMem:%d, Total:%d\n"
MSG3 >CSTR "High Memory: $%H\n" MSG3 >CSTR "High Memory: $%H\n"

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/NETSTAT .TF /A2OSX.BOOT/BIN/NETSTAT
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/NFSMOUNT .TF /A2OSX.BOOT/BIN/NFSMOUNT
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/NSCUTIL .TF /A2OSX.BOOT/BIN/NSCUTIL
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPtr1 .EQ ZPBIN ZPPtr1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/PING .TF /A2OSX.BOOT/BIN/PING
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 20 2 sec. TIMEOUT.MAX .EQ 20 2 sec.
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/PS .TF /A2OSX.BOOT/BIN/PS
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2 ZPPTR2 .EQ ZPBIN+2

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/BIN/RM .TF /A2OSX.BOOT/BIN/RM
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPtr1 .EQ ZPBIN ZPPtr1 .EQ ZPBIN
ZPPtr2 .EQ ZPBIN+2 ZPPtr2 .EQ ZPBIN+2

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.DEV/BIN/RPCDUMP .TF /A2OSX.DEV/BIN/RPCDUMP
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 40 40*100ms = 4 sec. TIMEOUT.MAX .EQ 40 40*100ms = 4 sec.
*-------------------------------------- *--------------------------------------

View File

@ -80,18 +80,16 @@ InitSrcDirYA >SYSCALL GetFullPathYA
>SYSCALL PStrCpy >SYSCALL PStrCpy
>LDYA ZPPtr1 >LDYA ZPPtr1
>SYSCALL OPENDIRYA >SYSCALL OpenDirYA
bcs .9 bcs .9
pha
ldy #hDIRs ldy #hDIRs
tya sta (pData),y set hDIRs[1] = Src Hdir
inc
sta (pData),y
iny set hDIRs[1] = Src Hdir ldy #index
pla lda #1
sta (pData),y set hDIRs index=hDIRs[1] sta (pData),y index=hDIRs[1]
jsr .9 Cleanup jsr .9 Cleanup
@ -105,58 +103,175 @@ InitSrcDirYA >SYSCALL GetFullPathYA
sec sec
rts rts
*-------------------------------------- *--------------------------------------
GetNextEntry ldy #hDIRs GetNextEntry ldy #index
lda (pData),y lda (pData),y
tax keep index for later
clc
adc #hDIRENTs-1
tay
lda (pData),y
bne .1 we have a buffer to scan
txa get back index....
clc
adc #hDIRs-1
tay tay
lda (pData),y lda (pData),y
>SYSCALL READDIRA >SYSCALL ReadDirA
bcs .9
>STYA ZPPtr1
ldy #index
lda (pData),y
pha save index for later
clc
adc #hDIRENTs-1
tay
txa
sta (pData),y
pla get back index
asl
adc #oDIRENTs-1 and reset offset for this buffer
tay
lda #0
sta (pData),y
iny
sta (pData),y
bra .2
rts .1 >SYSCALL GetMemPtrA
>STYA ZPPtr1
ldy #index
lda (pData),y
asl
adc #oDIRENTs-1
tay
lda ZPPtr1
* clc from ADC
adc (pData),y
sta ZPPtr1
lda ZPPtr1+1
iny
adc (pData),y
sta ZPPtr1+1
.2 lda (ZPPtr1) first/next DIRENT
bne .8
sta (pData),y reset offset...
dey
sta (pData),y
ldy #index
lda (pData),y
clc
adc #hDIRENTs-1
tay
lda (pData),y
pha
lda #0
sta (pData),y reset hDIRENT
pla
>SYSCALL FreeMemA discard hDIRENT
bra GetNextEntry ...startover
.8 ldy #index
lda (pData),y
asl
adc #oDIRENTs-1
tay
lda (pData),y
sec
adc (ZPPtr1)
adc #S.STAT
sta (pData),y
iny
lda (pData),y
adc #0
sta (pData),y
clc
.9 rts
*-------------------------------------- *--------------------------------------
EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat EnterSubDirYA >STYA ZPPtr2 save SUBDIR for StrCat
ldy #hDIRs ldy #index
lda (pData),y lda (pData),y
cmp #hDIRs+MAX.RECURSE+1 cmp #MAX.RECURSE
beq .99 beq .9
ldy #hBasePath ldy #hBasePath
lda (pData),y lda (pData),y
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>STYA ZPPtr1 save full path >STYA ZPPtr1 save full path
>PUSHW ZPPtr1 push Src for StrCat
>PUSHW ZPPtr2 >PUSHW ZPPtr2
>PUSHW ZPPtr1
>SYSCALL PStrCat >SYSCALL PStrCat
lda (ZPPtr1)
inc
tay
sta (ZPPtr1)
lda #'/'
sta (ZPPtr1),y
>PUSHW ZPPtr1
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
>LDYA ZPPtr1 >LDYA ZPPtr1
>SYSCALL OPENDIRYA >SYSCALL OpenDirYA
bcs .99 bcs .9
pha pha
ldy #hDIRs ldy #index
lda (pData),y lda (pData),y
inc inc
sta (pData),y sta (pData),y
tax
* clc from BCS
adc #hDIRs-1
tay tay
pla pla
sta (pData),y sta (pData),y
txa make sure hDIRENTs[i] is closed
clc adc #hDIRENTs-1
.99 rts tay
lda #0
sta (pData),y
.9 rts
*-------------------------------------- *--------------------------------------
LeaveSubDir ldy #hDIRs LeaveSubDir ldy #index
lda (pData),y lda (pData),y
beq .9
clc
adc #hDIRs-1
tay tay
lda (pData),y lda (pData),y
>SYSCALL CLOSEDIRA pha
lda #0
sta (pData),y
pla
>SYSCALL CloseDirA
ldy #index
lda (pData),y
dec
sta (pData),y
beq .9
ldy #hBasePath ldy #hBasePath
lda (pData),y lda (pData),y
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
@ -174,16 +289,15 @@ LeaveSubDir ldy #hDIRs
tya tya
sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/ sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/
>PUSHW ZPPtr1
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
rts
ldy #hDIRs .9 sec
lda (pData),y rts
dec
sta (pData),y
cmp #hDIRs
beq .9 CS
clc
.9 rts
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE BIN/X.CPLSMVRM.S SAVE BIN/X.CPLSMVRM.S
LOAD BIN/LS.S
ASM

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/CONSOLE.DRV .TF /A2OSX.BOOT/DRV/CONSOLE.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
*-------------------------------------- *--------------------------------------
CURSOR.BLINK.SPEED .EQ 8 CURSOR.BLINK.SPEED .EQ 8
ESCSEQ.MAXLEN .EQ 16 ESCSEQ.MAXLEN .EQ 16

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/LANCEGS.DRV .TF /A2OSX.BOOT/DRV/LANCEGS.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPTmpPTR .EQ ZPDRV ZPTmpPTR .EQ ZPDRV
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/MOUSE.DRV .TF /A2OSX.BOOT/DRV/MOUSE.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPGoMouse .EQ ZPDRV ZPGoMouse .EQ ZPDRV
ZPTmpPtr1 .EQ ZPDRV+2 ZPTmpPtr1 .EQ ZPDRV+2

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/PIC.DRV .TF /A2OSX.BOOT/DRV/PIC.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPTmpPtr1 .EQ ZPDRV ZPTmpPtr1 .EQ ZPDRV
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/SSC.DRV .TF /A2OSX.BOOT/DRV/SSC.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPTmpPtr1 .EQ ZPDRV ZPTmpPtr1 .EQ ZPDRV
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/UTHER2.AI.DRV .TF /A2OSX.BOOT/DRV/UTHER2.AI.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPTmpPTR .EQ ZPDRV ZPTmpPTR .EQ ZPDRV
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/DRV/UTHERNET2.DRV .TF /A2OSX.BOOT/DRV/UTHERNET2.DRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPTmpPTR .EQ ZPDRV ZPTmpPTR .EQ ZPDRV
*-------------------------------------- *--------------------------------------

View File

@ -188,9 +188,9 @@ SYS.STAT .EQ $34
* .EQ $36 * .EQ $36
SYS.OPENDIRYA .EQ $38 SYS.OPENDIRYA .EQ $38
SYS.READDIRA .EQ $3A SYS.ReadDirA .EQ $3A
SYS.CLOSEDIRA .EQ $3C SYS.CloseDirA .EQ $3C
SYS.MKDIRYA .EQ $3E SYS.MKDirYA .EQ $3E
*-------------------------------------- *--------------------------------------
SYS.COutA .EQ $40 SYS.COutA .EQ $40
SYS.SScanF .EQ $42 SYS.SScanF .EQ $42

View File

@ -76,7 +76,7 @@ COUTl .EQ $FDF0 OUTPUT CHARACTER TO SCREEN
MOVE .EQ $FE2C MOVE BLOCK OF MEMORY MOVE .EQ $FE2C MOVE BLOCK OF MEMORY
VERIFY .EQ $FE36 VERIFY BLOCK OF MEMORY VERIFY .EQ $FE36 VERIFY BLOCK OF MEMORY
LIST .EQ $FE5E DISASSEMBLE 20 INSTRUCTIONS LIST .EQ $FE5E DISASSEMBLE 20 INSTRUCTIONS
LIST2 .EQ $FE63 DISASSEMBLE •A• INSTRUCTIONS LIST2 .EQ $FE63 DISASSEMBLE •A• INSTRUCTIONS
SETINV .EQ $FE80 PRINT INVERSE TEXT TO SCREEN SETINV .EQ $FE80 PRINT INVERSE TEXT TO SCREEN
SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN
SETVID .EQ $FE93 GRAB OUTPUT HOOKS FOR SCREEN SETVID .EQ $FE93 GRAB OUTPUT HOOKS FOR SCREEN

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/LIB/LIBCRYPT.O .TF /A2OSX.BOOT/LIB/LIBCRYPT.O
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBCRYPT.I .INB /A2OSX.DEV/INC/LIBCRYPT.I
*-------------------------------------- *--------------------------------------
ZPTmpPtr1 .EQ ZPLIB ZPTmpPtr1 .EQ ZPLIB
ZPTmpPtr2 .EQ ZPLIB+2 ZPTmpPtr2 .EQ ZPLIB+2

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/LIB/LIBGFX.O .TF /A2OSX.BOOT/LIB/LIBGFX.O
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBGFX.I .INB /A2OSX.DEV/INC/LIBGFX.I
*-------------------------------------- *--------------------------------------
ZPPtr1 .EQ ZPLIB ZPPtr1 .EQ ZPLIB
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/LIB/LIBTCPIP.O .TF /A2OSX.BOOT/LIB/LIBTCPIP.O
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
ZPFrameBase1 .EQ ZPLIB ZPFrameBase1 .EQ ZPLIB
ZPFrameLen1 .EQ ZPLIB+2 ZPFrameLen1 .EQ ZPLIB+2

View File

@ -8,10 +8,10 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/DESKTOP .TF /A2OSX.BOOT/SBIN/DESKTOP
*-------------------------------------- *--------------------------------------
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBGFX.I .INB /A2OSX.DEV/INC/LIBGFX.I
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/DHCPCLNT .TF /A2OSX.BOOT/SBIN/DHCPCLNT
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 100 10 sec. TIMEOUT.MAX .EQ 100 10 sec.
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/GETTY .TF /A2OSX.BOOT/SBIN/GETTY
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPTmp1 .EQ ZPBIN ZPTmp1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/HTTPD .TF /A2OSX.BOOT/SBIN/HTTPD
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
TIMEOUT.MAX .EQ 30 30 sec. TIMEOUT.MAX .EQ 30 30 sec.
*-------------------------------------- *--------------------------------------

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/INSDRV .TF /A2OSX.BOOT/SBIN/INSDRV
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2 ZPPTR2 .EQ ZPBIN+2

View File

@ -8,8 +8,8 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/LOGIN .TF /A2OSX.BOOT/SBIN/LOGIN
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
*-------------------------------------- *--------------------------------------
ZPPTR1 .EQ ZPBIN ZPPTR1 .EQ ZPBIN
*-------------------------------------- *--------------------------------------

View File

@ -8,9 +8,9 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SBIN/TELNETD .TF /A2OSX.BOOT/SBIN/TELNETD
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/A2OSX.I .INB /A2OSX.DEV/INC/A2OSX.I
.INB INC/LIBTCPIP.I .INB /A2OSX.DEV/INC/LIBTCPIP.I
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------

View File

@ -4,15 +4,15 @@ NEW
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- */--------------------------------------
* K.GetDevByIDA * #GetDevByIDA
* IN: * ##IN:
* A = DevID * A = DevID
* OUT: * ##OUT:
* CC = OK, CS = ERROR * CC = OK, CS = ERROR
* Y,A = devslot * Y,A = devslot
* X Unmodified * note: X Unmodified
*-------------------------------------- *\--------------------------------------
K.GetDevByIDA cmp DevMgr.LastDevID K.GetDevByIDA cmp DevMgr.LastDevID
beq .1 beq .1
bcs K.GetDevDNF bcs K.GetDevDNF
@ -34,15 +34,15 @@ K.GetDevByIDA cmp DevMgr.LastDevID
plp plp
adc /DevMgr.Table adc /DevMgr.Table
rts CC rts CC
*-------------------------------------- */--------------------------------------
* GetDevIDByNameA * #GetDevIDByNameYA
* IN: * ##IN:
* A = hPStr * Y,A = Ptr to device name (PStr)
* OUT: * ##OUT:
* CC = OK, CS = ERROR * CC = OK, CS = ERROR
* X = DEVID * X = DEVID
* Y,A = pDev * Y,A = pDev
*-------------------------------------- *\--------------------------------------
K.GetDevByNameYA K.GetDevByNameYA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
>LDYAI DevMgr.Table+S.DEV.NAME >LDYAI DevMgr.Table+S.DEV.NAME
@ -86,7 +86,14 @@ K.GetDevByNameYA
K.GetDevDNF lda #DEVMGR.ERRDNF K.GetDevDNF lda #DEVMGR.ERRDNF
rts rts
*-------------------------------------- */--------------------------------------
* #GetDevInfoA
* ##IN:
* A = DevID
* ##OUT:
* CC = OK, CS = ERROR
* Y,A = Ptr to S.DEVINFO
*\--------------------------------------
K.GetDevInfoA jsr K.GetDevByIDA K.GetDevInfoA jsr K.GetDevByIDA
bcs K.GetDevDNF bcs K.GetDevDNF
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1

View File

@ -8,9 +8,9 @@ AUTO 6
* #OpenDirYA * #OpenDirYA
* ##In: * ##In:
* Y,A = PATH (PSTR) * Y,A = PATH (PSTR)
* ##Out : * ##Out:
* CC : success * CC : success
* Y,A = PTR to S.DIR * A = hDIR
* CS : error * CS : error
* A = EC * A = EC
*\-------------------------------------- *\--------------------------------------
@ -24,7 +24,7 @@ K.OpenDirYA jsr PFT.CheckPathYA
bcs .9 bcs .9
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
stx K.READDIRA.hDir stx K.ReadDirA.hDir
lda (ZPQuickPtr2) lda (ZPQuickPtr2)
cmp #1 One char ? cmp #1 One char ?
@ -61,12 +61,12 @@ K.OpenDirYA jsr PFT.CheckPathYA
ldy #S.DIR.PRODOS.REF ldy #S.DIR.PRODOS.REF
sta (ZPQuickPtr1),y sta (ZPQuickPtr1),y
.8 lda K.READDIRA.hDir .8 lda K.ReadDirA.hDir
clc clc
rts rts
.98 pha save MLI error .98 pha save MLI error
jsr K.CLOSEDIRA.1 jsr K.CloseDirA.1
pla get back MLI error pla get back MLI error
sec sec
.99 rts .99 rts
@ -74,7 +74,7 @@ K.OpenDirYA jsr PFT.CheckPathYA
* #ReadDirA * #ReadDirA
* ##In: * ##In:
* A = hDIR * A = hDIR
* ##Out : * ##Out:
* CC : success * CC : success
* X = hDIRENT * X = hDIRENT
* Y,A = PTR to S.DIRENT * Y,A = PTR to S.DIRENT
@ -82,18 +82,18 @@ K.OpenDirYA jsr PFT.CheckPathYA
* A = EC * A = EC
* note : A = 0 means no more entry * note : A = 0 means no more entry
*\-------------------------------------- *\--------------------------------------
K.READDIRA.hDir .BS 1 K.ReadDirA.hDir .BS 1
K.READDIRA.hMem .BS 1 K.ReadDirA.hMem .BS 1
K.READDIRA.hDIRENT .BS 1 K.ReadDirA.hDIRENT .BS 1
K.READDIRA.BufSize .BS 2 K.ReadDirA.BufSize .BS 2
K.READDIRA.ECIB .BS 1 K.ReadDirA.ECIB .BS 1
*--S.DIR Cache ------------------------ *--S.DIR Cache ------------------------
K.READDIRA.EL .BS 1 K.ReadDirA.EL .BS 1
K.READDIRA.EPB .BS 1 K.ReadDirA.EPB .BS 1
K.READDIRA.EC .BS 2 K.ReadDirA.EC .BS 2
*-------------------------------------- *--------------------------------------
K.ReadDirA jsr PFT.CheckDirA K.ReadDirA jsr PFT.CheckDirA
sta K.READDIRA.hDir sta K.ReadDirA.hDir
jsr K.GetMemPtrA jsr K.GetMemPtrA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
@ -104,14 +104,14 @@ K.ReadDirA jsr PFT.CheckDirA
ldy #S.DIR.PRODOS.REF ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr1),y lda (ZPQuickPtr1),y
beq K.READDIRA.ROOT beq K.ReadDirA.ROOT
jmp K.READDIRA.DIR jmp K.ReadDirA.DIR
.9 lda #0 .9 lda #0
sec CS,A=0 no more entry sec CS,A=0 no more entry
rts rts
*-------------------------------------- *--------------------------------------
K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes K.ReadDirA.ROOT stz MLICALL.PARAMS+1 All Volumes
>LDYAI KrnBuf256 >LDYAI KrnBuf256
>STYA MLICALL.PARAMS+2 >STYA MLICALL.PARAMS+2
@ -124,10 +124,10 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
.99 rts .99 rts
* pass #1 compute BufSize..... * pass #1 compute BufSize.....
.10 lda #1 +1 for Ending 0 .10 lda #1 +1 for Ending 0
sta K.READDIRA.BufSize sta K.ReadDirA.BufSize
stz K.READDIRA.BufSize+1 stz K.ReadDirA.BufSize+1
stz K.READDIRA.EC stz K.ReadDirA.EC
ldy #0 ldy #0
@ -135,14 +135,14 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
and #$0F and #$0F
beq .2 beq .2
inc K.READDIRA.EC increase entry count inc K.ReadDirA.EC increase entry count
sec Add Filelen +1 sec Add Filelen +1
adc #S.STAT will ends with CC adc #S.STAT will ends with CC
adc K.READDIRA.BufSize adc K.ReadDirA.BufSize
sta K.READDIRA.BufSize sta K.ReadDirA.BufSize
bcc .2 bcc .2
inc K.READDIRA.BufSize+1 inc K.ReadDirA.BufSize+1
.2 tya .2 tya
clc clc
@ -151,7 +151,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
bcc .1 loop until 256 bytes scanned bcc .1 loop until 256 bytes scanned
* pass #2 Fill Buffer... * pass #2 Fill Buffer...
jsr K.READDIRA.GetBuf jsr K.ReadDirA.GetBuf
bcs .99 bcs .99
.3 lda (ZPQuickPtr2) .3 lda (ZPQuickPtr2)
@ -165,19 +165,19 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
txa txa
inc inc
jsr K.READDIRA.AddToBuf jsr K.ReadDirA.AddToBuf
lda #'/' lda #'/'
jsr K.READDIRA.AddToBuf jsr K.ReadDirA.AddToBuf
ldy #1 ldy #1
.4 lda (ZPQuickPtr2),y .4 lda (ZPQuickPtr2),y
jsr K.READDIRA.AddToBuf jsr K.ReadDirA.AddToBuf
iny iny
dex dex
bne .4 bne .4
jsr K.READDIRA.ClrStat jsr K.ReadDirA.ClrStat
lda (ZPQuickPtr2) lda (ZPQuickPtr2)
@ -205,7 +205,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
>STYA KrnSTAT+S.STAT.BLOCKS >STYA KrnSTAT+S.STAT.BLOCKS
.80 jsr K.READDIRA.ADDSTAT .80 jsr K.ReadDirA.ADDSTAT
.88 lda ZPQuickPtr2 .88 lda ZPQuickPtr2
clc clc
@ -213,7 +213,7 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
sta ZPQuickPtr2 sta ZPQuickPtr2
bcc .89 bcc .89
inc ZPQuickPtr2+1 inc ZPQuickPtr2+1
.89 dec K.READDIRA.EC .89 dec K.ReadDirA.EC
bne .3 bne .3
* lda #0 done by S.MEM.F.INIT0 * lda #0 done by S.MEM.F.INIT0
@ -223,17 +223,17 @@ K.READDIRA.ROOT stz MLICALL.PARAMS+1 All Volumes
lda #S.DIR.F.NOMORE lda #S.DIR.F.NOMORE
sta (ZPQuickPtr1),y sta (ZPQuickPtr1),y
lda K.READDIRA.hDIRENT lda K.ReadDirA.hDIRENT
tax tax
jmp K.GetMemPtrA jmp K.GetMemPtrA
*-------------------------------------- *--------------------------------------
K.READDIRA.DIR sta MLICALL.PARAMS+1 A=#S.DIR.PRODOS.REF K.ReadDirA.DIR sta MLICALL.PARAMS+1 A=#S.DIR.PRODOS.REF
>PUSHWI 512 Get a 512 bytes buffer for reading dir... >PUSHWI 512 Get a 512 bytes buffer for reading dir...
>PUSHBI 0 >PUSHBI 0
jsr K.GetMem jsr K.GetMem
bcs .99 bcs .99
stx K.READDIRA.hMem stx K.ReadDirA.hMem
>STYA MLICALL.PARAMS+2 For reading >STYA MLICALL.PARAMS+2 For reading
@ -261,18 +261,18 @@ K.READDIRA.DIR sta MLICALL.PARAMS+1 A=#S.DIR.PRODOS.REF
ldy #$1f+3 ldy #$1f+3
ldx #3 ldx #3
.1 lda (ZPQuickPtr2),y Get K.READDIRA.EL.... From Block .1 lda (ZPQuickPtr2),y Get K.ReadDirA.EL.... From Block
sta K.READDIRA.EL,x sta K.ReadDirA.EL,x
dey dey
dex dex
bpl .1 bpl .1
inc K.READDIRA.EC Add one to EC because we include VOL/DIR Header inc K.ReadDirA.EC Add one to EC because we include VOL/DIR Header
bne .4 bne .4
inc K.READDIRA.EC+1 ...and ProDOS does NOT include header entry in EC inc K.ReadDirA.EC+1 ...and ProDOS does NOT include header entry in EC
bra .4 bra .4
.98 jsr K.READDIRA.CLN .98 jsr K.ReadDirA.CLN
sec sec
.99 rts .99 rts
@ -280,28 +280,28 @@ K.READDIRA.DIR sta MLICALL.PARAMS+1 A=#S.DIR.PRODOS.REF
ldx #3 ldx #3
.3 lda (ZPQuickPtr1),y get this session parameters from S.DIR .3 lda (ZPQuickPtr1),y get this session parameters from S.DIR
sta K.READDIRA.EL,x sta K.ReadDirA.EL,x
dey dey
dex dex
bpl .3 bpl .3
.4 ldx K.READDIRA.EC .4 ldx K.ReadDirA.EC
cpx K.READDIRA.EPB cpx K.ReadDirA.EPB
lda K.READDIRA.EC+1 lda K.ReadDirA.EC+1
sbc #0 sbc #0
bcc .5 We have less than EPB to read bcc .5 We have less than EPB to read
ldx K.READDIRA.EPB ldx K.ReadDirA.EPB
.5 stx K.READDIRA.ECIB .5 stx K.ReadDirA.ECIB
* pass #1 compute BufSize... * pass #1 compute BufSize...
lda #1 For Ending 0 lda #1 For Ending 0
sta K.READDIRA.BufSize sta K.ReadDirA.BufSize
stz K.READDIRA.BufSize+1 stz K.ReadDirA.BufSize+1
K.READDIRA.DIR1 lda (ZPQuickPtr2) X = EntryCount In This Block K.ReadDirA.DIR1 lda (ZPQuickPtr2) X = EntryCount In This Block
beq .7 Free slot....goto next beq .7 Free slot....goto next
tay save LEN tay save LEN
@ -327,23 +327,23 @@ K.READDIRA.DIR1 lda (ZPQuickPtr2) X = EntryCount In This Block
.2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT... .2 lda #2+S.STAT+3+S.STAT add "1." + S.STAT + "2.." + S.STAT...
clc clc
adc K.READDIRA.BufSize adc K.ReadDirA.BufSize
sta K.READDIRA.BufSize sta K.ReadDirA.BufSize
bcc .7 bcc .7
inc K.READDIRA.BufSize+1 inc K.ReadDirA.BufSize+1
.7 lda ZPQuickPtr2 .7 lda ZPQuickPtr2
clc clc
adc K.READDIRA.EL adc K.ReadDirA.EL
sta ZPQuickPtr2 sta ZPQuickPtr2
bcc .8 bcc .8
inc ZPQuickPtr2+1 inc ZPQuickPtr2+1
.8 dex .8 dex
bne K.READDIRA.DIR1 bne K.ReadDirA.DIR1
* pass #2 Fill Buffer...(ZPQuickPtr1 & Ptr2 can now be trashed) * pass #2 Fill Buffer...(ZPQuickPtr1 & Ptr2 can now be trashed)
K.READDIRA.DIR2 jsr K.READDIRA.GetBuf K.ReadDirA.DIR2 jsr K.ReadDirA.GetBuf
bcs .98 bcs .98
.71 lda (ZPQuickPtr3) .71 lda (ZPQuickPtr3)
@ -352,102 +352,102 @@ K.READDIRA.DIR2 jsr K.READDIRA.GetBuf
and #$F0 and #$F0
cmp #$F0 Vol Header ? cmp #$F0 Vol Header ?
bne .72 bne .72
jsr K.READDIRA.ADD. jsr K.ReadDirA.ADD.
bra .78 bra .78
.72 cmp #$E0 Dir Header ? .72 cmp #$E0 Dir Header ?
bne .73 bne .73
jsr K.READDIRA.ADD. jsr K.ReadDirA.ADD.
jsr K.READDIRA.ADD.. jsr K.ReadDirA.ADD..
bra .78 bra .78
.73 lda K.READDIRA.EC Regular FILE/DIR .73 lda K.ReadDirA.EC Regular FILE/DIR
sec sec
sbc #1 sbc #1
sta K.READDIRA.EC sta K.ReadDirA.EC
lda K.READDIRA.EC+1 lda K.ReadDirA.EC+1
sbc #0 sbc #0
sta K.READDIRA.EC+1 CC, we reached $ffff sta K.ReadDirA.EC+1 CC, we reached $ffff
bcc .80 no more file to list... bcc .80 no more file to list...
jsr K.READDIRA.AddFNToBuf jsr K.ReadDirA.AddFNToBuf
jsr K.READDIRA.ClrStat jsr K.ReadDirA.ClrStat
lda (ZPQuickPtr3) lda (ZPQuickPtr3)
and #$F0 and #$F0
cmp #$D0 Directory ? cmp #$D0 Directory ?
bne .75 bne .75
jsr K.READDIRA.ADDD jsr K.ReadDirA.ADDD
bra .78 bra .78
.75 jsr K.READDIRA.ADDF .75 jsr K.ReadDirA.ADDF
.78 lda ZPQuickPtr3 .78 lda ZPQuickPtr3
clc clc
adc K.READDIRA.EL adc K.ReadDirA.EL
sta ZPQuickPtr3 sta ZPQuickPtr3
bcc .79 bcc .79
inc ZPQuickPtr3+1 inc ZPQuickPtr3+1
.79 dec K.READDIRA.ECIB .79 dec K.ReadDirA.ECIB
bne .71 bne .71
.80 .80
* lda #0 S.MEM.F.INIT0 already did this * lda #0 S.MEM.F.INIT0 already did this
* sta (ZPQuickPtr4) Ending 0 * sta (ZPQuickPtr4) Ending 0
lda K.READDIRA.hDir Restore ZPQuickPtr1 trashed by STR API calls lda K.ReadDirA.hDir Restore ZPQuickPtr1 trashed by STR API calls
jsr K.GetMemPtrA jsr K.GetMemPtrA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
ldx #3 ldx #3
ldy #S.DIR.PRODOS.EL+3 ldy #S.DIR.PRODOS.EL+3
.8 lda K.READDIRA.EL,x Store back this session prameters to S.DIR .8 lda K.ReadDirA.EL,x Store back this session prameters to S.DIR
sta (ZPQuickPtr1),y sta (ZPQuickPtr1),y
dey dey
dex dex
bpl .8 bpl .8
jsr K.READDIRA.CLN Discard READBUFFER jsr K.ReadDirA.CLN Discard READBUFFER
lda K.READDIRA.hDIRENT lda K.ReadDirA.hDIRENT
tax tax
jmp K.GetMemPtrA jmp K.GetMemPtrA
.98 jsr K.READDIRA.CLN .98 jsr K.ReadDirA.CLN
sec sec
rts rts
*-------------------------------------- *--------------------------------------
K.READDIRA.CLN pha K.ReadDirA.CLN pha
lda K.READDIRA.hMem lda K.ReadDirA.hMem
jsr K.FreeMemA jsr K.FreeMemA
pla pla
rts rts
*-------------------------------------- *--------------------------------------
K.READDIRA.GetBuf K.ReadDirA.GetBuf
>PUSHW K.READDIRA.BufSize Get a BufSize bytes buffer for storing results >PUSHW K.ReadDirA.BufSize Get a BufSize bytes buffer for storing results
>PUSHBI S.MEM.F.INIT0 make sure 0 filled >PUSHBI S.MEM.F.INIT0 make sure 0 filled
jsr K.GetMem jsr K.GetMem
bcs .9 bcs .9
stx K.READDIRA.hDIRENT stx K.ReadDirA.hDIRENT
>STYA ZPQuickPtr4 >STYA ZPQuickPtr4
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
K.READDIRA.ADD. ldx #1 filename="1." K.ReadDirA.ADD. ldx #1 filename="1."
.HS 2C bit abs .HS 2C bit abs
K.READDIRA.ADD.. K.ReadDirA.ADD..
ldx #2 filename="2.." ldx #2 filename="2.."
txa txa
jsr K.READDIRA.AddToBuf Add LEN jsr K.ReadDirA.AddToBuf Add LEN
lda #'.' lda #'.'
.1 jsr K.READDIRA.AddToBuf Add X dot(s) .1 jsr K.ReadDirA.AddToBuf Add X dot(s)
dex dex
bne .1 bne .1
jsr K.READDIRA.ClrStat jsr K.ReadDirA.ClrStat
* ldy #$25 total_blocks * ldy #$25 total_blocks
* lda (ZPQuickPtr3),y * lda (ZPQuickPtr3),y
@ -456,14 +456,14 @@ K.READDIRA.ADD..
* lda (ZPQuickPtr3),y * lda (ZPQuickPtr3),y
* sta KrnSTAT+S.STAT.BLOCKS+1 * sta KrnSTAT+S.STAT.BLOCKS+1
*-------------------------------------- *--------------------------------------
K.READDIRA.ADDD lda #$0F K.ReadDirA.ADDD lda #$0F
sta KrnSTAT+S.STAT.PRODOS.TYPE sta KrnSTAT+S.STAT.PRODOS.TYPE
lda /S.STAT.MODE.DIR lda /S.STAT.MODE.DIR
sta KrnSTAT+S.STAT.MODE+1 sta KrnSTAT+S.STAT.MODE+1
bra K.READDIRA.AddAccess bra K.ReadDirA.AddAccess
*-------------------------------------- *--------------------------------------
K.READDIRA.ADDF lda /S.STAT.MODE.REG K.ReadDirA.ADDF lda /S.STAT.MODE.REG
sta KrnSTAT+S.STAT.MODE+1 sta KrnSTAT+S.STAT.MODE+1
ldx #ADDF.DST-ADDF.SRC ldx #ADDF.DST-ADDF.SRC
@ -475,7 +475,7 @@ K.READDIRA.ADDF lda /S.STAT.MODE.REG
dex dex
bpl .1 bpl .1
*-------------------------------------- *--------------------------------------
K.READDIRA.AddAccess K.ReadDirA.AddAccess
ldy #$1E ProDOS Access ldy #$1E ProDOS Access
lda (ZPQuickPtr3),y lda (ZPQuickPtr3),y
@ -493,16 +493,16 @@ K.READDIRA.AddAccess
.3 txa .3 txa
sta KrnSTAT+S.STAT.MODE sta KrnSTAT+S.STAT.MODE
*-------------------------------------- *--------------------------------------
K.READDIRA.AddTime K.ReadDirA.AddTime
>PUSHWI KrnSTAT+S.STAT.CTIME >PUSHWI KrnSTAT+S.STAT.CTIME
lda #$18 creation Date/time lda #$18 creation Date/time
jsr K.READDIRA.ConvertTime jsr K.ReadDirA.ConvertTime
>PUSHWI KrnSTAT+S.STAT.MTIME >PUSHWI KrnSTAT+S.STAT.MTIME
lda #$21 mod Date/time lda #$21 mod Date/time
jsr K.READDIRA.ConvertTime jsr K.ReadDirA.ConvertTime
*-------------------------------------- *--------------------------------------
K.READDIRA.AddStat K.ReadDirA.AddStat
ldy #S.STAT-1 ldy #S.STAT-1
.1 lda KrnSTAT,y .1 lda KrnSTAT,y
@ -518,7 +518,7 @@ K.READDIRA.AddStat
inc ZPQuickPtr4+1 inc ZPQuickPtr4+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
K.READDIRA.ClrStat K.ReadDirA.ClrStat
ldx #S.STAT-1 ldx #S.STAT-1
.1 stz KrnSTAT,x .1 stz KrnSTAT,x
@ -526,29 +526,29 @@ K.READDIRA.ClrStat
bpl .1 bpl .1
rts rts
*-------------------------------------- *--------------------------------------
K.READDIRA.AddFNToBuf K.ReadDirA.AddFNToBuf
lda (ZPQuickPtr3) lda (ZPQuickPtr3)
and #$0F get filename len and #$0F get filename len
tax tax
jsr K.READDIRA.AddToBuf jsr K.ReadDirA.AddToBuf
ldy #1 ldy #1
.1 lda (ZPQuickPtr3),y .1 lda (ZPQuickPtr3),y
jsr K.READDIRA.AddToBuf jsr K.ReadDirA.AddToBuf
iny iny
dex dex
bne .1 bne .1
rts rts
*-------------------------------------- *--------------------------------------
K.READDIRA.AddToBuf K.ReadDirA.AddToBuf
sta (ZPQuickPtr4) sta (ZPQuickPtr4)
inc ZPQuickPtr4 inc ZPQuickPtr4
bne .8 bne .8
inc ZPQuickPtr4+1 inc ZPQuickPtr4+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
K.READDIRA.ConvertTime K.ReadDirA.ConvertTime
clc clc
adc ZPQuickPtr3 adc ZPQuickPtr3
tay tay
@ -568,12 +568,12 @@ ADDF.DST .DA #S.STAT.PRODOS.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1
* ##Out: * ##Out:
* none, always succeed. * none, always succeed.
*\------------------------------------- *\-------------------------------------
K.CLOSEDIRA jsr PFT.CheckDirA K.CloseDirA jsr PFT.CheckDirA
sta K.READDIRA.hDir sta K.ReadDirA.hDir
jsr K.GetMemPtrA jsr K.GetMemPtrA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF K.CloseDirA.1 ldy #S.DIR.PRODOS.REF
lda (ZPQuickPtr1),y lda (ZPQuickPtr1),y
beq .1 beq .1
sta MLICALL.PARAMS+1 sta MLICALL.PARAMS+1
@ -584,10 +584,18 @@ K.CLOSEDIRA.1 ldy #S.DIR.PRODOS.REF
beq .2 beq .2
jsr K.FreeMemA jsr K.FreeMemA
.2 ldaK.READDIRA.hDir .2 ldaK.ReadDirA.hDir
jmp K.FreeMemA jmp K.FreeMemA
*-------------------------------------- */-------------------------------------
K.MKDIRYA jsr PFT.CheckPathYA * #MKDirYA
* ##In:
* Y,A = DIR name
* ##Out:
* CC : success
* CS : error
* A = EC
*\-------------------------------------
K.MKDirYA jsr PFT.CheckPathYA
>STYA MLICALL.PARAMS+1 >STYA MLICALL.PARAMS+1
lda #S.FILEINFO.ACCESS.FULL lda #S.FILEINFO.ACCESS.FULL
sta MLICALL.PARAMS+S.FILEINFO.ACCESS sta MLICALL.PARAMS+S.FILEINFO.ACCESS

View File

@ -118,12 +118,12 @@ hFILE .BS 1
* A = hFILE * A = hFILE
* ##Out : * ##Out :
*\-------------------------------------- *\--------------------------------------
K.FCLOSEA jsr PFT.CheckFileA K.FCloseA jsr PFT.CheckFileA
sta hFILE sta hFILE
jsr K.GetMemPtrA jsr K.GetMemPtrA
>STYA ZPQuickPtr1 >STYA ZPQuickPtr1
K.FCLOSEA.1 ldy #S.FILE.PRODOS.REF K.FCloseA.1 ldy #S.FILE.PRODOS.REF
lda (ZPQuickPtr1),y lda (ZPQuickPtr1),y
beq .1 beq .1
sta MLICALL.PARAMS+1 sta MLICALL.PARAMS+1
@ -147,9 +147,9 @@ K.FCLOSEA.1 ldy #S.FILE.PRODOS.REF
* ##Out : * ##Out :
* Y,A = Bytes Read * Y,A = Bytes Read
*\-------------------------------------- *\--------------------------------------
K.FREAD jsr PFT.CheckFileSTK K.FRead jsr PFT.CheckFileSTK
ldx #MLIREAD ldx #MLIREAD
bra K.FREAD.1 bra K.FRead.1
*/-------------------------------------- */--------------------------------------
* #FWrite * #FWrite
* ##In: * ##In:
@ -159,9 +159,9 @@ K.FREAD jsr PFT.CheckFileSTK
* #Out: * #Out:
* Y,A = Bytes Written * Y,A = Bytes Written
*\-------------------------------------- *\--------------------------------------
K.FWRITE jsr PFT.CheckFileSTK K.FWrite jsr PFT.CheckFileSTK
ldx #MLIWRITE ldx #MLIWRITE
K.FREAD.1 >PULLA K.FRead.1 >PULLA
jsr FILE.SetupPrt1A jsr FILE.SetupPrt1A
>PULLW MLICALL.PARAMS+4 >PULLW MLICALL.PARAMS+4
>PULLW MLICALL.PARAMS+2 >PULLW MLICALL.PARAMS+2
@ -174,23 +174,23 @@ K.FREAD.1 >PULLA
>LDYA MLICALL.PARAMS+6 >LDYA MLICALL.PARAMS+6
.9 rts .9 rts
*/-------------------------------------- */--------------------------------------
* #FFLUSHA * #FFlushA
* ##In: * ##In:
* A = hFILE * A = hFILE
*\-------------------------------------- *\--------------------------------------
K.FFLUSHA jsr PFT.CheckFileA K.FFlushA jsr PFT.CheckFileA
jsr FILE.SetupPrt1A jsr FILE.SetupPrt1A
>MLICALL MLIFLUSH >MLICALL MLIFLUSH
rts rts
*/------------------------------------- */-------------------------------------
* #FSEEK * #FSeek
* ##In: * ##In:
* PUSHW = OffsetHi * PUSHW = OffsetHi
* PUSHW = OffsetLo * PUSHW = OffsetLo
* PUSHB = From * PUSHB = From
* PUSHB = hFILE * PUSHB = hFILE
*\------------------------------------- *\-------------------------------------
K.FSEEK jsr PFT.CheckFileSTK K.FSeek jsr PFT.CheckFileSTK
>PULLA >PULLA
jsr FILE.SetupPrt1A jsr FILE.SetupPrt1A
>PULLB K.FSEEK.FROM >PULLB K.FSEEK.FROM
@ -242,14 +242,14 @@ K.FSEEK jsr PFT.CheckFileSTK
K.FSEEK.FROM .BS 1 K.FSEEK.FROM .BS 1
K.FSEEK.OFFSET .BS 4 K.FSEEK.OFFSET .BS 4
*/-------------------------------------- */--------------------------------------
* #FTELLA * #FTellA
* ##In: * ##In:
* A = hFILE * A = hFILE
* ##Out: * ##Out:
* Y,A,X = Offset * Y,A,X = Offset
*\-------------------------------------- *\--------------------------------------
K.FTELLA jsr PFT.CheckFileA K.FTellA jsr PFT.CheckFileA
K.FTELLA.1 jsr FILE.SetupPrt1A K.FTellA.1 jsr FILE.SetupPrt1A
>MLICALL MLIGETMARK >MLICALL MLIGETMARK
bcs .9 bcs .9
>LDYA MLICALL.PARAMS+2 >LDYA MLICALL.PARAMS+2
@ -288,34 +288,34 @@ K.FEOFA jsr PFT.CheckFileA
.9 rts .9 rts
K.FEOFA.MARK .BS 3 K.FEOFA.MARK .BS 3
*/-------------------------------------- */--------------------------------------
* #REMOVEYA * #RemoveYA
*\-------------------------------------- *\--------------------------------------
K.REMOVEYA jsr PFT.CheckPathYA K.RemoveYA jsr PFT.CheckPathYA
>STYA MLICALL.PARAMS+1 >STYA MLICALL.PARAMS+1
>MLICALL MLIDESTROY >MLICALL MLIDESTROY
rts rts
*/-------------------------------------- */--------------------------------------
* #RENAME * #Rename
* Rename a file * Rename a file
* ##In : * ##In :
* PUSHW = New Name * PUSHW = New Name
* PUSHW = Old Name * PUSHW = Old Name
* ##Out : * ##Out :
*\-------------------------------------- *\--------------------------------------
K.RENAME jsr PFT.CheckPathSTK K.Rename jsr PFT.CheckPathSTK
>PULLW MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+1
>PULLW MLICALL.PARAMS+3 >PULLW MLICALL.PARAMS+3
>MLICALL MLIRENAME >MLICALL MLIRENAME
rts rts
*/-------------------------------------- */--------------------------------------
* #STAT * #Stat
* Return information about a file * Return information about a file
* ##In : * ##In :
* PUSHW = PTR to S.STAT buffer * PUSHW = PTR to S.STAT buffer
* PUSHW = PTR to Filename (PSTR) * PUSHW = PTR to Filename (PSTR)
* ##Out : * ##Out :
*\-------------------------------------- *\--------------------------------------
K.STAT jsr PFT.CheckPathSTK K.Stat jsr PFT.CheckPathSTK
>PULLW MLICALL.PARAMS+1 >PULLW MLICALL.PARAMS+1
>PULLW ZPQuickPtr2 >PULLW ZPQuickPtr2
>MLICALL MLIGETFILEINFO >MLICALL MLIGETFILEINFO

View File

@ -4,15 +4,15 @@ NEW
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- */--------------------------------------
* K.FileSearch * #FileSearch
* in : * ##In:
* PULLW = PSTR to File Name (PSTRING) * PUSHW = PSTR to Search Path (PSTRING) %LIB%;/SYS/SLIB
* PULLW = PSTR to Search Path (PSTRING) %LIB%;/SYS/SLIB * PUSHW = PSTR to File Name (PSTRING)
* out : * #Out:
* Y,A = PSTR to FilePath (PSTRING) * Y,A = PSTR to FilePath (PSTRING)
* X = hMem to FilePath * X = hMem to FilePath
*-------------------------------------- *\--------------------------------------
K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
>PULLYA Get Search list >PULLYA Get Search list
>SYSCALL ExpandPStrYA Expand it (SYSCALL to BNK1) >SYSCALL ExpandPStrYA Expand it (SYSCALL to BNK1)
@ -74,14 +74,14 @@ K.FileSearch >PULLW ZPQuickPtr4 ZPQuickPtr1 trashed by ExpandPStrYA
*-------------------------------------- *--------------------------------------
K.FileSearch.hSrch .BS 1 K.FileSearch.hSrch .BS 1
K.FileSearch.Index .BS 1 K.FileSearch.Index .BS 1
*-------------------------------------- */--------------------------------------
* K.GetFullPathYA * #GetFullPathYA
* in : * ##In :
* Y,A = Filename (PSTRING) * Y,A = Filename (PSTRING)
* out : * #Out :
* Y,A = FullPath (PSTRING) * Y,A = FullPath (PSTRING)
* X = hMem of FullPath * X = hMem of FullPath
*-------------------------------------- *\--------------------------------------
K.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy K.GetFullPathYA >STYA ZPQuickPtr3 Ptr1 & 2 used by StrCpy
lda (ZPQuickPtr3) lda (ZPQuickPtr3)
beq K.GetFullPathYA.9 beq K.GetFullPathYA.9
@ -111,17 +111,17 @@ K.GetFullPathYA.NewStr
K.GetFullPathYA.9 K.GetFullPathYA.9
sec sec
rts rts
*-------------------------------------- */--------------------------------------
* K.LoadFile * #LoadFile
* in : * ##In:
* PULLW = PATH (Handled by.... * PUSHW = AUXTYPE (Handled by....
* PULLB = MODE ... * PUSHB = TYPE ...
* PULLB = TYPE ... * PUSHB = MODE ...
* PULLW = AUXTYPE ...FOPEN) * PUSHW = PATH ...FOPEN)
* out : * ##Out:
* Y,A = File Length * Y,A = File Length
* X = hMem of Loaded File * X = hMem of Loaded File
*-------------------------------------- *\--------------------------------------
K.LoadFile jsr K.FOPEN K.LoadFile jsr K.FOPEN
bcs .9 bcs .9
@ -184,14 +184,16 @@ K.LoadFile.Seek >PUSHWI 0
>PUSHA >PUSHA
>PUSHB K.LoadFile.hFile >PUSHB K.LoadFile.hFile
jmp K.FSEEK jmp K.FSEEK
*-------------------------------------- */--------------------------------------
* PULLW = PATH (Handled by.... * #SaveFile
* PULLB = MODE ... * ##In:
* PULLB = TYPE ... * PUSHW = SrcLen
* PULLW = AUXTYPE ...FOPEN) * PUSHW = SrcPtr
* PULLW = SrcLen * PUSHW = AUXTYPE (Handled by....
* PULLW = SrcPtr * PUSHB = TYPE ...
*-------------------------------------- * PUSHB = MODE ...
* PUSHW = PATH ...FOPEN)
*\--------------------------------------
K.SaveFile jsr K.FOPEN K.SaveFile jsr K.FOPEN
bcs .9 bcs .9

View File

@ -43,9 +43,9 @@ KERNEL.SYSCALL
.DA K.STAT .DA K.STAT
.DA 0 .DA 0
.DA K.OPENDIRYA .DA K.OPENDIRYA
.DA K.READDIRA .DA K.ReadDirA
.DA K.CLOSEDIRA .DA K.CloseDirA
.DA K.MKDIRYA .DA K.MKDirYA
*-------------------------------------- *--------------------------------------
* Bank 2 * Bank 2
*-------------------------------------- *--------------------------------------

View File

@ -8,10 +8,10 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SYS/KM.NSC .TF /A2OSX.BOOT/SYS/KM.NSC
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
.INB INC/MONITOR.I .INB /A2OSX.DEV/INC/MONITOR.I
.INB INC/PRODOS.I .INB /A2OSX.DEV/INC/PRODOS.I
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 TmpPtr1 .EQ $0
TmpPtr2 .EQ $2 TmpPtr2 .EQ $2

View File

@ -8,10 +8,10 @@ AUTO 6
.OR $2000 .OR $2000
.TF /A2OSX.BOOT/SYS/KM.RAMWORKS .TF /A2OSX.BOOT/SYS/KM.RAMWORKS
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB /A2OSX.DEV/INC/MACROS.I
.INB INC/IO.I .INB /A2OSX.DEV/INC/IO.I
.INB INC/MONITOR.I .INB /A2OSX.DEV/INC/MONITOR.I
.INB INC/PRODOS.I .INB /A2OSX.DEV/INC/PRODOS.I
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 TmpPtr1 .EQ $0
TmpPtr2 .EQ $2 TmpPtr2 .EQ $2