Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-13 08:09:00 +01:00
parent e20b870ff4
commit 7473f5de56
4 changed files with 70 additions and 17 deletions

View File

@ -25,10 +25,6 @@ XDOS.MLI cld no decimal.
ldy #$01 find out if command is valid.
lda (A3L),y get command #
* cmp #$D5
* bne .77
* >DEBUG
*.77
lsr and hash it to a range of 0-$1F
lsr
lsr
@ -911,12 +907,21 @@ cmvpass lda pass,x header info.
lda #$75
sta gbuf+20
ldx #XDOS.VolHdrDef.Cnt-1
lda #$C3
sta gbuf+34
.1 lda XDOS.VolHdrDef,x
sta gbuf+34,x
dex
bpl .1
lda #$27
sta gbuf+35
lda #$0D
sta gbuf+36
* ldx #XDOS.VolHdrDef.Cnt-1
*.1 lda XDOS.VolHdrDef,x
* sta gbuf+34,x
* dex
* bpl .1
.FIN

View File

@ -213,10 +213,10 @@ wrtbmap lda #$02 write command.
bne L3D92 always.
wrtgbuf lda #$02 write command
bne L3DC9 always.
.HS 2C BIT ABS
rdgbuf lda #$01 read command.
L3DC9 sta A4L pass to device handler.
sta A4L pass to device handler.
lda /gbuf general buffer.
dobitmap php no interrupts
@ -304,6 +304,7 @@ L3E50 ldy #$A4 clear illegal filetype entry in fcb
lda #$43 and report error
sec
rts
L3E59 lda fcbbuf+7,y use storage type as # of index levels
sta levels since 1=seed, 2=sapling, 3=tree.
lda fcbbuf+8,y
@ -402,17 +403,22 @@ L3F18 ldy fcbptr set status to show what's missing
bcc svmark zeroed. branch if it doesn't need zeroed
jsr zeroindex zero index block in user's i/o buffer
bra svmark
zeroindex lda #$00
tay
L3F30 sta (zpt),y zero out the index half of the user's
iny i/o buffer
bne L3F30
inc zpt+1
L3F37 sta (zpt),y
iny
bne L3F37
dec zpt+1 restore proper address
rts
zipdata lda #$00
tay
L3F42 sta (datptr),y zero out data area
@ -455,6 +461,7 @@ clrstats ldy fcbptr clear allocation states for data block
and #$F8
sta fcbbuf+8,y indicates that either they exist now
rts or unnecessary for current position.
dirmark cmp #$0D is it a directory ?
beq L3F9C yes...
@ -486,6 +493,7 @@ dirpos1 lda (datptr),y get link address of previous or next
lda (datptr),y get the rest of the link.
bne L3FD8 branch if certain link exists.
bcs L3FD8 was the low part null as well ?
lda #MLI.E.EOF something is wrong with directory file!
L3FD6 sec error.
rts
@ -558,12 +566,15 @@ fileio1 php no interrupts
stz p8error clear global error code.
jsr dmgr call the driver.
bcs L405E if error.
plp restore interrupts
clc
rts
L405E plp restore interrupts
sec
rts
wfcbfst jsr upbmap update the bitmap
bra L400D and write file's 1st block.

View File

@ -539,7 +539,7 @@ L49FD sec
L49FF ldy #$00 get newname's length
lda pathbuf,y
ora #$F0 (root file storage type)
jsr mvrotnam update root directory.
jsr XDOS.UpdateHdr update root directory.
bcs L4A74 rename error.
ldy #$00
@ -679,7 +679,7 @@ L4ABE lda pathbuf,y move local name to dir entry workspace.
ldy rnptr change the header's name to match the
lda pathbuf,y owner's new name. get local name length.
ora #$E0 assume it's a header.
jsr mvrotnam
jsr XDOS.UpdateHdr
bcs L4A74
L4AF0 .DO LOWERCASE=1
@ -688,15 +688,52 @@ L4AF0 .DO LOWERCASE=1
jmp drevise1 end by updating all path directories.
*--------------------------------------
mvrotnam ldx #$00
XDOS.UpdateHdr ldx #$00
.DO LOWERCASE=0
L4AF5 sta gbuf+4,x
inx
iny
lda pathbuf,y
bne L4AF5
.ELSE
jmp wrtgbuf write changed header block.
stz gbuf+$20 VERSION
stz gbuf+$21 MIN VERSION
.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+$20
bra .3
.2 lda whichbit-8,x
tsb gbuf+$21
.3 lda #$80
tsb gbuf+$20
pla
eor #$20
bra .1
.FIN
.8 jmp wrtgbuf write changed header block.
*--------------------------------------
getnamptr ldy #$00 return pointer to 1st name of path.
bit prfxflg is this a prefixed name ?

View File

@ -794,8 +794,8 @@ xdosver .HS 00
compat .HS 00
.HS C3270D000000
.ELSE
XDOS.VolHdrDef .HS C3270D000000
XDOS.VolHdrDef.Cnt .EQ *-XDOS.VolHdrDef
*XDOS.VolHdrDef .HS C3270D
*XDOS.VolHdrDef.Cnt .EQ *-XDOS.VolHdrDef
.FIN
rootstuf .HS 0F02000400000800
whichbit .HS 8040201008040201