Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-11-11 15:21:06 +01:00
parent c43c51e28e
commit e753621178
28 changed files with 184 additions and 111 deletions

Binary file not shown.

View File

@ -210,7 +210,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBETALK .AZ "libetalk" LIBETALK .AZ "LIBETALK"
SSCANF.ADDR .AZ "%D.%d" SSCANF.ADDR .AZ "%D.%d"
SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h" SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h"
MSG.Usage .AS "Usage : AARP, display AARP cache\r\n" MSG.Usage .AS "Usage : AARP, display AARP cache\r\n"

View File

@ -359,7 +359,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
MSG.USAGE .AS "Usage : ADT <ip|host> [port]\r\n" MSG.USAGE .AS "Usage : ADT <ip|host> [port]\r\n"

View File

@ -225,7 +225,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
SSCANF.IP .AZ "%d.%d.%d.%d" SSCANF.IP .AZ "%d.%d.%d.%d"
SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h" SSCANF.MAC .AZ "%h:%h:%h:%h:%h:%h"
MSG.Usage .AS "Usage : ARP, display ARP cache\r\n" MSG.Usage .AS "Usage : ARP, display ARP cache\r\n"

View File

@ -176,7 +176,7 @@ CS.QUIT lda hLIBTCPIP
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
SSCANF.IP .AZ "%d.%d.%d.%d" SSCANF.IP .AZ "%d.%d.%d.%d"

View File

@ -412,7 +412,7 @@ Wait.TimeOut ldy #TimeOut
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBETALK .AZ "libetalk" LIBETALK .AZ "LIBETALK"
hLIBETALK .BS 1 hLIBETALK .BS 1
*-------------------------------------- *--------------------------------------
MSG.USAGE .AZ "Usage : ETCONFIG\r\n" MSG.USAGE .AZ "Usage : ETCONFIG\r\n"

View File

@ -300,7 +300,7 @@ CS.RUN.CheckOpt ldy #1
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
LIBBLKDEV .AZ "libblkdev" LIBBLKDEV .AZ "LIBBLKDEV"
hLIBBLKDEV .BS 1 hLIBBLKDEV .BS 1
*-------------------------------------- *--------------------------------------
MSG.USAGE .AS "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\r\n" MSG.USAGE .AS "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\r\n"

View File

@ -477,7 +477,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
MSG.USAGE .AS "Usage : HTTPGET <ip|host> [port]\r\n" MSG.USAGE .AS "Usage : HTTPGET <ip|host> [port]\r\n"

View File

@ -344,7 +344,7 @@ Wait.TimeOut ldy #TimeOut
.INB USR/SRC/SBIN/IPCONFIG.S.ETC .INB USR/SRC/SBIN/IPCONFIG.S.ETC
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
*-------------------------------------- *--------------------------------------
OptionList >PSTR "DEde" OptionList >PSTR "DEde"

View File

@ -162,7 +162,7 @@ OptionVars .DA #bText,#bText
*-------------------------------------- *--------------------------------------
MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n" MSG.USAGE .AZ "Usage : MD5 [ -d input text | input file ]\r\n"
*-------------------------------------- *--------------------------------------
LIBCRYPT .AZ "libcrypt" LIBCRYPT .AZ "LIBCRYPT"
hLIBCRYPT .BS 1 hLIBCRYPT .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

@ -159,7 +159,7 @@ CS.QUIT lda hLIBTCPIP
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG0 .AZ "Type Prot Local Remote Options Status" MSG0 .AZ "Type Prot Local Remote Options Status"
MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n" MSG1 .AZ "%s %s %03d.%03d.%03d.%03d:%05D %03d.%03d.%03d.%03d:%05D %b %s\r\n"

View File

@ -629,7 +629,7 @@ MSG.DIR .AZ "Reading Dir:%s..."
MSG.FILE .AZ "Adding File:%s..." MSG.FILE .AZ "Adding File:%s..."
ARC.Header .AZ "PAK" ARC.Header .AZ "PAK"
*-------------------------------------- *--------------------------------------
LIBPAK .AZ "libpak" LIBPAK .AZ "LIBPAK"
hLIB .BS 1 hLIB .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

@ -554,7 +554,7 @@ MSG.STORE .AZ "Store : %5D Bytes, New Ofs=$%H\r\n"
MSG.E.IARC .AZ "Invalid/corrupt archive" MSG.E.IARC .AZ "Invalid/corrupt archive"
TAG .AZ "PAKME" TAG .AZ "PAKME"
*-------------------------------------- *--------------------------------------
LIBPAK .AZ "libpak" LIBPAK .AZ "LIBPAK"
hLIB .BS 1 hLIB .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY

View File

