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
.TF /A2OSX.BOOT/A2OSX.SYSTEM,TSYS
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
.INB INC/IO.I
.INB INC/MONITOR.I
.INB INC/PRODOS.I
.INB /A2OSX.DEV/INC/MACROS.I
.INB /A2OSX.DEV/INC/A2OSX.I
.INB /A2OSX.DEV/INC/IO.I
.INB /A2OSX.DEV/INC/MONITOR.I
.INB /A2OSX.DEV/INC/PRODOS.I
*--------------------------------------
TmpPtr1 .EQ $0 main & aux ZP
TmpPtr2 .EQ $2 main & aux ZP

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -80,18 +80,16 @@ InitSrcDirYA >SYSCALL GetFullPathYA
>SYSCALL PStrCpy
>LDYA ZPPtr1
>SYSCALL OPENDIRYA
>SYSCALL OpenDirYA
bcs .9
pha
ldy #hDIRs
tya
inc
sta (pData),y
sta (pData),y set hDIRs[1] = Src Hdir
iny set hDIRs[1] = Src Hdir
pla
sta (pData),y set hDIRs index=hDIRs[1]
ldy #index
lda #1
sta (pData),y index=hDIRs[1]
jsr .9 Cleanup
@ -105,58 +103,175 @@ InitSrcDirYA >SYSCALL GetFullPathYA
sec
rts
*--------------------------------------
GetNextEntry ldy #hDIRs
GetNextEntry ldy #index
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
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
ldy #hDIRs
ldy #index
lda (pData),y
cmp #hDIRs+MAX.RECURSE+1
beq .99
cmp #MAX.RECURSE
beq .9
ldy #hBasePath
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPPtr1 save full path
>PUSHW ZPPtr1 push Src for StrCat
>PUSHW ZPPtr2
>PUSHW ZPPtr1
>SYSCALL PStrCat
lda (ZPPtr1)
inc
tay
sta (ZPPtr1)
lda #'/'
sta (ZPPtr1),y
>PUSHW ZPPtr1
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
>LDYA ZPPtr1
>SYSCALL OPENDIRYA
>SYSCALL OpenDirYA
bcs .99
bcs .9
pha
ldy #hDIRs
ldy #index
lda (pData),y
inc
sta (pData),y
tax
* clc from BCS
adc #hDIRs-1
tay
pla
sta (pData),y
clc
.99 rts
txa make sure hDIRENTs[i] is closed
adc #hDIRENTs-1
tay
lda #0
sta (pData),y
.9 rts
*--------------------------------------
LeaveSubDir ldy #hDIRs
LeaveSubDir ldy #index
lda (pData),y
beq .9
clc
adc #hDIRs-1
tay
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
lda (pData),y
>SYSCALL GetMemPtrA
@ -174,16 +289,15 @@ LeaveSubDir ldy #hDIRs
tya
sta (ZPPtr1) cut DIR2/ from /dir1/DIR2/
>PUSHW ZPPtr1
>LDYA L.MSG.ENTER
>SYSCALL PrintFYA
rts
ldy #hDIRs
lda (pData),y
dec
sta (pData),y
cmp #hDIRs
beq .9 CS
clc
.9 rts
.9 sec
rts
*--------------------------------------
MAN
SAVE BIN/X.CPLSMVRM.S
LOAD BIN/LS.S
ASM

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -76,7 +76,7 @@ COUTl .EQ $FDF0 OUTPUT CHARACTER TO SCREEN
MOVE .EQ $FE2C MOVE BLOCK OF MEMORY
VERIFY .EQ $FE36 VERIFY BLOCK OF MEMORY
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
SETNORM .EQ $FE84 PRINT NORMAL TEXT TO SCREEN
SETVID .EQ $FE93 GRAB OUTPUT HOOKS FOR SCREEN

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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