Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-22 16:28:54 +02:00
parent 5c56768e55
commit 127001df98
5 changed files with 62 additions and 19 deletions

Binary file not shown.

View File

@ -270,7 +270,7 @@ OPEN lda #S.DIB.S.OPENED
bmi .2
.1 lda L91C96.1.IAR,x
sta S.DCB.NIC.MAC,y
sta DCB+S.DCB.NIC.MAC,y
inx
iny
cpy #6
@ -278,7 +278,7 @@ OPEN lda #S.DIB.S.OPENED
bra .3
.2 lda S.DCB.NIC.MAC,y
.2 lda DCB+S.DCB.NIC.MAC,y
sta L91C96.1.IAR,x
inx
iny
@ -471,7 +471,7 @@ WRITE php
ldy #S.ETH.SRCMAC+5 Add Src MAC Address
ldx #5
.4 lda S.DCB.NIC.MAC,x
.4 lda DCB+S.DCB.NIC.MAC,x
sta (ZPBufPtr),y
dey
dex

View File

@ -370,10 +370,12 @@ pscall jsr $0000 self modifying code
jsr spvect status of Cocoon
.HS 00
.DA spcparms ignore any errors.
H28B1 stz statunit set unit# = 0
jsr spvect call to get the device count.
.HS 00 this is a status call
.DA spcparms
lda numdev2
beq donesp no devices, so done.
cmp #$02 carry set if 2,3,4
@ -388,18 +390,23 @@ H28B1 stz statunit set unit# = 0
bit diskins2 disk in slot 2 ?
bpl donesp yes - so done
lda numdev2
cmp #$03 carry set if 3,4,...
bcc donesp
cmp #$04 carry set if 4,5,6,...
lda #$C2 map extra devices as slot 2
sta idxl+1
jsr installdev
lda #$C5
sta idxl+1
donesp jmp nxtdsk2 it's a disk device.
setdevid ldy #$FE check attributes byte.
H28E8 lda (idxl),y
lda (idxl),y
lsr move hi nibble to lo nibble for
lsr device table entries.
lsr
@ -462,18 +469,22 @@ H291F jsr H29EB is there a smartport device here?
sta spvect+1
lda idxl+1
sta spvect+2
dey
jsr H28E8 set up device attributes
jsr setdevid set up device attributes
stz statunit
jsr spvect do a status call on smartport itself
.HS 00
.DA spcparms
lda numdev2 # of devices on smartport
cmp #$03
bcc H2974 only 2 devices,skip to next one.
inc add 1 for comparisons.
sta driveradr # of devices + 1.
lda #$03 start at unit #3 (non-slot 5)
ldx spvect+2
cpx #$C5 is this slot 5?
bne H295B no, start at 3.
@ -485,6 +496,7 @@ H291F jsr H29EB is there a smartport device here?
H295B cmp driveradr have we done all units in this slot?
bcs H2974 yes, skip to next slot.
sta statunit store the unit#.
jsr spvect do status call
.HS 00
@ -495,6 +507,7 @@ H295B cmp driveradr have we done all units in this slot?
H296E lda statunit go check the next unit#
inc
bra H295B
H2974 dec idxl+1
lda idxl+1
cmp #$C0 searched down to slot 0?

View File

@ -427,11 +427,15 @@ offtable .HS 702C26221F1E1D1C1C
* for motor on timing.
mswait ldx #$11 delay 86 usec
.1 dex
bne .1
inc montimel
bne .2
inc montimeh
.2 sec
sbc #$01
bne mswait
@ -797,45 +801,60 @@ wnibl sta q6h,x (5) nibl write
prenib16 lda buf self-modify the addresses because of
ldy buf+1 the fast timing required.
clc all offsets are minus $AA.
adc #$02 the highest set is buf+$AC.
bcc L58FA branch if no carry,
iny otherwise add carry to high address.
L58FA sta prn3+1 self mod 3
sty prn3+2
sec
sbc #$56 middle set is buf+$56.
bcs L5906 branch if no borrow,
dey otherwise deduct from high.
L5906 sta prn2+1 self mod 2
sty prn2+2
sec
sbc #$56 low set is exactly buf
bcs L5912
dey
L5912 sta prn1+1 self mod 1
sty prn1+2
ldy #$AA count up to 0.
prn1 lda $1000,y warning: self modified. get byte from lowest group.
and #$03 strip high 6 bits.
tax index to 2 bit equivalent.
lda twobit1,x
pha save pattern
prn2 lda $1056,y warning: self modified. get byte from middle group.
and #$03
tax
pla restore pattern.
ora twobit2,x combine 2nd group with 1st.
pha save new pattern.
prn3 lda $10AC,y warning: self modified. get byte from highest group.
and #$03
tax
pla restore new pattern
ora twobit3,x and form final nibl.
pha
tya
eor #$FF
tax
pla
sta nbuf2,x save in nibl buffer.
iny inc to next set.
@ -900,6 +919,7 @@ L59A6 lda iobpdn
lda montimeh
bne L59A6
L59BD rts
rsetphse lda unitnum get unit number.
and #$7F mask off high bit.
tax
@ -940,7 +960,7 @@ XRW.FREE .EQ $D6EC-* (ProDOS 2.0.3 = $02)
* variables used by mli for smartport interface
spstatlist .HS 00000000 ref pathbuf-$14 smartport status list buffer
spunit .HS 0000000000000000 ref pathbuf-$10smartport unit numbers
spunit .HS 0000000000000000 ref pathbuf-$10 smartport unit numbers
.HS 0000000000000000
* pathname buffer starts at this page boundary (pathbuf = $D700)

View File

@ -462,29 +462,36 @@ CPU.Init.6502 >PUSHBI 0
.1 bit VBL
bpl .1
.2 bit VBL
.2 lda VBL
bmi .2
ldx #0 Count LO
lda #0 Count HI
.3 ldy #3 (2)
.4 nop (2)
dey (2)
ldx #2
.3 ldy #4 (2)
.4 dey (2)
bne .4 (2*)
inc A2osX.RANDOM16 (6)
bne .5 (2*)
inc A2osX.RANDOM16+1 (6)
bit VBL (4)
bpl .3 (2*)
bmi .6
bra .6 (3)
.5 nop (2)
nop (2)
nop (2)
bit VBL (4)
bpl .3 (2*)
bra .6 (3)
.6 lda MACHID
.6 eor VBL (4)
bpl .3 (2*)
dex
bne .3
lda MACHID
and #MACHID.T
eor #MACHID.T.IIc
bne .60
@ -498,6 +505,7 @@ CPU.Init.6502 >PUSHBI 0
.60 plp
stz A2osX.CPUSPEED
.7 sec
lda A2osX.RANDOM16
sbc #100
@ -505,6 +513,7 @@ CPU.Init.6502 >PUSHBI 0
lda A2osX.RANDOM16+1
sbc /100
bcc .8
stx A2osX.RANDOM16
sta A2osX.RANDOM16+1
inc A2osX.CPUSPEED
@ -512,6 +521,7 @@ CPU.Init.6502 >PUSHBI 0
.8 lda A2osX.RANDOM16
sta A2osX.CPUSPEED+1
>PUSHA push CPU speed LO
lda A2osX.CPUSPEED
>PUSHA push CPU speed HI