@ -311,7 +311,7 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
MSG.USAGE .AS "Usage : PING <ip|host>\r\n" MSG.USAGE .AS "Usage : PING <ip|host>\r\n"
.AZ " -1-9 : Ping Count\r\n" .AZ " -1-9 : Ping Count\r\n"

View File

@ -216,7 +216,7 @@ DumpRPCFrame lda #S.UDP+24
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip.o" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.USAGE .AZ "Usage : RPCDUMP <ip|host>" MSG.USAGE .AZ "Usage : RPCDUMP <ip|host>"
MSG.UNKNOWN .AZ "%s: Unknown host\r\n" MSG.UNKNOWN .AZ "%s: Unknown host\r\n"

View File

@ -287,7 +287,7 @@ CS.QUIT lda hSocket
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.IPKO .AZ "TCP/IP Not Loaded/Configured." MSG.IPKO .AZ "TCP/IP Not Loaded/Configured."
MSG.USAGE .AZ "Usage : TELNET <ip|host> [port]" MSG.USAGE .AZ "Usage : TELNET <ip|host> [port]"

View File

@ -367,7 +367,7 @@ OptionList >PSTR "CcDdPpSs"
*-------------------------------------- *--------------------------------------
* Initialized DATA * Initialized DATA
*-------------------------------------- *--------------------------------------
LIBCRYPT .AZ "libcrypt" LIBCRYPT .AZ "LIBCRYPT"
hLIBCRYPT .BS 1 hLIBCRYPT .BS 1
*-------------------------------------- *--------------------------------------
MSG.USAGE .AS "Usage : USERADD username\r\n" MSG.USAGE .AS "Usage : USERADD username\r\n"

View File

@ -29,6 +29,7 @@ MLI.E.BEYEOF .EQ $4D Beyond EOF
MLI.E.LOCKED .EQ $4E File Access Error, File Locked MLI.E.LOCKED .EQ $4E File Access Error, File Locked
MLI.E.OPEN .EQ $50 File Already Open MLI.E.OPEN .EQ $50 File Already Open
MLI.E.BADDIR .EQ $51 Directory Structure Damaged MLI.E.BADDIR .EQ $51 Directory Structure Damaged
MLI.E.NOTPRODOS .EQ $52 Not a ProDOS disk
MLI.E.INVPARAM .EQ $53 Invalid Parameter MLI.E.INVPARAM .EQ $53 Invalid Parameter
* .EQ $55 Too Many Volumes * .EQ $55 Too Many Volumes
* .EQ $56 Bad Buffer Address * .EQ $56 Bad Buffer Address

View File

