mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
Kernel 0.94
This commit is contained in:
parent
d665c03158
commit
5ba9494dc8
@ -606,8 +606,8 @@ onlinerr rts
|
||||
online1 jsr fnddvcb see if it has already been logged in.
|
||||
bcs olinerr1 branch if vcb is full.
|
||||
|
||||
ldx #$00 read in root (volume) directory
|
||||
lda #$02
|
||||
ldx #$00 read in root (volume) directory
|
||||
jsr XDOS.ReadGBufAX read it into general purpose buffer.
|
||||
ldx vcbptr index to the vcb entry.
|
||||
bcc volfound branch if read was ok.
|
||||
@ -622,7 +622,15 @@ online1 jsr fnddvcb see if it has already been logged in.
|
||||
rtrnerr tya error value.
|
||||
bcs olinerr1 branch if unable to read.
|
||||
|
||||
volfound lda VCBs,x has it been logged in before?
|
||||
volfound .DO LOWERCASE=1
|
||||
lda gbuf+$23
|
||||
sta h_entln
|
||||
lda gbuf+$24
|
||||
sta h_maxent
|
||||
jsr XDOS.UnpackGBuf
|
||||
.FIN
|
||||
|
||||
lda VCBs,x has it been logged in before?
|
||||
beq H349E if not.
|
||||
|
||||
lda VCBs+VCB.OFCNT,x it has, are there active files?
|
||||
@ -744,12 +752,20 @@ clrdir sta gbuf+2,x
|
||||
inx
|
||||
bne clrdir
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf write prepared directory extension.
|
||||
.FIN
|
||||
bcs H351D if error
|
||||
|
||||
lda own_blk
|
||||
ldx own_blk+1
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX read in parent directory block
|
||||
.FIN
|
||||
ldx own_ent and calc entry address.
|
||||
lda /gbuf
|
||||
sta zpt+1
|
||||
@ -775,7 +791,11 @@ H3588 lda (zpt),y
|
||||
eor #$18 done with usage/eof update?
|
||||
bne H3588 branch if not.
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf go update parent.
|
||||
.FIN
|
||||
bcs crerr2
|
||||
|
||||
jmp XDOS.Create
|
||||
@ -832,10 +852,6 @@ crname lda pathbuf,x move local name as filename
|
||||
dey
|
||||
bne crname
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.LC2UCBM
|
||||
.FIN
|
||||
|
||||
ldy #$03 index to 'access' parameter
|
||||
lda (A3L),y
|
||||
sta d_attr
|
||||
@ -969,9 +985,13 @@ drevise1 lda bkbitflg (bit 5 = backup needed)
|
||||
|
||||
lda d_dev get device # of directory
|
||||
sta devnum to be revised
|
||||
lda d_entblk and address of direcotry block.
|
||||
lda d_entblk and address of directory block.
|
||||
ldx d_entblk+1
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX read block into general purpose buffer
|
||||
.FIN
|
||||
bcs crerr3
|
||||
|
||||
jsr entcalc fix up ptr to entry location within gbuf.
|
||||
@ -992,12 +1012,20 @@ drevise1 lda bkbitflg (bit 5 = backup needed)
|
||||
cmp bloknml+1
|
||||
beq uphead branch if they are the same block.
|
||||
|
||||
H36E0 jsr XDOS.WriteGBuf go write updated directory block.
|
||||
H36E0 .DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf go write updated directory block.
|
||||
.FIN
|
||||
bcs crerr3
|
||||
|
||||
lda d_head get address of header block and
|
||||
ldx d_head+1
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX go read in header block to modify.
|
||||
.FIN
|
||||
bcs crerr3
|
||||
|
||||
uphead ldy #$01 update current # of files in this dir.
|
||||
@ -1010,7 +1038,11 @@ H36F2 lda h_fcnt,y
|
||||
lda h_attr also update header's attributes.
|
||||
sta gbuf+34
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf go write updated header
|
||||
.FIN
|
||||
bcs H375A
|
||||
|
||||
ripple lda gbuf+4 test for 'root' directory because
|
||||
@ -1025,7 +1057,11 @@ ripple lda gbuf+4 test for 'root' directory because
|
||||
|
||||
lda gbuf+39 get addr of parent entry's dir block
|
||||
ldx gbuf+40
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX read it
|
||||
.FIN
|
||||
bcs H375A
|
||||
|
||||
jsr entcalc get indirect ptr to parent entry in gbuf
|
||||
@ -1042,23 +1078,29 @@ H3732 lda p8date,x
|
||||
dex
|
||||
bpl H3732
|
||||
|
||||
H373B jsr XDOS.WriteGBuf write updated entry back to disk.
|
||||
H373B .DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf write updated entry back to disk.
|
||||
.FIN
|
||||
bcs H375A if error.
|
||||
|
||||
ldy #$25 compare current block # to this
|
||||
ldy #$26 compare current block # to this
|
||||
lda (zpt),y entry's header block.
|
||||
iny
|
||||
tax
|
||||
dey
|
||||
lda (zpt),y block as header.
|
||||
cmp bloknml are low addresses the same?
|
||||
sta bloknml
|
||||
bne H3751 branch if entry doesn't reside in same
|
||||
|
||||
lda (zpt),y block as header.
|
||||
cmp bloknml+1 are high address the same?
|
||||
cpx bloknml+1 are high address the same?
|
||||
beq ripple they are the same, continue to root dir.
|
||||
|
||||
H3751 lda (zpt),y not same so read in this dir's header.
|
||||
sta bloknml+1
|
||||
jsr XDOS.ReadGBuf
|
||||
H3751 .DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX
|
||||
.FIN
|
||||
bcc ripple continue if read was good
|
||||
|
||||
H375A rts
|
||||
|
@ -111,7 +111,11 @@ L37EB sta entcntl keep a running count.
|
||||
beq errdir then not all entries were acct'd for.
|
||||
|
||||
L37FC ldx gbuf+3 acc has value for block# (low).
|
||||
jsr XDOS.ReadGBufAX go read the next linked directory.
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX go read the next linked directory.
|
||||
.FIN
|
||||
bcc L37C9 if no error.
|
||||
rts return error in acc.
|
||||
|
||||
@ -148,16 +152,20 @@ namfound jsr nxtpname adj index to next name in path.
|
||||
cmp #$D0 is it a subdirectory?
|
||||
bne errpath1 error if not.
|
||||
|
||||
ldy #$11 get address of 1st subdirectory block
|
||||
ldy #$12 get address of 1st subdirectory block
|
||||
lda (zpt),y
|
||||
sta bloknml (no checking done for a valid block#)
|
||||
iny
|
||||
sta d_head save as file's header block too
|
||||
sta d_head+1 save as file's header block too
|
||||
tax
|
||||
|
||||
dey
|
||||
lda (zpt),y
|
||||
sta bloknml+1
|
||||
sta d_head+1
|
||||
sta d_head
|
||||
|
||||
jsr XDOS.ReadGBuf read subdirectory into gbuf.
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX read subdirectory into gbuf.
|
||||
.FIN
|
||||
bcs lookfil0.RTS if error.
|
||||
|
||||
lda gbuf+37 get the # of files contained in this
|
||||
@ -272,37 +280,8 @@ isname and #$0F strip byte (is checked by 'filfound')
|
||||
cmpname inx (first) next letter index
|
||||
iny
|
||||
|
||||
.DO LOWERCASE=1
|
||||
phy
|
||||
cpy #8 CS if MIN_VERSION to use
|
||||
|
||||
ldy #$1D MIN_VERSION
|
||||
lda (zpt),y
|
||||
bpl .4 no lowercase information
|
||||
|
||||
bcs .1
|
||||
|
||||
ply
|
||||
and whichbit,y
|
||||
beq .5 UPPERCASE
|
||||
|
||||
bra .2
|
||||
|
||||
.1 dey VERSION
|
||||
lda (zpt),y
|
||||
|
||||
ply
|
||||
and whichbit-8,y
|
||||
beq .5
|
||||
|
||||
.2 lda (zpt),y
|
||||
jsr XDOS.ToLower
|
||||
bra .6
|
||||
|
||||
.4 ply
|
||||
.FIN
|
||||
.5 lda (zpt),y compare names letter by letter
|
||||
.6 cmp pathbuf,x
|
||||
lda (zpt),y compare names letter by letter
|
||||
cmp pathbuf,x
|
||||
bne L38F8
|
||||
|
||||
dec namcnt all letters compared?
|
||||
@ -409,30 +388,44 @@ L398A cmp pathbuf,y is it the same as requested vol name?
|
||||
|
||||
plx restore pointer to matching vcb.
|
||||
stx vcbptr save it for future reference.
|
||||
lda VCBs+VCB.DEV,x get it's device #
|
||||
lda VCBs+VCB.DEV,x get it's device #
|
||||
sta devnum and save it.
|
||||
stz bloknml+1 assume prefix is not used and
|
||||
lda #$02 that root directory is to be used.
|
||||
sta bloknml
|
||||
|
||||
lda #$02 assume prefix is not used and
|
||||
ldx #$00 that root directory is to be used.
|
||||
|
||||
pha
|
||||
|
||||
lda vnptr = 0 if no prefix.
|
||||
|
||||
L39AC tay if prefix then find ptr to prefixed
|
||||
sta namptr dir name. save path ptr.
|
||||
beq L39C2 branch if no prefix.
|
||||
|
||||
sec
|
||||
adc pathbuf,y inc to next dir in prefix path.
|
||||
bcc L39AC branch if another dir in prefix.
|
||||
|
||||
pla
|
||||
lda p_blok volume verification will occur at
|
||||
sta bloknml subdirectory level.
|
||||
lda p_blok+1
|
||||
sta bloknml+1
|
||||
pha
|
||||
ldx p_blok+1 subdirectory level.
|
||||
|
||||
* verify volume name
|
||||
|
||||
L39C2 jsr XDOS.ReadGBuf read in directory (or prefix dir)
|
||||
L39C2 pla
|
||||
|
||||
jsr XDOS.ReadGBufAX read in directory (or prefix dir)
|
||||
bcs L39CC if error then look on other devices.
|
||||
|
||||
.DO LOWERCASE=1
|
||||
lda gbuf+$23
|
||||
sta h_entln
|
||||
lda gbuf+$24
|
||||
sta h_maxent
|
||||
jsr XDOS.UnpackGBuf
|
||||
.FIN
|
||||
|
||||
jsr XDOS.CheckVolName compare dir name with path name.
|
||||
bcc L39F0 if they match, stop looking.
|
||||
|
||||
@ -478,7 +471,11 @@ L39FE sta devnum preserve device to be checked next.
|
||||
|
||||
L3A16 lda #$02 go read root dir into gbuf
|
||||
ldx #$00
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX
|
||||
.FIN
|
||||
bcs L39E2 ignore if unable to read.
|
||||
|
||||
jsr logvcb go log in volume name.
|
||||
@ -561,27 +558,7 @@ XDOS.CheckVolName
|
||||
L3A90 sec indicate not found
|
||||
rts
|
||||
|
||||
L3A92 .DO LOWERCASE=1
|
||||
lda gbuf+$21 MIN_VERSION
|
||||
bpl .8
|
||||
|
||||
cpx #8
|
||||
bcs .1
|
||||
|
||||
and whichbit,x
|
||||
beq .8
|
||||
bra .2
|
||||
|
||||
.1 lda gbuf+$20 VERSION
|
||||
and whichbit-8,x
|
||||
beq .8
|
||||
|
||||
.2 lda gbuf+4,x
|
||||
jsr XDOS.ToLower
|
||||
bra L3A95
|
||||
|
||||
.8 .FIN
|
||||
lda gbuf+4,x next char
|
||||
L3A92 lda gbuf+4,x next char
|
||||
|
||||
L3A95 cmp pathbuf,y
|
||||
bne L3A90 if not the same.
|
||||
@ -628,11 +605,7 @@ L3AB2 stz VCBs,x
|
||||
ora vcbptr
|
||||
tax
|
||||
|
||||
L3ACE .DO LOWERCASE=1
|
||||
jsr XDOS.GetVolNameCharGBufY
|
||||
.ELSE
|
||||
lda gbuf+4,y
|
||||
.FIN
|
||||
L3ACE lda gbuf+4,y
|
||||
sta VCBs,x
|
||||
dex
|
||||
dey
|
||||
@ -685,12 +658,7 @@ cmpvcb lda gbuf+4 with name in directory.
|
||||
ora xvcbptr
|
||||
tax
|
||||
|
||||
L3B18 .DO LOWERCASE=1
|
||||
jsr XDOS.GetVolNameCharGBufY
|
||||
.ELSE
|
||||
lda gbuf+4,y
|
||||
.FIN
|
||||
|
||||
L3B18 lda gbuf+4,y
|
||||
cmp VCBs,x
|
||||
|
||||
L3B1E sec anticipate different names.
|
||||
@ -755,7 +723,7 @@ tkfrecnt jsr cntbms get # of bitmaps
|
||||
lda VCBs+VCB.BMAP+1,x
|
||||
sta bloknml+1
|
||||
|
||||
L3B81 jsr XDOS.ReadGBuf use general buffer for temp space to
|
||||
L3B81 jsr XDOS.ReadGBuf use general buffer for temp space to
|
||||
bcs L3BC1 count free blocks (bits).
|
||||
|
||||
jsr count
|
||||
@ -835,8 +803,8 @@ L3BFA ora #$00
|
||||
rts
|
||||
|
||||
cntbms ldx vcbptr
|
||||
ldy VCBs+VCB.TBLK+1,x return the # of bitmaps
|
||||
lda VCBs+VCB.TBLK,x possible with the total count
|
||||
ldy VCBs+VCB.TBLK+1,x return the # of bitmaps
|
||||
lda VCBs+VCB.TBLK,x possible with the total count
|
||||
bne L3C0B found in the vcb.
|
||||
|
||||
dey adj for bitmap block boundary
|
||||
|
@ -237,11 +237,22 @@ wrtbmap lda #$02 write command.
|
||||
|
||||
txa error code
|
||||
L3DB6 rts
|
||||
*--------------------------------------
|
||||
.DO LOWERCASE=1
|
||||
XDOS.WriteGBufDir
|
||||
jsr XDOS.PackGBuf
|
||||
bra XDOS.WriteGBuf
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
XDOS.ReadGBuf_d_frst
|
||||
lda d_frst read 1st block of directory into gbuf
|
||||
ldx d_frst+1
|
||||
|
||||
.DO LOWERCASE=1
|
||||
XDOS.ReadGBufAXDir
|
||||
jsr XDOS.ReadGBufAX
|
||||
bcc XDOS.UnpackGBuf
|
||||
rts
|
||||
.FIN
|
||||
XDOS.ReadGBufAX sta bloknml
|
||||
stx bloknml+1
|
||||
|
||||
@ -275,6 +286,131 @@ XDOS.RWBlock php no interrupts
|
||||
.9 plp file i/o error. restore interrupts.
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.DO LOWERCASE=1
|
||||
|
||||
XDOS.UnpackGBuf jsr XDOS.Pack.Init
|
||||
|
||||
.1 lda (zpt)
|
||||
and #$0F
|
||||
beq .6
|
||||
|
||||
ldy #$1D MIN_VERSION
|
||||
lda (zpt),y
|
||||
bpl .6 no lowercase information
|
||||
|
||||
lda (zpt)
|
||||
and #$0F
|
||||
tay
|
||||
|
||||
.2 cpy #8 CS if MIN_VERSION to use
|
||||
phy
|
||||
|
||||
bcs .3
|
||||
|
||||
ldy #$1D MIN_VERSION
|
||||
lda (zpt),y
|
||||
|
||||
ply
|
||||
and whichbit,y
|
||||
beq .5
|
||||
|
||||
bra .4
|
||||
|
||||
.3 ldy #$1C VERSION
|
||||
lda (zpt),y
|
||||
|
||||
ply
|
||||
and whichbit-8,y
|
||||
beq .5
|
||||
|
||||
.4 lda (zpt),y
|
||||
eor #$20 to lowercase
|
||||
sta (zpt),y
|
||||
|
||||
.5 dey
|
||||
bne .2
|
||||
|
||||
.6 jsr XDOS.Pack.Next
|
||||
dex
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
XDOS.PackGBuf jsr XDOS.Pack.Init
|
||||
|
||||
.1 lda (zpt)
|
||||
and #$0F
|
||||
beq .6
|
||||
|
||||
stz XDOS.PackGBuf.Bitmap
|
||||
stz XDOS.PackGBuf.Bitmap+1
|
||||
|
||||
tay
|
||||
|
||||
.2 lda (zpt),y
|
||||
|
||||
cmp #'A'
|
||||
bcc .5
|
||||
|
||||
cmp #'Z'+1
|
||||
bcs .5
|
||||
|
||||
eor #$20 to uppercase
|
||||
sta (zpt),y
|
||||
|
||||
cpy #8 CS if MIN_VERSION to use
|
||||
bcs .3
|
||||
|
||||
lda whichbit,y
|
||||
tsb XDOS.PackGBuf.Bitmap
|
||||
bra .4
|
||||
|
||||
.3 lda whichbit-8,y
|
||||
tsb XDOS.PackGBuf.Bitmap+1
|
||||
|
||||
.4 lda #$80
|
||||
tsb XDOS.PackGBuf.Bitmap+1
|
||||
|
||||
.5 dey
|
||||
bne .2
|
||||
|
||||
ldy #$1C VERSION
|
||||
lda XDOS.PackGBuf.Bitmap
|
||||
sta (zpt),y
|
||||
|
||||
iny MIN_VERSION
|
||||
lda XDOS.PackGBuf.Bitmap+1
|
||||
sta (zpt),y
|
||||
|
||||
.6 jsr XDOS.Pack.Next
|
||||
dex
|
||||
bne .1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
XDOS.Pack.Init lda #4
|
||||
sta zpt
|
||||
lda /gbuf
|
||||
sta zpt+1
|
||||
|
||||
ldx h_maxent
|
||||
beq *
|
||||
rts
|
||||
*--------------------------------------
|
||||
XDOS.Pack.Next lda h_entln
|
||||
clc
|
||||
adc zpt
|
||||
sta zpt
|
||||
bcc .8
|
||||
|
||||
inc zpt+1
|
||||
|
||||
.8 rts
|
||||
|
||||
XDOS.PackGBuf.Bitmap .BS 2
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
XDOS.GetMark ldx fcbptr index to open fcb.
|
||||
|
||||
|
@ -137,7 +137,11 @@ L4723 lda FCBs,y note: this code depends on the defined
|
||||
|
||||
lda d_head read the directory header for this file
|
||||
ldx d_head+1
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.ReadGBufAXDir
|
||||
.ELSE
|
||||
jsr XDOS.ReadGBufAX into the general purpose buffer.
|
||||
.FIN
|
||||
bcs L46E6 if error.
|
||||
|
||||
jsr movhed0 move header info.
|
||||
@ -604,7 +608,11 @@ XDOS.ACL jsr XDOS.FindDirOrVol
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jmp XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jmp XDOS.WriteGBuf
|
||||
.FIN
|
||||
|
||||
.2 ldy #S.FIEX.ACL+7+3
|
||||
|
||||
@ -784,61 +792,19 @@ L4ABE lda pathbuf,y move local name to dir entry workspace.
|
||||
jsr XDOS.UpdateHdr
|
||||
bcs L4A74
|
||||
|
||||
L4AF0 .DO LOWERCASE=1
|
||||
jsr XDOS.LC2UCBM
|
||||
.FIN
|
||||
|
||||
jmp drevise1 end by updating all path directories.
|
||||
L4AF0 jmp drevise1 end by updating all path directories.
|
||||
*--------------------------------------
|
||||
XDOS.UpdateHdr .DO LOWERCASE=1
|
||||
stz gbuf+$20 VERSION
|
||||
stz gbuf+$21 MIN VERSION
|
||||
XDOS.UpdateHdr ldx #$00
|
||||
|
||||
ldx #$00
|
||||
|
||||
.1 sta gbuf+4,x
|
||||
|
||||
.1 sta gbuf+4,x
|
||||
inx
|
||||
iny
|
||||
lda pathbuf,y
|
||||
beq .8
|
||||
|
||||
cmp #'a'
|
||||
bcc .1
|
||||
cmp #'z'+1
|
||||
bcs .1
|
||||
|
||||
pha
|
||||
|
||||
cpx #8
|
||||
bcs .2
|
||||
|
||||
lda whichbit,x
|
||||
tsb gbuf+$21
|
||||
bra .3
|
||||
|
||||
.2 lda whichbit-8,x
|
||||
tsb gbuf+$20
|
||||
|
||||
.3 lda #$80
|
||||
tsb gbuf+$21
|
||||
|
||||
pla
|
||||
eor #$20
|
||||
bra .1
|
||||
|
||||
.8 jmp XDOS.WriteGBuf write changed header block.
|
||||
bne .1
|
||||
|
||||
.DO LOWERCASE=1
|
||||
jmp XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
|
||||
ldx #$00
|
||||
|
||||
L4AF5 sta gbuf+4,x
|
||||
inx
|
||||
iny
|
||||
lda pathbuf,y
|
||||
bne L4AF5
|
||||
|
||||
jmp XDOS.WriteGBuf write changed header block.
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
@ -114,7 +114,11 @@ L4BCF cmp #$D0 is this a directory file ?
|
||||
bne L4C1Abis if so, access error.
|
||||
|
||||
L4BF6 sta gbuf+4 make it an invalid subdirectory
|
||||
.DO LOWERCASE=1
|
||||
jsr XDOS.WriteGBufDir
|
||||
.ELSE
|
||||
jsr XDOS.WriteGBuf
|
||||
.FIN
|
||||
bcs L4C1A
|
||||
|
||||
L4BFE lda gbuf+2 get forward link.
|
||||
@ -602,42 +606,6 @@ L4EB8 lda (usrbuf),y move all 4 pages of the buffer to
|
||||
cmembit.CLCRTS
|
||||
clc no errors
|
||||
L4EC7 rts
|
||||
*--------------------------------------
|
||||
.DO LOWERCASE=1
|
||||
XDOS.LC2UCBM stz d_sosver
|
||||
stz d_comp
|
||||
|
||||
lda d_stor
|
||||
and #$0F
|
||||
tay
|
||||
|
||||
.1 lda d_stor,y
|
||||
cmp #'a'
|
||||
bcc .4
|
||||
cmp #'z'+1
|
||||
bcs .4
|
||||
|
||||
eor #$20
|
||||
sta d_stor,y
|
||||
|
||||
cpy #8
|
||||
bcs .2
|
||||
|
||||
lda whichbit,y
|
||||
tsb d_comp
|
||||
bra .3
|
||||
|
||||
.2 lda whichbit-8,y
|
||||
tsb d_sosver
|
||||
|
||||
.3 lda #$80
|
||||
tsb d_comp
|
||||
|
||||
.4 dey
|
||||
bne .1
|
||||
|
||||
rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
XDOS.IsValidChar
|
||||
cmp #'0'
|
||||
@ -666,39 +634,6 @@ XDOS.IsValidFirstChar.RTS
|
||||
XDOS.IsValidFirstChar.SEC
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
.DO LOWERCASE=1
|
||||
XDOS.GetVolNameCharGBufY
|
||||
bit gbuf+$21
|
||||
bpl .8
|
||||
|
||||
cpy #8
|
||||
bcs .2
|
||||
|
||||
lda whichbit,y
|
||||
bit gbuf+$21
|
||||
beq .8
|
||||
bra .7
|
||||
|
||||
.2 lda whichbit-8,y
|
||||
bit gbuf+$20
|
||||
beq .8
|
||||
|
||||
.7 lda gbuf+4,y
|
||||
jmp XDOS.ToLower
|
||||
|
||||
.8 lda gbuf+4,y
|
||||
rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
.DO LOWERCASE=1
|
||||
XDOS.ToLower cmp #'A'
|
||||
bcc .8
|
||||
cmp #'Z'+1
|
||||
bcs .8
|
||||
eor #$20
|
||||
.8 rts
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
* move 3 pages of dispatcher from 'displc2' to 'dispadr'
|
||||
* this move routine must be resident above $E000 at all times
|
||||
|
Loading…
Reference in New Issue
Block a user