Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-10-28 17:35:04 +01:00
parent 9c02fb8bb5
commit 142e85c8a4
8 changed files with 59 additions and 19 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -435,6 +435,8 @@ WRITE php
>AR.SELECT S0.TX.FSR >AR.SELECT S0.TX.FSR
lda W5100.DR,x get send size HI lda W5100.DR,x get send size HI
nop
nop
ldy W5100.DR,x LO ldy W5100.DR,x LO
cpy RXTX.Size cpy RXTX.Size
sbc RXTX.Size+1 sbc RXTX.Size+1
@ -453,6 +455,8 @@ WRITE php
>AR.SELECT S0.TX.WR >AR.SELECT S0.TX.WR
lda W5100.DR,x Get HI lda W5100.DR,x Get HI
nop
nop
ldy W5100.DR,x Get LO ldy W5100.DR,x Get LO
and /RXTX.MASK and /RXTX.MASK
ora /TX.BASE ora /TX.BASE

View File

@ -4,7 +4,7 @@ NEW
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter IO.D2.SeekTimeF .EQ 140 LIBBLKDEV Track Formatter
IO.D2.SeekTimeB .EQ 140 LIBBLKDEV Boot Block IO.D2.SeekTimeB .EQ 140 LIBBLKDEV Boot Block
IO.D2.SeekTimeP .EQ 75 ProDOS.FX initial IO.D2.SeekTimeP .EQ 50 ProDOS.FX initial
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128 IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
*-------------------------------------- *--------------------------------------
IO.D2.Ph0Off .EQ $C080 IO.D2.Ph0Off .EQ $C080
@ -25,8 +25,8 @@ IO.D2.DrvSel2 .EQ $C08B
IO.D2.WShift .EQ $C08C R IO.D2.WShift .EQ $C08C R
IO.D2.RData .EQ $C08C R IO.D2.RData .EQ $C08C R
IO.D2.WLoad .EQ $C08D W
IO.D2.ReadProt .EQ $C08D R IO.D2.ReadProt .EQ $C08D R
IO.D2.WLoad .EQ $C08D W
IO.D2.ReadMode .EQ $C08E R IO.D2.ReadMode .EQ $C08E R
IO.D2.WriteMode .EQ $C08F W IO.D2.WriteMode .EQ $C08F W

View File

@ -1,6 +1,36 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
* MBAR.New(*S.MBITEM mbitems)
*--------------------------------------
MBAR.New >LDYAI S.MBAR
>SYSCALL2 getmem
bcs .99
>STYA ZPMENUPtr
lda #S.OBJ.T.MBAR
sta (ZPMENUPtr) S.OBJ.T
lda #0
ldy #S.MBAR-1
.1 sta (ZPMENUPtr),y
dey
bne .1
>PULLA
ldy #S.MBAR.MBITEMS
sta (ZPMENUPtr),y
>PULLA
iny
sta (ZPMENUPtr),y
clc
rts
*--------------------------------------
MBAR.Init >STYA ZPMENUPtr MBAR.Init >STYA ZPMENUPtr
>STYA ZPPtr1 >STYA ZPPtr1
@ -21,7 +51,7 @@ MBAR.Init >STYA ZPMENUPtr
lda ZPPtr1+1 lda ZPPtr1+1
adc #0 adc #0
ldx hSYSFONB ldx hSYSFON
jsr FON.GetTextSize jsr FON.GetTextSize
ldy #S.MBITEM.X1 ldy #S.MBITEM.X1

View File

@ -854,7 +854,7 @@ WND.PaintMBar lda #S.CB.CMD.FILLRECT
lda #S.CB.M.MONO lda #S.CB.M.MONO
sta CB.Cache+S.CB.M sta CB.Cache+S.CB.M
lda hSYSFONB lda hSYSFON
sta CB.CACHE+S.CB.hFont sta CB.CACHE+S.CB.hFont
ldy #S.MBITEM.XT ldy #S.MBITEM.XT

View File

@ -406,13 +406,17 @@ L596F ldy #$FF index to last byte of data to write.
* on exit: carry set if error (write protect violation). * on exit: carry set if error (write protect violation).
* if no error, acc=uncertain, x=unchanged, y=0, carry clear. * if no error, acc=uncertain, x=unchanged, y=0, carry clear.
*-------------------------------------- *--------------------------------------
XRW.Write lda IO.D2.ReadProt,x XRW.Write lda nbuf2
lda IO.D2.ReadMode,x
lda nbuf2
sta pcl sta pcl
lda #$FF sync data. *.1 bit IO.D2.RData,x make sure past $EB
* bpl .1
bit IO.D2.ReadProt,x PREWRITE MODE
bit IO.D2.ReadMode,x
lda #$FF Self Sync Byte
sta IO.D2.WriteMode,x (5) goto write mode sta IO.D2.WriteMode,x (5) goto write mode
ora IO.D2.WShift,x (4) ora IO.D2.WShift,x (4)
ldy #$04 (2) for five nibls ldy #$04 (2) for five nibls
@ -929,27 +933,29 @@ XRW.ReadAddr ldy #$FC
tay if final checksum non-zero, tay if final checksum non-zero,
bne .99 then error. bne .99 then error.
ldy XRW.UnitIndex
clc Anticipate success...
.9 lda IO.D2.RData,x .9 lda IO.D2.RData,x
bpl .9 bpl .9
cmp #$DE eor #$DE
bne .99 bne .99
lda XRW.AddrField.V ....save time doing it now
sta XRW.D2VolNum-1,y
.10 lda IO.D2.RData,x .10 lda IO.D2.RData,x
bpl .10 bpl .10
cmp #$AA eor #$AA
bne .99 bne .99
ldy XRW.UnitIndex Successful Read, update Drive table
lda XRW.AddrField.V lda XRW.AddrField.T Successful Read, update Drive table
sta XRW.D2VolNum-1,y
lda XRW.AddrField.T
sta XRW.D2Trk-1,y and exit with A = Trk sta XRW.D2Trk-1,y and exit with A = Trk
clc normal read ok * clc normal read ok
rts rts
.99 sec .99 sec
@ -987,7 +993,7 @@ XRW.DEBUG31 jsr XRW.DEBUG.PRINT
rts rts
XRW.DEBUG.PRINT XRW.DEBUG.PRINT
* sta CLRPAGE2
pha pha
lsr lsr
lsr lsr