@ -208,29 +208,38 @@ sysdeath1 tax death error code.
sta CLR80DISP disable 80 col hardware. sta CLR80DISP disable 80 col hardware.
lda SETTEXT switch in text. lda SETTEXT switch in text.
lda cortflag is this a Cortland? lda cortflag is this a Cortland?
beq H321A if not, don't use super hires switch. beq .1 if not, don't use super hires switch.
stz newvideo force off super hires. stz newvideo force off super hires.
H321A lda CLRPAGE2 switch in text page 1. .1 lda CLRPAGE2 switch in text page 1.
ldy #$13
H321F lda #$20 inverse space border ldy #deathmsg.LEN-1
sta vline11+10,y
sta vline13+10,y .2 lda deathmsg,y
lda deathmsg,y sta $400,y 'RESTART SYSTEM-$'
sta vline12+10,y 'RESTART SYSTEM-$0x'
dey dey
bpl H321F bpl .2
txa x = death error code txa x = death error code
and #$0F convert to ascii and #$0F convert to ascii
ora #$B0 ora #$30
cmp #$BA cmp #$3A
bcc H323B branch if not > 9. bcc .3 branch if not > 9.
adc #$06 inc to alpha a-f adc #$06 inc to alpha a-f
H323B sta vline12+28 death error code 1 to F
bra * end of xdos mli .3 ldy #deathmsg.LEN
sta $400,y
lda #' '
.4 iny
sta $400,y
cpy #39
bne .4
bra *
*-------------------------------------- *--------------------------------------
* ProDOS Block File Manager * ProDOS Block File Manager
*-------------------------------------- *--------------------------------------
@ -247,7 +256,7 @@ XDOS.bfmgr lda disptch,x translate into command address.
sta bkbitflg to say 'file modified' sta bkbitflg to say 'file modified'
bcc nopath bcc nopath
jsr setpath process pathname before calling command jsr XDOS.GetPath process pathname before calling command
bcs errorsys branch if bad name. bcs errorsys branch if bad name.
nopath asl cmdtemp test for refnum processing nopath asl cmdtemp test for refnum processing
@ -266,16 +275,20 @@ H3274 jsr $FFFF SELF MODIFIED : execute command
errorsys jsr GP.P8errv errorsys jsr GP.P8errv
goodop rts goodop rts
*-------------------------------------- *--------------------------------------
setpath ldy #$01 index to pathname pointer * entry used by rename for 2nd pathname.
*--------------------------------------
XDOS.GetRenPath ldy #$03 get address to new pathname
.HS 2C
*--------------------------------------
XDOS.GetPath ldy #$01 index to pathname pointer
lda (A3L),y low pointer address lda (A3L),y low pointer address
sta zpt sta zpt
iny iny
lda (A3L),y hi pointer address lda (A3L),y hi pointer address
sta zpt+1 sta zpt+1
* entry used by rename for 2nd pathname. ldx #$00 x = index to pathbuf
synpath ldx #$00 x = index to pathbuf
ldy #$00 y = index to input pathname. ldy #$00 y = index to input pathname.
stz prfxflg assume prefix is in use. stz prfxflg assume prefix is in use.
@ -371,7 +384,7 @@ endname lda namcnt validate local name < 16
beq errsyn beq errsyn
H3323 rts H3323 rts
*-------------------------------------- *--------------------------------------
XDOS.SetPrefix jsr setpath call is made to detect if a null path. XDOS.SetPrefix jsr XDOS.GetPath call is made to detect if a null path.
bcc H3333 path ok. bcc H3333 path ok.
ldy pathbuf is it a null pathname? ldy pathbuf is it a null pathname?
@ -750,7 +763,7 @@ H3588 lda (zpt),y
jmp XDOS.Create jmp XDOS.Create
crerr2 rts return and report errors crerr2 rts return and report errors
*--------------------------------------
creat1 ldx #$00 zero out gbuf creat1 ldx #$00 zero out gbuf
H35A0 stz gbuf,x H35A0 stz gbuf,x
@ -891,41 +904,56 @@ cmvparnt lda d_entblk,x
lda h_entln lastly, the length of parent's lda h_entln lastly, the length of parent's
sta gbuf+42 directory entries. sta gbuf+42 directory entries.
cralcblk jsr alc1blk get address of file's data block cralcblk jsr alc1blk get address of file's data block
bcs crerr3 bcs crerr3
sta d_frst sta d_frst
sty d_frst+1 sty d_frst+1
sta bloknml sta bloknml
sty bloknml+1 sty bloknml+1
jsr wrtgbuf go write data block of file jsr wrtgbuf go write data block of file
bcs crerr3 bcs crerr3
inc h_fcnt add 1 to total # of files in this dir inc h_fcnt add 1 to total # of files in this dir
bne credone bne credone
inc h_fcnt+1 inc h_fcnt+1
credone jsr drevise go revise directories with new file credone jsr drevise go revise directories with new file
bcs crerr3 bcs crerr3
jmp upbmap lastly, update volume bitmap jmp upbmap lastly, update volume bitmap
*--------------------------------------
entcalc lda /gbuf set high address of dir entry entcalc lda /gbuf set high address of dir entry
sta zpt+1 index pointer. sta zpt+1 index pointer.
lda #$04 calc address of entry based lda #$04 calc address of entry based
ldx d_entnum on the entry #. ldx d_entnum on the entry #.
H3689 clc H3689 clc
H368A dex addr = gbuf + ((d_entnum-1) * h_entln) H368A dex addr = gbuf + ((d_entnum-1) * h_entln)
beq H3696 branch with carry clear = no errors. beq H3696 branch with carry clear = no errors.
adc h_entln adc h_entln
bcc H368A bcc H368A
inc zpt+1 inc hi address. inc zpt+1 inc hi address.
bcs H3689 always. bcs H3689 always.
H3696 sta zpt newly calculated low address. H3696 sta zpt newly calculated low address.
crerr3 rts carry set if error. crerr3 rts carry set if error.
*--------------------------------------
drevise lda p8date drevise lda p8date
beq drevise1 if no clock, then don't mod date/time. beq drevise1 if no clock, then don't mod date/time.
ldx #$03 ldx #$03
modtime lda p8date,x move last modification date/time modtime lda p8date,x move last modification date/time
sta d_moddt,x to entry being updated. sta d_moddt,x to entry being updated.
dex dex
bpl modtime bpl modtime
drevise1 lda d_attr mark entry as backupable drevise1 lda d_attr mark entry as backupable
ora bkbitflg (bit 5 = backup needed) ora bkbitflg (bit 5 = backup needed)
sta d_attr sta d_attr
@ -935,38 +963,51 @@ drevise1 lda d_attr mark entry as backupable
ldx d_entblk+1 ldx d_entblk+1
jsr rdblk read block into general purpose buffer jsr rdblk read block into general purpose buffer
bcs crerr3 bcs crerr3
jsr entcalc fix up ptr to entry location within gbuf. jsr entcalc fix up ptr to entry location within gbuf.
ldy h_entln now move 'd.' info to directory. ldy h_entln now move 'd.' info to directory.
dey dey
H36CA lda d_stor,y H36CA lda d_stor,y
sta (zpt),y sta (zpt),y
dey dey
bpl H36CA bpl H36CA
lda d_head is the entry block same as lda d_head is the entry block same as
cmp bloknml the entry's header block? cmp bloknml the entry's header block?
bne H36E0 if no, go save entry block bne H36E0 if no, go save entry block
lda d_head+1 then maybe, so test high addresses. lda d_head+1 then maybe, so test high addresses.
cmp bloknml+1 cmp bloknml+1
beq uphead branch if they are the same block. beq uphead branch if they are the same block.
H36E0 jsr wrtgbuf go write updated directory block. H36E0 jsr wrtgbuf go write updated directory block.
bcs crerr3 bcs crerr3
lda d_head get address of header block and lda d_head get address of header block and
ldx d_head+1 ldx d_head+1
jsr rdblk go read in header block to modify. jsr rdblk go read in header block to modify.
bcs crerr3 bcs crerr3
uphead ldy #$01 update current # of files in this dir. uphead ldy #$01 update current # of files in this dir.
H36F2 lda h_fcnt,y H36F2 lda h_fcnt,y
sta gbuf+37,y (current entry count) sta gbuf+37,y (current entry count)
dey dey
bpl H36F2 bpl H36F2
lda h_attr also update header's attributes. lda h_attr also update header's attributes.
sta gbuf+34 sta gbuf+34
jsr wrtgbuf go write updated header jsr wrtgbuf go write updated header
bcs H375A bcs H375A
ripple lda gbuf+4 test for 'root' directory because ripple lda gbuf+4 test for 'root' directory because
and #$F0 if it is, then directory revision and #$F0 if it is, then directory revision
eor #$F0 is complete (leaves carry clear). eor #$F0 is complete (leaves carry clear).
beq H3770 branch if done. beq H3770 branch if done.
lda gbuf+41 get entry # lda gbuf+41 get entry #
sta d_entnum sta d_entnum
lda gbuf+42 and the length of ertries in that dir lda gbuf+42 and the length of ertries in that dir
@ -975,42 +1016,54 @@ ripple lda gbuf+4 test for 'root' directory because
ldx gbuf+40 ldx gbuf+40
jsr rdblk read it jsr rdblk read it
bcs H375A bcs H375A
jsr entcalc get indirect ptr to parent entry in gbuf jsr entcalc get indirect ptr to parent entry in gbuf
lda p8date don't touch mod lda p8date don't touch mod
beq H373B if no clock... beq H373B if no clock...
ldx #$03 update the modification date & time ldx #$03 update the modification date & time
ldy #$24 for this entry too ldy #$24 for this entry too
H3732 lda p8date,x H3732 lda p8date,x
sta (zpt),y sta (zpt),y
dey dey
dex dex
bpl H3732 bpl H3732
H373B jsr wrtgbuf write updated entry back to disk. H373B jsr wrtgbuf write updated entry back to disk.
bcs H375A if error. bcs H375A if error.
ldy #$25 compare current block # to this ldy #$25 compare current block # to this
lda (zpt),y entry's header block. lda (zpt),y entry's header block.
iny iny
cmp bloknml are low addresses the same? cmp bloknml are low addresses the same?
sta bloknml sta bloknml
bne H3751 branch if entry doesn't reside in same bne H3751 branch if entry doesn't reside in same
lda (zpt),y block as header. lda (zpt),y block as header.
cmp bloknml+1 are high address the same? cmp bloknml+1 are high address the same?
beq ripple they are the same, continue to root dir. beq ripple they are the same, continue to root dir.
H3751 lda (zpt),y not same so read in this dir's header. H3751 lda (zpt),y not same so read in this dir's header.
sta bloknml+1 sta bloknml+1
jsr rdgbuf jsr rdgbuf
bcc ripple continue if read was good bcc ripple continue if read was good
H375A rts H375A rts
tsterr lda #$52 not tree or dir, unrecognized type
tsterr lda #MLI.E.NOTPRODOS not tree or dir, unrecognized type
sec sec
rts rts
tstsos lda gbuf pointer to previous dir block tstsos lda gbuf pointer to previous dir block
ora gbuf+1 must be null ora gbuf+1 must be null
bne tsterr bne tsterr
lda gbuf+4 test for header lda gbuf+4 test for header
and #$E0 and #$E0
cmp #$E0 cmp #$E0
bne tsterr bne tsterr
H3770 clc no error H3770 clc no error
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -12,7 +12,7 @@ moventry ldy h_entln Get FileInfo From Directory Block Buffer
tya tya
bne .1 bne .1
.DO LOWERCASE=1 .DO LOWERCASE=2
lda d_stor lda d_stor
and #$F0 and #$F0
cmp #$F0 cmp #$F0
@ -56,10 +56,10 @@ moventry ldy h_entln Get FileInfo From Directory Block Buffer
.5 iny .5 iny
dex dex
bne .4 bne .4
.FIN
.8 lda #$00 no errors .8 lda #$00 no errors
clc clc
.FIN
nofind rts nofind rts
*-------------------------------------- *--------------------------------------
lookfile jsr preproot go find volume lookfile jsr preproot go find volume
@ -99,12 +99,12 @@ phantm2 lda rootstuf-$10,y
H37C2 lda #MLI.E.INVPATH bad path (carry set) H37C2 lda #MLI.E.INVPATH bad path (carry set)
rts rts
*--------------------------------------
lookfil0 stz nofree reset free entry indicator. lookfil0 stz nofree reset free entry indicator.
sec dir to be searched has header in this block. sec dir to be searched has header in this block.
L37C9 stz totent reset entry counter. L37C9 stz totent reset entry counter.
jsr looknam look for name pointed to by pnptr. jsr XDOS.LookupNameInDirBlk look for name pointed to by pnptr.
bcc namfound if name was found. bcc namfound if name was found.
lda entcntl have we looked at all of the lda entcntl have we looked at all of the
@ -229,8 +229,9 @@ filfound lda h_maxent figure out which entry # this is
sta d_entblk+1 sta d_entblk+1
clc clc
rts rts
*--------------------------------------
looknam lda h_maxent reset count of files per block XDOS.LookupNameInDirBlk
lda h_maxent reset count of files per block
sta cntent sta cntent
lda /gbuf lda /gbuf
@ -243,12 +244,14 @@ L38C1 sta zpt reset indirect pointer to gbuf
ldy #$00 ldy #$00
lda (zpt),y get length of name in directory. lda (zpt),y get length of name in directory.
bne isname branch if there is a name. bne isname branch if there is a name.
lda nofree test if a free entry has been declared. lda nofree test if a free entry has been declared.
bne L38F8 yes, inc to next entry. bne L38F8 yes, inc to next entry.
jsr filfound set address for current entry. jsr filfound set address for current entry.
inc nofree indicate a free spot has been found. inc nofree indicate a free spot has been found.
bne L38F8 always. bra L38F8
isname and #$0F strip byte (is checked by 'filfound') isname and #$0F strip byte (is checked by 'filfound')
inc totent inc count of valid files found. inc totent inc count of valid files found.
@ -261,22 +264,42 @@ isname and #$0F strip byte (is checked by 'filfound')
cmpname inx (first) next letter index cmpname inx (first) next letter index
iny iny
.DO LOWERCASE=0 .DO LOWERCASE=1
lda (zpt),y compare names letter by letter phy
cmp pathbuf,x cpy #8 CS if MIN_VERSION to use
.ELSE
lda pathbuf,x ldy #$1C VERSION
jsr XDOS.ToUpper lda (zpt),y
cmp (zpt),y compare names letter by letter bpl .4 no lowercase information
bcs .1
ply
and whichbit,y
beq .5 UPPERCASE
bra .2
.1 iny MIN_VERSION
lda (zpt),y
ply
and whichbit-8,y
beq .5
.2 lda (zpt),y
jsr XDOS.ToLower
bra .6
.4 ply
.FIN .FIN
.5 lda (zpt),y compare names letter by letter
.6 cmp pathbuf,x
bne L38F8 bne L38F8
dec namcnt all letters compared? dec namcnt all letters compared?
bne cmpname no, continue. bne cmpname no, continue.
.DO LOWERCASEMATCH=1
.FIN
clc a match is found. clc a match is found.
noname rts noname rts
@ -290,21 +313,25 @@ L38F8 dec cntent checked all entries in this block?
inc zpt+1 look on 2nd page. inc zpt+1 look on 2nd page.
clc carry should always be clear before clc carry should always be clear before
bcc L38C1 looking at next. bra L38C1 looking at next.
*--------------------------------------
preproot jsr findvol search vcb's and dev's for spec'd volume preproot jsr findvol search vcb's and dev's for spec'd volume
bcs novolume bcs novolume
lda #$00 zero out directory temps lda #$00 zero out directory temps
ldy #$42 ldy #$42
L3914 sta own_blk,y and owner info L3914 sta own_blk,y and owner info
dey dey
bpl L3914 bpl L3914
lda devnum setup device # for this directory lda devnum setup device # for this directory
sta d_dev sta d_dev
jsr movhed0 setup other header info from directory jsr movhed0 setup other header info from directory
ldy #$01 in gbuf and clean up misc info. ldy #$01 in gbuf and clean up misc info.
ldx vcbptr ldx vcbptr
inx inx
L3929 lda vcbbuf+18,x misc info includes L3929 lda vcbbuf+18,x misc info includes
sta h_tblk,y total # of blocks, sta h_tblk,y total # of blocks,
lda vcbbuf+26,x the address of the 1st bitmap, lda vcbbuf+26,x the address of the 1st bitmap,
@ -339,13 +366,17 @@ findvol lda #$00
ldy preflag use prefix volume name to look up vcb. ldy preflag use prefix volume name to look up vcb.
bit prfxflg is this a prefixed path? bit prfxflg is this a prefixed path?
bpl L396F branch if it is bpl L396F branch if it is
tay set ptr to volume name tay set ptr to volume name
L396F sty vnptr and save. L396F sty vnptr and save.
sta devnum zero out dev# until vcb located. sta devnum zero out dev# until vcb located.
L3975 pha acc now used as vcb lookup index. L3975 pha acc now used as vcb lookup index.
tax index pointer to x. tax index pointer to x.
lda vcbbuf,x get vcb volume name length. lda vcbbuf,x get vcb volume name length.
bne L3987 branch if claimed vcb to be tested. bne L3987 branch if claimed vcb to be tested.
L397C ldy vnptr restore pointer to requested vol name. L397C ldy vnptr restore pointer to requested vol name.
pla now adj vcb index to next vcb entry. pla now adj vcb index to next vcb entry.
clc clc
@ -397,6 +428,7 @@ L39C2 jsr rdgbuf read in directory (or prefix dir)
L39CC ldx vcbptr check if current (matched) vcb is active L39CC ldx vcbptr check if current (matched) vcb is active
lda vcbbuf+17,x i.e. does it have open files? lda vcbbuf+17,x i.e. does it have open files?
bmi L39ED report not found if active. bmi L39ED report not found if active.
L39D4 lda vnptr make path ptr same as volume ptr L39D4 lda vnptr make path ptr same as volume ptr
sta namptr sta namptr
jsr mvdevnums copy all device #'s to be examined. jsr mvdevnums copy all device #'s to be examined.

View File

@ -449,7 +449,7 @@ L49C3 dey has user's request been satisfied ?
and #$18 make sure no illegal access bits were and #$18 make sure no illegal access bits were
beq L49D0 set !! branch if legal access. beq L49D0 set !! branch if legal access.
lda #$4E otherwise, access error. lda #MLI.E.LOCKED otherwise, access error.
sec sec
L49CF rts L49CF rts
@ -461,12 +461,12 @@ L49D0 ldy #$0B
L49D9 jmp drevise update with clock also... L49D9 jmp drevise update with clock also...
*-------------------------------------- *--------------------------------------
XDOS.Rename jsr lookfile look for source (original) file. XDOS.Rename jsr lookfile look for source (original) file.
bcc L4A1E if found. bcc XDOS.RenameFileDir if found.
cmp #$40 trying to rename a volume ? cmp #$40 trying to rename a volume ?
bne L49FD no, return error. bne L49FD no, return error.
jsr renpath syntax new name. XDOS.RenameVol jsr XDOS.GetRenPath syntax new name.
bcs L49FD rename error. bcs L49FD rename error.
ldy pathbuf find out if only rootname for new name ldy pathbuf find out if only rootname for new name
@ -478,7 +478,7 @@ XDOS.Rename jsr lookfile look for source (original) file.
lda vcbbuf+17,x lda vcbbuf+17,x
bpl L49FF if volume not busy. bpl L49FF if volume not busy.
lda #$50 file busy error. lda #MLI.E.OPEN file busy error.
L49FD sec L49FD sec
rts rts
@ -501,16 +501,18 @@ L4A10 lda pathbuf,y move new name to vcb.
L4A1C clc no errors L4A1C clc no errors
rts rts
*-------------------------------------- *--------------------------------------
L4A1E jsr getnamptr set y = 1st char of path, x = 0. XDOS.RenameFileDir
jsr getnamptr set y = 1st char of path, x = 0.
L4A21 lda pathbuf,y move original name to gbuf L4A21 lda pathbuf,y move original name to gbuf
sta gbuf,x for later comparison to new name. sta gbuf,x for later comparison to new name.
bmi L4A2D if last character has been moved bmi L4A2D if last character has been moved
iny otherwise, get the next one. iny otherwise, get the next one.
inx inx
bra L4A21 always. bra L4A21
L4A2D jsr renpath get new name syntaxed. L4A2D jsr XDOS.GetRenPath get new name syntaxed.
bcs L4A74 rename error. bcs L4A74 rename error.
jsr getnamptr set y = path, x = 0. jsr getnamptr set y = path, x = 0.
@ -521,22 +523,18 @@ L4A38 cmp gbuf,x to make sure they are in the same dir.
php save result of comparison. php save result of comparison.
and #$F0 was last char really a count ? and #$F0 was last char really a count ?
bne L4A46 if not. bne L4A46 if not.
sty rnptr save pointer to next name, it might sty rnptr save pointer to next name, it might
stx namptr be the last. stx namptr be the last.
L4A46 plp result of last comparison ? L4A46 plp result of last comparison ?
bne L4A52 branch if different character or count. bne L4A52 branch if different character or count.
inx bump pointers. inx bump pointers.
iny iny
lda pathbuf,y was it the last character ? lda pathbuf,y was it the last character ?
bne L4A38 if not. bne L4A38 if not.
.DO LOWERCASE=1
.FIN
clc no operation, names were the same. clc no operation, names were the same.
rts rts
@ -569,7 +567,7 @@ L4A76 jsr lookfile test for duplicate file name.
L4A7F cmp #MLI.E.FNOTFND was it a valid file not found ? L4A7F cmp #MLI.E.FNOTFND was it a valid file not found ?
bne L4A74 no, rename error. bne L4A74 no, rename error.
jsr setpath syntax pathname of file to be changed. jsr XDOS.GetPath syntax pathname of file to be changed.
jsr findfile get all the info on this file. jsr findfile get all the info on this file.
bcs L4A74 rename error. bcs L4A74 rename error.
@ -582,6 +580,8 @@ L4A7F cmp #MLI.E.FNOTFND was it a valid file not found ?
bne L4A9D branch if ok to rename bne L4A9D branch if ok to rename
lda #MLI.E.LOCKED otherwise, illegal access. lda #MLI.E.LOCKED otherwise, illegal access.
.HS 2C BIT ABS
L4A98 lda #MLI.E.INCFF
L4A9B sec L4A9B sec
rts rts
@ -591,12 +591,9 @@ L4A9D lda d_stor find out which storage type.
beq L4AAE then ok. beq L4AAE then ok.
cmp #$40 is it a seed, sapling or tree ? cmp #$40 is it a seed, sapling or tree ?
bcc L4AAE then ok. bcs L4A98 file incompatible error.
lda #MLI.E.INCFF file incompatible error. L4AAE jsr XDOS.GetRenPath since both names go into the directory,
bne L4A9B always.
L4AAE jsr renpath since both names go into the directory,
bcs L4A74 syntax the new name to get the local bcs L4A74 syntax the new name to get the local
ldy rnptr name address. y = index to local name ldy rnptr name address. y = index to local name
@ -632,30 +629,25 @@ L4ABE lda pathbuf,y move local name to dir entry workspace.
bcs L4A74 bcs L4A74
L4AF0 jmp drevise1 end by updating all path directories. L4AF0 jmp drevise1 end by updating all path directories.
*--------------------------------------
mvrotnam ldx #$00 mvrotnam ldx #$00
L4AF5 sta gbuf+4,x L4AF5 sta gbuf+4,x
inx inx
iny iny
lda pathbuf,y lda pathbuf,y
bne L4AF5 bne L4AF5
jmp wrtgbuf write changed header block. jmp wrtgbuf write changed header block.
*--------------------------------------
renpath ldy #$03 get address to new pathname
lda (A3L),y
iny
sta zpt
lda (A3L),y set up for syntaxing routine (synpath)
sta zpt+1
jmp synpath do syntax (returns y = local namelength)
getnamptr ldy #$00 return pointer to 1st name of path. getnamptr ldy #$00 return pointer to 1st name of path.
bit prfxflg is this a prefixed name ? bit prfxflg is this a prefixed name ?
bmi L4B1A branch if not. bmi .1 branch if not.
ldy newpfxptr
L4B1A ldx #$00
rts
ldy newpfxptr
.1 ldx #$00
rts
*--------------------------------------
MAN MAN
SAVE USR/SRC/PRODOS.FX/PRODOS.S.XDOS.E SAVE USR/SRC/PRODOS.FX/PRODOS.S.XDOS.E
LOAD USR/SRC/PRODOS.FX/PRODOS.S LOAD USR/SRC/PRODOS.FX/PRODOS.S

View File

@ -543,12 +543,12 @@ XDOS.IsValidFirstChar.SEC
sec sec
rts rts
*-------------------------------------- *--------------------------------------
XDOS.ToUpper cmp #'a' *XDOS.ToUpper cmp #'a'
bcc .8 * bcc .8
cmp #'z'+1 * cmp #'z'+1
bcs .8 * bcs .8
eor #$20 * eor #$20
.8 rts *.8 rts
*-------------------------------------- *--------------------------------------
XDOS.ToLower cmp #'A' XDOS.ToLower cmp #'A'
bcc .8 bcc .8
@ -718,9 +718,8 @@ whichbit .HS 8040201008040201
ofcbtbl .HS 0C0D1819151617 ofcbtbl .HS 0C0D1819151617
inftabl .HS 1E101F2080939421 inftabl .HS 1E101F2080939421
.HS 22232418191A1B .HS 22232418191A1B
deathmsg .HS 20 deathmsg .AS "RESTART SYSTEM-$0"
.AS -"RESTART SYSTEM-$01" deathmsg.LEN .EQ *-deathmsg
.HS 20
*-------------------------------------- *--------------------------------------
XDOS.DATA .DUMMY XDOS.DATA .DUMMY

View File

@ -115,13 +115,9 @@ pbuf .EQ $0280 prefix buffer
softev .EQ $03F2 RESET vector softev .EQ $03F2 RESET vector
pwredup .EQ $03F4 power up byte pwredup .EQ $03F4 power up byte
nmivect .EQ $03FB nmi handler nmivect .EQ $03FB nmi handler
txtp2 .EQ $0400 test location for aux card
vmode .EQ $04FB video firmware operating mode vmode .EQ $04FB video firmware operating mode
ch80col .EQ $057B 80 column ch position ch80col .EQ $057B 80 column ch position
vline11 .EQ $0528 line 11 of display
vline12 .EQ $05A8 line 12 of display
vline13 .EQ $0628 line 13 of display
vline16 .EQ $07A8 line 16 of display vline16 .EQ $07A8 line 16 of display
dbuf .EQ $0C00 8 page directory buffer dbuf .EQ $0C00 8 page directory buffer

View File

@ -185,7 +185,7 @@ CS.END
*-------------------------------------- *--------------------------------------
* Initialized DATA * Initialized DATA
*-------------------------------------- *--------------------------------------
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint" MSG.USAGE .AZ "Usage : CIFSD <ip|host> sharename mountpoint"
MSG.UNKNOWN .AZ "%s: Unknown host\r\n" MSG.UNKNOWN .AZ "%s: Unknown host\r\n"

View File

@ -110,7 +110,7 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
rts rts
*-------------------------------------- *--------------------------------------
CS.END CS.END
LIBGUI .AZ "libgui" LIBGUI .AZ "LIBGUI"
hLIBGUI .BS 1 hLIBGUI .BS 1
*-------------------------------------- *--------------------------------------
MouseData .BS S.MOUSE MouseData .BS S.MOUSE

View File

@ -341,7 +341,7 @@ CS.QUIT lda hSrvSocket
CS.END CS.END
*-------------------------------------- *--------------------------------------
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing..." MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing..."
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly." MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly."
MSG.INITOK .AZ "HTTPD:Listening on port %D, root dir: %s.\r\n" MSG.INITOK .AZ "HTTPD:Listening on port %D, root dir: %s.\r\n"

View File

@ -470,7 +470,7 @@ CS.CLEANUP lda ZPhGetLine
*-------------------------------------- *--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
LIBCRYPT .AZ "libcrypt" LIBCRYPT .AZ "LIBCRYPT"
hLIBCRYPT .BS 1 hLIBCRYPT .BS 1
MSG.NOAUTH .AS "\r\n\r\nA2osX-Login:No ETC/PASSWD file present, Logged as ROOT.\r\n" MSG.NOAUTH .AS "\r\n\r\nA2osX-Login:No ETC/PASSWD file present, Logged as ROOT.\r\n"
.AS "Consider adding ROOT password with USERADD command.\r\n" .AS "Consider adding ROOT password with USERADD command.\r\n"

View File

@ -234,7 +234,7 @@ CS.QUIT lda hSrvSocket
CS.END CS.END
*-------------------------------------- *--------------------------------------
hLIBTCPIP .BS 1 hLIBTCPIP .BS 1
LIBTCPIP .AZ "libtcpip" LIBTCPIP .AZ "LIBTCPIP"
MSG.TCPWAIT .AZ "TELNETD:Waiting for TCP/IP initializing..." MSG.TCPWAIT .AZ "TELNETD:Waiting for TCP/IP initializing..."
MSG.INITOK .AZ "TELNETD:Init Ok, Listening." MSG.INITOK .AZ "TELNETD:Init Ok, Listening."
MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly." MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly."