mirror of https://github.com/A2osX/A2osX.git
KMs & PMs Cleanup
This commit is contained in:
parent
3e95bd27d7
commit
cec2764d5c
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -19,6 +19,7 @@ A2osX.QC.ROOT .BS 64
|
|||
A2osX.QC.Start1 sei
|
||||
ldx #$FF
|
||||
txs
|
||||
|
||||
cli
|
||||
bit RROMBNK1
|
||||
>LDYAI A2osX.QC
|
||||
|
@ -271,6 +272,6 @@ QC.FREE .EQ $1300-*
|
|||
.EP
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/A2OSX.S.QC
|
||||
LOAD USR/SRC/A2OSX.S
|
||||
SAVE usr/src/a2osx.s.qc
|
||||
LOAD usr/src/a2osx.s
|
||||
ASM
|
||||
|
|
187
A2osX.S.txt
187
A2osX.S.txt
|
@ -17,15 +17,16 @@ NEW
|
|||
TmpPtr1 .EQ $0 main & aux ZP
|
||||
TmpPtr2 .EQ $2 main & aux ZP
|
||||
*--------------------------------------
|
||||
A2osX.KMLOAD .EQ $2000
|
||||
A2osX.PMLOAD .EQ $2000
|
||||
A2osX.LOGOLOAD .EQ $4000
|
||||
A2osX.KMMAXLEN .EQ $6000
|
||||
A2osX.PMMAXLEN .EQ $6000
|
||||
A2osX.OpenBuff1 .EQ $8000 1024 Buffer for MLIOPEN01
|
||||
A2osX.OpenBuff2 .EQ $8400 1024 Buffer for MLIOPEN02
|
||||
A2osX.ReadBuff .EQ $8800 512 Buffer for MLIREAD01
|
||||
Boot.Prefix .EQ $8A00 MLI.MAXPATH
|
||||
LOGO.Filename .EQ $8A80 MLI.MAXPATH
|
||||
KM.Filename .EQ $8B00 MLI.MAXPATH
|
||||
Logo.Filename .EQ $8A80 MLI.MAXPATH
|
||||
Sys.Prefix .EQ $8B00 MLI.MAXPATH
|
||||
PM.Filename .EQ $8B80 MLI.MAXPATH
|
||||
MLIONLINE01BUF .EQ $8C00 256
|
||||
*--------------------------------------
|
||||
* Kernel Stage 0
|
||||
|
@ -37,12 +38,14 @@ A2osX.Init0 >LDYAI $2000
|
|||
>LDYAI $1000
|
||||
>STYA TmpPtr2
|
||||
|
||||
ldx #$10 reloc $2000-$2FFF to $1000-$1FFF
|
||||
ldx /SYSTEM.END-$1F00
|
||||
|
||||
ldy #0
|
||||
.1 lda (TmpPtr1),y
|
||||
sta (TmpPtr2),y
|
||||
iny
|
||||
bne .1
|
||||
|
||||
inc TmpPtr1+1
|
||||
inc TmpPtr2+1
|
||||
dex
|
||||
|
@ -76,6 +79,9 @@ A2osX.Init1.128 jsr MLI
|
|||
ldx Boot.Prefix
|
||||
|
||||
.1 lda Boot.Prefix,x
|
||||
sta Logo.Filename,x
|
||||
sta Sys.Prefix,x
|
||||
sta PM.Filename,x
|
||||
sta A2osX.QC.B.BOOT,x
|
||||
sta A2osX.QC.B.ROOT,x
|
||||
dex
|
||||
|
@ -140,15 +146,11 @@ A2osX.RamDrv >LDYAI MSG.RAMDRV
|
|||
|
||||
.8 jsr PrintFYA
|
||||
*--------------------------------------
|
||||
A2osX.EnumKM >LDYAI MSG.KMENUM
|
||||
jsr PrintFYA
|
||||
jsr EnumKM
|
||||
*--------------------------------------
|
||||
A2osX.SetupQC lda RRAMWRAMBNK2
|
||||
lda RRAMWRAMBNK2
|
||||
|
||||
ldx #0
|
||||
.1 lda A2osX.QC.B.Start,x
|
||||
.1 lda A2osX.QC.B.Start,x Still at $2xxx !!! not moved to $1xxx
|
||||
sta $D100,x
|
||||
lda A2osX.QC.B.Start+$100,x
|
||||
sta $D200,x
|
||||
|
@ -159,6 +161,10 @@ A2osX.SetupQC lda RRAMWRAMBNK2
|
|||
|
||||
lda RROMBNK1
|
||||
*--------------------------------------
|
||||
A2osX.EnumPM >LDYAI MSG.PMENUM do this After SetupQC, a PM could override QC
|
||||
jsr PrintFYA
|
||||
jsr EnumPM
|
||||
*--------------------------------------
|
||||
A2osX.MLIQuit >LDYAI MSG.INIT0OK
|
||||
jsr PrintFYA
|
||||
>DEBUGOA
|
||||
|
@ -174,23 +180,16 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
|
|||
jsr $C300
|
||||
|
||||
ldx Boot.Prefix
|
||||
|
||||
.1 lda Boot.Prefix,x
|
||||
sta LOGO.Filename,x
|
||||
dex
|
||||
bne .1
|
||||
|
||||
ldx Boot.Prefix
|
||||
ldy #0
|
||||
|
||||
.2 inx
|
||||
iny
|
||||
lda A2osX.LOGO,y
|
||||
sta LOGO.Filename,x
|
||||
sta Logo.Filename,x
|
||||
cpy A2osX.LOGO
|
||||
bne .2
|
||||
|
||||
stx LOGO.Filename
|
||||
stx Logo.Filename
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN00
|
||||
|
@ -387,34 +386,42 @@ DisableRamDRV php
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
EnumKM.EPB .EQ $0D
|
||||
EnumKM.EL .EQ $27
|
||||
EnumPM.EPB .EQ $0D
|
||||
EnumPM.EL .EQ $27
|
||||
*--------------------------------------
|
||||
EnumKM ldx #0
|
||||
EnumPM ldx #0
|
||||
ldy Boot.Prefix
|
||||
|
||||
.1 inx
|
||||
lda SYS,x
|
||||
sta Boot.Prefix+1,y
|
||||
sta Sys.Prefix+1,y
|
||||
sta PM.Filename+1,y
|
||||
iny
|
||||
cpx SYS
|
||||
bne .1
|
||||
|
||||
sty Boot.Prefix
|
||||
lda #Boot.Prefix
|
||||
sty Sys.Prefix
|
||||
sty PM.Filename
|
||||
|
||||
lda #Sys.Prefix
|
||||
pha
|
||||
lda /Boot.Prefix
|
||||
lda /Sys.Prefix
|
||||
pha
|
||||
>LDYAI MSG.KMSYSDIR
|
||||
>LDYAI MSG.PMSYSDIR
|
||||
jsr PrintFYA
|
||||
|
||||
jsr MLI
|
||||
.DA #MLISETPREFIX
|
||||
.DA MLISETPREFIX02
|
||||
bcs .19
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN01
|
||||
bcc .10
|
||||
|
||||
pha
|
||||
>LDYAI MSG.KMSYSDIR.KO
|
||||
.19 pha
|
||||
>LDYAI MSG.PMSYSDIR.KO
|
||||
jsr PrintFYA
|
||||
sec
|
||||
rts
|
||||
|
@ -428,13 +435,13 @@ EnumKM ldx #0
|
|||
.DA MLIREAD01
|
||||
bcs .98
|
||||
|
||||
lda #EnumKM.EPB
|
||||
sta EnumKM.EC
|
||||
lda #EnumPM.EPB
|
||||
sta EnumPM.EC
|
||||
|
||||
>LDYAI A2osX.ReadBuff+4
|
||||
>STYA EnumKM.BPTR
|
||||
>STYA EnumPM.BPTR
|
||||
|
||||
.3 >LDYA EnumKM.BPTR
|
||||
.3 >LDYA EnumPM.BPTR
|
||||
>STYA TmpPtr1
|
||||
|
||||
lda (TmpPtr1)
|
||||
|
@ -446,7 +453,7 @@ EnumKM ldx #0
|
|||
|
||||
lda (TmpPtr1)
|
||||
and #$0F
|
||||
cmp KM.PREFIX at least enough chars for KM.*?
|
||||
cmp PM. at least enough chars for PM.*?
|
||||
bcc .5 no, skip
|
||||
|
||||
ldy #$10 file type
|
||||
|
@ -454,26 +461,26 @@ EnumKM ldx #0
|
|||
cmp #$06 'BIN'?
|
||||
bne .5 skip
|
||||
|
||||
ldy KM.PREFIX
|
||||
ldy PM.
|
||||
|
||||
.4 lda (TmpPtr1),y KM.* ?
|
||||
cmp KM.PREFIX,y
|
||||
.4 lda (TmpPtr1),y PM.* ?
|
||||
cmp PM.,y
|
||||
bne .5
|
||||
|
||||
dey
|
||||
bne .4
|
||||
|
||||
jsr LoadKM
|
||||
jsr LoadPM
|
||||
|
||||
.5 lda EnumKM.BPTR
|
||||
.5 lda EnumPM.BPTR
|
||||
clc
|
||||
adc #EnumKM.EL
|
||||
sta EnumKM.BPTR
|
||||
adc #EnumPM.EL
|
||||
sta EnumPM.BPTR
|
||||
bcc .6
|
||||
|
||||
inc EnumKM.BPTR+1
|
||||
inc EnumPM.BPTR+1
|
||||
|
||||
.6 dec EnumKM.EC
|
||||
.6 dec EnumPM.EC
|
||||
bne .3
|
||||
|
||||
bra .2
|
||||
|
@ -491,47 +498,46 @@ EnumKM ldx #0
|
|||
.8 jsr MLI
|
||||
.DA #MLICLOSE
|
||||
.DA MLICLOSE01
|
||||
rts
|
||||
*--------------------------------------
|
||||
EnumKM.EC .BS 1
|
||||
EnumKM.BPTR .BS 2
|
||||
*--------------------------------------
|
||||
LoadKM ldx Boot.Prefix
|
||||
bcs .99
|
||||
|
||||
.1 lda Boot.Prefix,x
|
||||
sta KM.Filename,x
|
||||
dex
|
||||
bne .1
|
||||
jsr MLI
|
||||
.DA #MLISETPREFIX
|
||||
.DA MLISETPREFIX01
|
||||
|
||||
ldy #$1c
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
EnumPM.EC .BS 1
|
||||
EnumPM.BPTR .BS 2
|
||||
*--------------------------------------
|
||||
LoadPM ldy #$1c
|
||||
lda (TmpPtr1),y
|
||||
sta LoadKM.VERSION
|
||||
sta LoadPM.VERSION
|
||||
iny
|
||||
lda (TmpPtr1),y
|
||||
sta LoadKM.MVERSION
|
||||
sta LoadPM.MVERSION
|
||||
|
||||
ldx Boot.Prefix
|
||||
ldx Sys.Prefix
|
||||
lda (TmpPtr1)
|
||||
and #$0F
|
||||
tay
|
||||
clc
|
||||
adc Boot.Prefix
|
||||
sta KM.Filename
|
||||
adc sys.Prefix
|
||||
sta PM.Filename
|
||||
tax
|
||||
|
||||
.2 bit LoadKM.MVERSION
|
||||
.2 bit LoadPM.MVERSION
|
||||
bpl .6
|
||||
|
||||
cpy #8
|
||||
bcs .3
|
||||
|
||||
lda LoadKM.Bits,y
|
||||
bit LoadKM.MVERSION
|
||||
lda LoadPM.Bits,y
|
||||
bit LoadPM.MVERSION
|
||||
beq .6
|
||||
bra .4
|
||||
|
||||
.3 lda LoadKM.Bits-8,y
|
||||
bit LoadKM.VERSION
|
||||
.3 lda LoadPM.Bits-8,y
|
||||
bit LoadPM.VERSION
|
||||
beq .6
|
||||
|
||||
.4 lda (TmpPtr1),y
|
||||
|
@ -539,17 +545,17 @@ LoadKM ldx Boot.Prefix
|
|||
.HS 2C BIT ABS
|
||||
|
||||
.6 lda (TmpPtr1),y
|
||||
sta KM.Filename,x
|
||||
sta PM.Filename,x
|
||||
dex
|
||||
dey
|
||||
bne .2
|
||||
|
||||
lda #KM.Filename
|
||||
lda #PM.Filename
|
||||
pha
|
||||
lda /KM.Filename
|
||||
lda /PM.Filename
|
||||
pha
|
||||
|
||||
>LDYAI MSG.KMLOAD
|
||||
>LDYAI MSG.PMLOAD
|
||||
jsr PrintFYA
|
||||
|
||||
jsr MLI
|
||||
|
@ -567,7 +573,7 @@ LoadKM ldx Boot.Prefix
|
|||
bcs .98
|
||||
|
||||
jsr .9
|
||||
jmp A2osX.KMLOAD
|
||||
jmp A2osX.PMLOAD
|
||||
|
||||
.98 pha
|
||||
jsr .9
|
||||
|
@ -581,9 +587,9 @@ LoadKM ldx Boot.Prefix
|
|||
.DA MLICLOSE02
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
LoadKM.VERSION .BS 1
|
||||
LoadKM.MVERSION .BS 1
|
||||
LoadKM.Bits .HS 8040201008040201
|
||||
LoadPM.VERSION .BS 1
|
||||
LoadPM.MVERSION .BS 1
|
||||
LoadPM.Bits .HS 8040201008040201
|
||||
*--------------------------------------
|
||||
.INB usr/src/shared/x.printf.s
|
||||
*--------------------------------------
|
||||
|
@ -599,26 +605,30 @@ MSG.CPU.KO .AZ "A2osX Requires At Least A 65C02 CPU.\n"
|
|||
MSG.RAMDRV .AZ "Checking ProDOS RamDrive..."
|
||||
MSG.RAMDRV.OK .AZ "Successfully Disabled.\n"
|
||||
MSG.RAMDRV.KO0 .AZ "Not Detected.\n"
|
||||
MSG.RAMDRV.KO1 .AZ "Uninstall Failed !!!\n"
|
||||
MSG.RAMDRV.KO1 .AZ "Uninstall Failed.\n"
|
||||
|
||||
MSG.BOOTPREFIX .AZ "Boot Prefix:%S\n"
|
||||
|
||||
MSG.KMENUM .AZ "Looking For Kernel Modules...\n"
|
||||
MSG.KMSYSDIR .AZ "SYS dir is %S\n"
|
||||
MSG.KMSYSDIR.KO .AZ "***Error : $%h\n"
|
||||
MSG.KMLOAD .AZ "***Loading KM : %S\n"
|
||||
MSG.PMENUM .AZ "Looking For ProDOS Modules...\n"
|
||||
MSG.PMSYSDIR .AZ "SYS dir is %S\n"
|
||||
MSG.PMSYSDIR.KO .AZ "***Error : $%h\n"
|
||||
MSG.PMLOAD .AZ "***Loading PM : %S\n"
|
||||
MSG.INIT0OK .AZ "A2osX[Stage0]:Complete.\n"
|
||||
*--------------------------------------
|
||||
MLIGETPREFIX01 .DA #1
|
||||
MLIGETPREFIX01
|
||||
MLISETPREFIX01 .DA #1
|
||||
.DA Boot.Prefix
|
||||
*--------------------------------------
|
||||
MLISETPREFIX02 .DA #1
|
||||
.DA Sys.Prefix
|
||||
*--------------------------------------
|
||||
MLIONLINE01 .DA #2
|
||||
* .DA #0
|
||||
.DA #$B0 S3D2
|
||||
.DA MLIONLINE01BUF
|
||||
*--------------------------------------
|
||||
MLIOPEN00 .DA #3 For DIR listing
|
||||
.DA LOGO.Filename
|
||||
.DA Logo.Filename
|
||||
.DA A2osX.OpenBuff1
|
||||
.BS 1
|
||||
MLIREAD00 .DA #4
|
||||
|
@ -630,7 +640,7 @@ MLICLOSE00 .DA #1
|
|||
.BS 1
|
||||
*--------------------------------------
|
||||
MLIOPEN01 .DA #3 For DIR listing
|
||||
.DA Boot.Prefix
|
||||
.DA Sys.Prefix
|
||||
.DA A2osX.OpenBuff1
|
||||
.BS 1
|
||||
MLIREAD01 .DA #4
|
||||
|
@ -642,13 +652,13 @@ MLICLOSE01 .DA #1
|
|||
.BS 1
|
||||
*--------------------------------------
|
||||
MLIOPEN02 .DA #3
|
||||
.DA KM.Filename
|
||||
.DA PM.Filename
|
||||
.DA A2osX.OpenBuff2
|
||||
.BS 1
|
||||
MLIREAD02 .DA #4
|
||||
.BS 1
|
||||
.DA A2osX.KMLOAD Load address for KMs
|
||||
.DA A2osX.KMMAXLEN Maxlen of KM
|
||||
.DA A2osX.PMLOAD Load address for PMs
|
||||
.DA A2osX.PMMAXLEN Maxlen of PM
|
||||
.BS 2
|
||||
MLICLOSE02 .DA #1
|
||||
.BS 1
|
||||
|
@ -661,7 +671,7 @@ MLIQUIT01 .DA #4
|
|||
*--------------------------------------
|
||||
A2osX.LOGO >PSTR "A2osX.logo"
|
||||
SYS >PSTR "sys/"
|
||||
KM.PREFIX >PSTR "KM."
|
||||
PM. >PSTR "PM."
|
||||
*--------------------------------------
|
||||
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||||
|
@ -672,15 +682,16 @@ PALETTE.AUX .HS 00.01.02.03.04.05.06.07
|
|||
.HS 08.09.0A.0B.0C.0D.0E.0F
|
||||
*--------------------------------------
|
||||
.EP
|
||||
|
||||
.LIST ON
|
||||
SYSTEM.END .EQ *
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
A2osX.QC.B.Start
|
||||
A2osX.QC.B.BOOT .EQ *+4
|
||||
A2osX.QC.B.ROOT .EQ *+4+64
|
||||
.INB usr/src/a2osx.s.qc
|
||||
.LIST ON
|
||||
SYSTEM.END .EQ *
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/A2OSX.S
|
||||
SAVE usr/src/a2osx.s
|
||||
ASM
|
||||
|
|
|
@ -12,32 +12,31 @@ BS.ResetCSWKSW pha
|
|||
sta ZP.KSW+1
|
||||
pla
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.SetState0 ldx #$00
|
||||
jsr BS.SetState
|
||||
|
||||
lda ZP.KSW+1
|
||||
cmp GP.VDOSI+1
|
||||
bne L9A26
|
||||
beq BS.SetCSWKSW2VDOS
|
||||
|
||||
jmp BS.SetCSWKSW2VDOS
|
||||
|
||||
L9A26 lda ZP.CSW+1
|
||||
lda ZP.CSW+1
|
||||
cmp GP.VDOSO+1
|
||||
beq BS.SetCSWKSW2VDOS
|
||||
|
||||
bne BS.SaveCSWKSW
|
||||
|
||||
*--------------------------------------
|
||||
BS.IO.OUT cmp X9F65
|
||||
bne L9A54
|
||||
|
||||
stx GP.PREGX
|
||||
tsx
|
||||
lda $103,x
|
||||
cmp #$12
|
||||
cmp #$12 From AS rom: TRACE
|
||||
bne L9A6E
|
||||
|
||||
lda $104,x
|
||||
cmp #$D8
|
||||
cmp #$D8 jsr from $D810, then JSR MON.COUT
|
||||
bne L9A6E
|
||||
|
||||
ldx #$04
|
||||
|
@ -81,6 +80,7 @@ L9A74 jsr BS.ResetCSWKSW
|
|||
sta AS.TRCFLG
|
||||
|
||||
L9A8B lda #$8D
|
||||
|
||||
BS.SaveCSWKSW pha
|
||||
lda ZP.KSW+1
|
||||
sta GP.VECTIN+1
|
||||
|
@ -104,7 +104,7 @@ BS.SetCSWKSW2VDOS
|
|||
sta ZP.KSW+1
|
||||
pla
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.IO.IN bit GP.EXECACTV
|
||||
bpl L9AC5
|
||||
|
||||
|
@ -142,11 +142,12 @@ BS.ERROUT sta GP.ERRCODE
|
|||
php
|
||||
lda #$0F
|
||||
sta MLI.LEVEL
|
||||
lda #$00
|
||||
sta GP.IFILACTV
|
||||
sta GP.OFILACTV
|
||||
sta GP.PFXACTV
|
||||
sta GP.MLICF.REFNUM
|
||||
|
||||
stz GP.IFILACTV
|
||||
stz GP.OFILACTV
|
||||
stz GP.PFXACTV
|
||||
stz GP.MLICF.REFNUM
|
||||
|
||||
lda #MLI.C.CLOSE
|
||||
jsr GP.GOSYSTEM
|
||||
bcs L9B27
|
||||
|
@ -154,9 +155,8 @@ BS.ERROUT sta GP.ERRCODE
|
|||
jsr LA004
|
||||
bcs L9B27
|
||||
|
||||
lda #$00
|
||||
sta MLI.LEVEL
|
||||
sta GP.MLICF.REFNUM
|
||||
stz MLI.LEVEL
|
||||
stz GP.MLICF.REFNUM
|
||||
lda #MLI.C.FLUSH
|
||||
jsr GP.GOSYSTEM
|
||||
|
||||
|
@ -192,8 +192,7 @@ L9B4D ldx AS.REMSTK
|
|||
L9B53 lda #$03
|
||||
jmp AS.BITERRFLG
|
||||
|
||||
L9B58 lda #$00
|
||||
sta AS.ERRNUM
|
||||
L9B58 stz AS.ERRNUM
|
||||
lda #$A3
|
||||
sta X9F65
|
||||
jsr AS.NORMAL
|
||||
|
@ -206,6 +205,7 @@ L9B58 lda #$00
|
|||
BS.IO.IN0 jsr BS.SaveAXY
|
||||
bit GP.PFXACTV
|
||||
bpl L9B7E
|
||||
|
||||
jmp BS.IO.IN.CAT
|
||||
|
||||
L9B7E bit GP.IFILACTV
|
||||
|
@ -296,6 +296,7 @@ L9C01 ldx #$00
|
|||
|
||||
L9C0E lda (ZP.BASL),y
|
||||
jmp (ZP.KSW)
|
||||
|
||||
L9C13 jmp BS.ERROUT
|
||||
|
||||
BS.IO.IN.FILE lda ZP.PROMPT
|
||||
|
@ -395,12 +396,8 @@ L9C95 cmp #$BE
|
|||
jsr BS.ReadDirEnt
|
||||
bcs L9D1F
|
||||
|
||||
lda GP.MLIRW.REFNUM
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
ror
|
||||
tax
|
||||
jsr BS.GetFTableIdx
|
||||
|
||||
lda XBC12
|
||||
sta XBC5A,x
|
||||
lda XBC13
|
||||
|
@ -416,10 +413,13 @@ L9CD3 lda #$A2
|
|||
|
||||
L9CDF lda GP.CATFLAG
|
||||
beq L9D22
|
||||
|
||||
bmi L9CF9
|
||||
|
||||
ldx #$00
|
||||
dec GP.CATFLAG
|
||||
beq L9CD3
|
||||
|
||||
jsr BS.LINEBUFCLR80
|
||||
ldx #$10
|
||||
jsr BS.PRINTERRMSGX
|
||||
|
@ -431,9 +431,10 @@ L9CF9 cmp #$FF
|
|||
bne L9D1C
|
||||
|
||||
dec GP.CATFLAG
|
||||
lda #$00
|
||||
sta GP.MLIRW.COUNT
|
||||
sta GP.MLIRW.COUNT+1
|
||||
|
||||
stz GP.MLIRW.COUNT
|
||||
stz GP.MLIRW.COUNT+1
|
||||
|
||||
lda #MLI.C.READ
|
||||
jsr GP.GOSYSTEM
|
||||
jsr LB157
|
||||
|
@ -452,12 +453,9 @@ L9D1F jmp BS.ERROUT
|
|||
|
||||
L9D22 lda #$FF
|
||||
sta XBC16
|
||||
lda GP.MLIRW.REFNUM
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
ror
|
||||
tax
|
||||
|
||||
jsr BS.GetFTableIdx
|
||||
|
||||
lda XBC5A,x
|
||||
sta XBC12
|
||||
lda XBC5B,x
|
||||
|
@ -498,8 +496,8 @@ BS.IO.IN.CAT cmp #$DD
|
|||
|
||||
L9D72 lda GP.PREGA
|
||||
sta (ZP.BASL),y
|
||||
lda #$00
|
||||
sta GP.PFXACTV
|
||||
|
||||
stz GP.PFXACTV
|
||||
ldx BS.CMDBUF.LEN
|
||||
|
||||
L9D7F lda BS.CMDBUF.LEN,x
|
||||
|
@ -518,9 +516,9 @@ BS.Setup4readEFBytesAt200
|
|||
sta GP.MLIRW.DATAPTR+1
|
||||
lda #$EF
|
||||
sta GP.MLIRW.COUNT
|
||||
lda #$00
|
||||
sta GP.MLIRW.COUNT+1
|
||||
sta GP.MLIRW.DATAPTR
|
||||
|
||||
stz GP.MLIRW.COUNT+1
|
||||
stz GP.MLIRW.DATAPTR
|
||||
rts
|
||||
|
||||
BS.VSYSO jsr BS.SaveAXY
|
||||
|
@ -614,9 +612,6 @@ BS.IO.OUT.TRACE pha
|
|||
bcs L9EBA
|
||||
|
||||
L9E46 pla
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
ldx GP.PREGX
|
||||
bit GP.OFILACTV
|
||||
bpl L9E70
|
||||
|
@ -762,10 +757,13 @@ L9F2E lda #$4A
|
|||
L9F32 tya
|
||||
jmp AS.EXECSTMT
|
||||
|
||||
lda #$00
|
||||
sta AS.ERRNUM
|
||||
tya
|
||||
bne L9EF0
|
||||
brk
|
||||
|
||||
* UNREACHABLE CODE ????
|
||||
* lda #$00
|
||||
* sta AS.ERRNUM
|
||||
* tya
|
||||
* bne L9EF0
|
||||
|
||||
L9F3D jsr BS.ResetCSWKSW
|
||||
lda #$A3
|
||||
|
@ -805,12 +803,12 @@ BS.RestoreAXY lda GP.PREGA
|
|||
BS.SetState stx GP.STATE
|
||||
ldy #$00
|
||||
|
||||
L9F7F lda BS.SYSIOVECTS,x
|
||||
.1 lda BS.SYSIOVECTS,x
|
||||
sta GP.VSYSO,y
|
||||
inx
|
||||
iny
|
||||
cpy #$04
|
||||
bne L9F7F
|
||||
bne .1
|
||||
|
||||
rts
|
||||
|
||||
|
@ -826,15 +824,15 @@ BS.PRINTERRX jsr BS.PRINTERRMSGX
|
|||
|
||||
BS.LINEBUFOUT ldx #$00
|
||||
|
||||
L9FA3 lda IO.LINEBUF+1,x
|
||||
.1 lda IO.LINEBUF+1,x
|
||||
jsr BS.COUT
|
||||
inx
|
||||
cpx BS.CATWIDTH
|
||||
bcc L9FA3
|
||||
bcc .1
|
||||
|
||||
BS.CROUT lda #$8D
|
||||
BS.COUT jmp MON.COUT
|
||||
|
||||
*--------------------------------------
|
||||
BS.PRINTERRMSGX ldy #$00
|
||||
clc
|
||||
sty GP.INPTR
|
||||
|
@ -878,7 +876,7 @@ L9FED inx
|
|||
and #$0F
|
||||
clc
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.WriteTBUF256 lda #$00
|
||||
ldy #$01
|
||||
bne LA00B
|
||||
|
@ -900,10 +898,9 @@ LA00B sta GP.MLIRW.COUNT
|
|||
sty GP.MLIRW.COUNT+1
|
||||
lda #MLI.C.WRITE
|
||||
jsr GP.GOSYSTEM
|
||||
pha
|
||||
lda #$00
|
||||
sta GP.TBUFPTR
|
||||
pla
|
||||
|
||||
stz GP.TBUFPTR
|
||||
|
||||
bcs LA020
|
||||
|
||||
LA01F clc
|
||||
|
@ -922,14 +919,14 @@ LA021 jsr BS.KW.01
|
|||
sta XBBD9
|
||||
lda AS.STRINGSTART+1
|
||||
sta BS.MEMSIZE+1
|
||||
|
||||
lda #$00
|
||||
sta BS.MEMSIZE
|
||||
jsr LA089
|
||||
jsr LA089 Z
|
||||
|
||||
LA047 rts
|
||||
|
||||
BS.KW.01 lda #$00
|
||||
sta BS.TXTTAB
|
||||
BS.KW.01 stz BS.TXTTAB
|
||||
lda #$03
|
||||
sta XBBD9
|
||||
lda AS.HIMEM+1
|
||||
|
@ -1281,10 +1278,11 @@ LA29B pla
|
|||
LA29D rts
|
||||
|
||||
LA29E pla
|
||||
|
||||
LA29F sta GP.SBUFADR+1
|
||||
sta XBBEE,x
|
||||
lda #$00
|
||||
sta GP.SBUFADR
|
||||
|
||||
stz GP.SBUFADR
|
||||
lda XBBF6,x
|
||||
sta GP.MLIMRKEOFBUF.REFNUM
|
||||
lda #MLI.C.SETBUF
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
BS.WHICHBITS .HS 8040201008040201
|
||||
|
||||
BS.GETBUFR jsr LA1FB
|
||||
bcs LA304
|
||||
pha
|
||||
|
@ -217,7 +219,7 @@ LA3FD lda (ZP.A2L),y
|
|||
sta (ZP.A2L),y
|
||||
|
||||
LA410 rts
|
||||
|
||||
*--------------------------------------
|
||||
LA411 jsr LA021
|
||||
bcs LA47F
|
||||
|
||||
|
@ -308,7 +310,7 @@ LA480 lda BS.BAS.HDR
|
|||
|
||||
LA4D0 clc
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
LA4D2 jsr BS.LINEBUFCLR80
|
||||
lda #$A2
|
||||
sta IO.LINEBUF
|
||||
|
@ -322,7 +324,38 @@ LA4E0 lda DIRENTBUF,y
|
|||
dey
|
||||
bne LA4E0
|
||||
|
||||
sty BS.TMPBUF4+2
|
||||
.DO LOWERCASE=1
|
||||
lda DIRENTBUF+$1D
|
||||
bpl .18
|
||||
|
||||
lda DIRENTBUF
|
||||
and #$0f
|
||||
tay
|
||||
|
||||
.10 cpy #8
|
||||
bcs .13
|
||||
|
||||
lda DIRENTBUF+$1D
|
||||
and BS.WHICHBITS,y
|
||||
beq .15
|
||||
|
||||
bne .14
|
||||
|
||||
.13 lda DIRENTBUF+$1C
|
||||
and BS.WHICHBITS-8,y
|
||||
beq .15
|
||||
|
||||
.14 lda IO.LINEBUF+1,y
|
||||
eor #$20
|
||||
sta IO.LINEBUF+1,y
|
||||
|
||||
.15 dey
|
||||
bne .10
|
||||
|
||||
.18 .FIN
|
||||
|
||||
stz BS.TMPBUF4+2
|
||||
|
||||
lda DIRENTBUF.TYPE
|
||||
ldx #$0E
|
||||
|
||||
|
@ -347,6 +380,7 @@ LA508 lda BS.PRODOSTYPES.ASC,y
|
|||
dey
|
||||
dex
|
||||
bpl LA508
|
||||
|
||||
pla
|
||||
bit BS.CATWIDTH
|
||||
bvc LA561
|
||||
|
@ -566,7 +600,7 @@ LA67E sta IO.LINEBUF+1,x
|
|||
bpl LA67E
|
||||
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.DOSCMD lda #$FF
|
||||
sta GP.XCNUM
|
||||
lda #$20
|
||||
|
@ -575,10 +609,10 @@ BS.DOSCMD lda #$FF
|
|||
sta BS.GetCharMax
|
||||
jsr BS.GetKWInCmdBuf
|
||||
lda BS.CMDBUF
|
||||
cmp #$41
|
||||
cmp #'A'
|
||||
bcs LA6A5
|
||||
|
||||
eor #$2D
|
||||
eor #'-'
|
||||
beq LA6A5
|
||||
|
||||
LA6A2 jmp BS.ERR10
|
||||
|
@ -595,11 +629,11 @@ LA6A5 jsr BS.IsIntCmdMTR
|
|||
jsr MON.CLREOL
|
||||
jsr BS.CROUT
|
||||
|
||||
LA6BA lda #$00
|
||||
sta GP.FoundBITS
|
||||
sta GP.FoundBITS+1
|
||||
sta BS.CMDBUF
|
||||
sta MLI.PATHBUF
|
||||
LA6BA stz GP.FoundBITS
|
||||
stz GP.FoundBITS+1
|
||||
stz BS.CMDBUF
|
||||
stz MLI.PATHBUF
|
||||
|
||||
lda GP.VDEFSLT
|
||||
sta GP.ParamS
|
||||
lda GP.VDEFDRV
|
||||
|
@ -629,14 +663,14 @@ LA6F8 pla
|
|||
plp
|
||||
beq LA744
|
||||
|
||||
cmp #$2C
|
||||
cmp #','
|
||||
bne LA703
|
||||
jmp LA795
|
||||
|
||||
LA703 cmp #$2F
|
||||
LA703 cmp #'/'
|
||||
beq LA70B
|
||||
|
||||
cmp #$41
|
||||
cmp #'A'
|
||||
bcc LA73D
|
||||
|
||||
LA70B dex
|
||||
|
@ -648,7 +682,7 @@ LA70B dex
|
|||
jsr LAA2D
|
||||
dey
|
||||
sty BS.CMDBUF.LEN
|
||||
lda #$01
|
||||
lda #CMDBITS0.FN1
|
||||
sta GP.FoundBITS
|
||||
|
||||
LA723 lda BS.CMDBUF.LEN,y
|
||||
|
@ -681,11 +715,13 @@ LA747 jsr BS.GetKWInCmdBuf
|
|||
beq LA79A
|
||||
|
||||
jsr BS.TMPBUF3Reset
|
||||
sty XBC08
|
||||
stz XBC08
|
||||
|
||||
ldy #$13
|
||||
sty XBC09
|
||||
ldy #$40
|
||||
sty GP.FoundBITS
|
||||
|
||||
jsr LA96E
|
||||
bcs LA76F
|
||||
|
||||
|
@ -783,9 +819,9 @@ LA7ED lda GP.FoundBITS+1
|
|||
|
||||
bcs LA806
|
||||
|
||||
lda #$00
|
||||
sta BS.CMDBUF.LEN
|
||||
sta BS.CMDBUF
|
||||
stz BS.CMDBUF.LEN
|
||||
stz BS.CMDBUF
|
||||
|
||||
lda #$01
|
||||
ora GP.FoundBITS
|
||||
sta GP.FoundBITS
|
||||
|
@ -796,10 +832,13 @@ LA806 jsr BS.GetVolAtSxDy
|
|||
LA80B lda GP.XCNUM
|
||||
asl
|
||||
tax
|
||||
|
||||
lda BS.KW.JMP,x
|
||||
sta BS.KW.JMPADDR
|
||||
lda BS.KW.JMP+1,x
|
||||
sta BS.KW.JMPADDR+1
|
||||
* >DEBUG
|
||||
|
||||
clc
|
||||
txa
|
||||
beq LA844
|
||||
|
@ -833,7 +872,7 @@ LA844 jmp (BS.KW.JMPADDR)
|
|||
BS.ERR10 lda #$10
|
||||
LA849 sec
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.GetVolAtSxDy lda GP.ParamS
|
||||
asl
|
||||
asl
|
||||
|
@ -847,10 +886,11 @@ BS.GetVolAtSxDy lda GP.ParamS
|
|||
pla
|
||||
ror
|
||||
sta GP.MLIMRKEOFBUF.REFNUM
|
||||
lda #$01
|
||||
sta GP.SBUFADR
|
||||
lda #$02
|
||||
sta GP.SBUFADR+1
|
||||
|
||||
ldx #$01
|
||||
ldy #$02
|
||||
jsr BS.SetSBUFADRXY
|
||||
|
||||
lda #MLI.C.ONLINE
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LA849
|
||||
|
@ -936,13 +976,15 @@ LA8F5 rts
|
|||
LA8F6 jsr BS.TMPBUF3Reset
|
||||
ldy #$09
|
||||
|
||||
jsr BS.ToUpper
|
||||
|
||||
LA8FB cmp BS.KW.OPT,y
|
||||
beq LA935
|
||||
|
||||
dey
|
||||
bpl LA8FB
|
||||
|
||||
cmp #$54
|
||||
cmp #'T'
|
||||
beq LA90A
|
||||
|
||||
LA907 jmp BS.ERR10
|
||||
|
@ -953,8 +995,9 @@ LA90A lda #$04
|
|||
|
||||
ora GP.FoundBITS
|
||||
sta GP.FoundBITS
|
||||
lda #$00
|
||||
sta XBC08
|
||||
|
||||
stz XBC08
|
||||
|
||||
lda #$12
|
||||
sta XBC09
|
||||
jsr BS.GetCharSpaceSep
|
||||
|
@ -1005,7 +1048,7 @@ LA955 lda BS.KW.OPT.PBITSHI,y
|
|||
beq LA984
|
||||
|
||||
LA96E stx GP.INPTR
|
||||
jsr LAA6A
|
||||
jsr BS.GetDecDigit
|
||||
bcc LA97A
|
||||
|
||||
bmi LA9C1
|
||||
|
@ -1022,7 +1065,7 @@ LA984 jsr BS.GetCharSpaceSep
|
|||
beq LA9BE
|
||||
|
||||
LA989 stx GP.INPTR
|
||||
jsr LAABC
|
||||
jsr BS.GetHexDigit
|
||||
bcc LA995
|
||||
|
||||
bmi LA9C1
|
||||
|
@ -1103,9 +1146,9 @@ LA9FC lda #$0E
|
|||
ldx GP.INPTR
|
||||
clc
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.GetPathInPathBuf
|
||||
jsr BS.GetCharUC
|
||||
jsr BS.GetChar UC
|
||||
sta MLI.PATHBUF,y
|
||||
iny
|
||||
cmp #$2C
|
||||
|
@ -1122,15 +1165,15 @@ BS.GetPathInPathBuf
|
|||
|
||||
ora #$00
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.GetKWInCmdBuf
|
||||
ldx #$00
|
||||
ldy #$00
|
||||
|
||||
LAA2D jsr BS.GetCharUC
|
||||
LAA2D jsr BS.GetChar UC
|
||||
sta BS.CMDBUF,y
|
||||
iny
|
||||
cmp #$2C
|
||||
cmp #','
|
||||
beq LAA45
|
||||
|
||||
cmp #$20
|
||||
|
@ -1144,33 +1187,42 @@ LAA2D jsr BS.GetCharUC
|
|||
|
||||
LAA45 ora #$00
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.GetCharSpaceSep
|
||||
lda #$20
|
||||
sta BS.GetCharSep
|
||||
jsr BS.GetCharUC
|
||||
cmp #$2C
|
||||
jsr BS.GetChar UC
|
||||
cmp #','
|
||||
beq LAA57
|
||||
|
||||
cmp #$0D
|
||||
|
||||
LAA56 clc
|
||||
LAA57 rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.GetCharUC lda IO.LINEBUF,x
|
||||
and #$7F
|
||||
cmp #$61
|
||||
bcc LAA63
|
||||
bcc .1
|
||||
|
||||
and #$5F
|
||||
|
||||
LAA63 inx
|
||||
.1 inx
|
||||
cmp BS.GetCharSep
|
||||
beq BS.GetCharUC
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
BS.GetChar lda IO.LINEBUF,x
|
||||
and #$7F
|
||||
|
||||
LAA6A cmp #$30
|
||||
inx
|
||||
cmp BS.GetCharSep
|
||||
beq BS.GetChar
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
BS.GetDecDigit cmp #$30
|
||||
bcc LAA72
|
||||
|
||||
cmp #$3A
|
||||
|
@ -1225,8 +1277,8 @@ LAAA2 pla
|
|||
LAAB8 lda #$FF
|
||||
sec
|
||||
LAABB rts
|
||||
|
||||
LAABC cmp #$30
|
||||
*--------------------------------------
|
||||
BS.GetHexDigit cmp #$30
|
||||
bcc LAACC
|
||||
|
||||
cmp #$3A
|
||||
|
@ -1243,6 +1295,7 @@ LAACC sec
|
|||
rts
|
||||
|
||||
LAAD0 sbc #$06
|
||||
|
||||
LAAD2 and #$0F
|
||||
ldx #$03
|
||||
|
||||
|
@ -1255,16 +1308,16 @@ LAAD6 jsr BS.TMPBUF3x2
|
|||
ora BS.TMPBUF4
|
||||
sta BS.TMPBUF4
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.TMPBUF3x2 asl BS.TMPBUF4
|
||||
rol BS.TMPBUF4+1
|
||||
rol BS.TMPBUF4+2
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.IsIntCmd ldx #$1F
|
||||
stx GP.XCNUM
|
||||
lda BS.CMDBUF
|
||||
eor #$2D
|
||||
eor #'-'
|
||||
bne LAB03
|
||||
|
||||
inc GP.XCNUM
|
||||
|
@ -1282,7 +1335,9 @@ LAB08 lda BS.KW.LEN,x
|
|||
dec GP.XLEN
|
||||
|
||||
LAB13 tax
|
||||
|
||||
LAB14 lda BS.CMDBUF,y
|
||||
jsr BS.ToUpper
|
||||
cmp BS.KW.TABLE,x
|
||||
bne LAB33
|
||||
|
||||
|
@ -1308,16 +1363,15 @@ LAB33 ldy GP.XLEN
|
|||
dec GP.XCNUM
|
||||
sec
|
||||
jmp GP.EXTRNCMD
|
||||
|
||||
BS.TMPBUF3Reset ldy #$00
|
||||
sty BS.TMPBUF4
|
||||
sty BS.TMPBUF4+1
|
||||
sty BS.TMPBUF4+2
|
||||
*--------------------------------------
|
||||
BS.TMPBUF3Reset stz BS.TMPBUF4
|
||||
stz BS.TMPBUF4+1
|
||||
stz BS.TMPBUF4+2
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.KW.APPEND lda GP.FITYPE
|
||||
cmp #$FC
|
||||
beq BS.KW.02
|
||||
beq BS.KW.RUN
|
||||
|
||||
cmp #$06
|
||||
beq LABA3
|
||||
|
@ -1338,12 +1392,13 @@ LAB63 cmp #$FF
|
|||
LAB6F pha
|
||||
jsr LB562
|
||||
jsr LB36B
|
||||
lda #$00
|
||||
sta GP.ParamA
|
||||
sta MLI.MEMTABL+19
|
||||
sta MLI.MEMTABL+20
|
||||
sta MLI.MEMTABL+21
|
||||
sta MLI.MEMTABL+22
|
||||
|
||||
stz GP.ParamA
|
||||
stz MLI.MEMTABL+19
|
||||
stz MLI.MEMTABL+20
|
||||
stz MLI.MEMTABL+21
|
||||
stz MLI.MEMTABL+22
|
||||
|
||||
lda #$01
|
||||
sta MLI.MEMTABL+23
|
||||
lda #$20
|
||||
|
@ -1363,7 +1418,7 @@ LABA6 sec
|
|||
jsr MON.IIGSID
|
||||
bcs LABA3
|
||||
|
||||
jmp LB099
|
||||
jmp BS.QUIT.IIgs
|
||||
|
||||
BS.KW.X05 jsr LA411
|
||||
lda AS.HIMEM+1
|
||||
|
@ -1381,9 +1436,9 @@ BS.KW.X05 jsr LA411
|
|||
lda #$00
|
||||
beq LABE6
|
||||
|
||||
BS.KW.02 lda #$00
|
||||
sta GP.IFILACTV
|
||||
sta AS.ERRNUM
|
||||
BS.KW.RUN stz GP.IFILACTV
|
||||
stz AS.ERRNUM
|
||||
|
||||
lda GP.FoundBITS
|
||||
lsr
|
||||
bcc LABF4
|
||||
|
@ -1524,7 +1579,7 @@ LACB6 lda GP.FoundBITS+1
|
|||
sta AS.TXTPTR+1
|
||||
clc
|
||||
LACD9 rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.KW.STORE bcc LACFE
|
||||
|
||||
lda #$FC
|
||||
|
@ -1550,13 +1605,16 @@ LACFE lda #$02
|
|||
sec
|
||||
sbc AS.PGRMSTART
|
||||
tax
|
||||
sta GP.SBUFADR
|
||||
* sta GP.SBUFADR
|
||||
lda AS.PGRMEND+1
|
||||
sbc AS.PGRMSTART+1
|
||||
tay
|
||||
sta GP.SBUFADR+1
|
||||
lda #$00
|
||||
sta GP.SBUFADR+2
|
||||
* sta GP.SBUFADR+1
|
||||
* lda #$00
|
||||
* sta GP.SBUFADR+2
|
||||
|
||||
jsr BS.SetSBUFADRXY0
|
||||
|
||||
lda AS.PGRMSTART
|
||||
sta GP.MLIRW.DATAPTR
|
||||
lda AS.PGRMSTART+1
|
||||
|
@ -1585,12 +1643,12 @@ LAD47 rts
|
|||
LAD48 stx GP.FIAUXTYPE
|
||||
sta GP.FIAUXTYPE+1
|
||||
jmp BS.SetFileInfoNoDate
|
||||
|
||||
BS.KW.CREATE lda #$00
|
||||
sta GP.CRAUXTYPE
|
||||
sta GP.CRAUXTYPE+1
|
||||
*--------------------------------------
|
||||
BS.KW.CREATE stz GP.CRAUXTYPE
|
||||
stz GP.CRAUXTYPE+1
|
||||
>DEBUG
|
||||
lda GP.FoundBITS
|
||||
and #$04
|
||||
and #CMDBITS0.T
|
||||
bne BS.CreateFileOrDir
|
||||
|
||||
lda #$0F
|
||||
|
|
|
@ -163,12 +163,9 @@ LAEF7 ldx GP.XCNUM
|
|||
and #$30
|
||||
beq LAF22
|
||||
|
||||
lda GP.MLIRW.COUNT
|
||||
sta GP.SBUFADR
|
||||
lda GP.MLIRW.COUNT+1
|
||||
sta GP.SBUFADR+1
|
||||
lda #$00
|
||||
sta GP.SBUFADR+2
|
||||
ldx GP.MLIRW.COUNT
|
||||
ldy GP.MLIRW.COUNT+1
|
||||
jsr BS.SetSBUFADRXY0
|
||||
lda #MLI.C.SETEOF
|
||||
jsr GP.GOSYSTEM
|
||||
|
||||
|
@ -176,6 +173,7 @@ LAF22 lda #MLI.C.WRITE
|
|||
|
||||
LAF24 jsr GP.GOSYSTEM
|
||||
bcs LAF38
|
||||
|
||||
bit GP.FoundBITS+1
|
||||
bvs LAF35
|
||||
|
||||
|
@ -224,6 +222,7 @@ LAF4E jsr LA411
|
|||
|
||||
lda #MLI.C.GETMARK
|
||||
jsr GP.GOSYSTEM
|
||||
|
||||
lda #MLI.C.SETEOF
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LAF95
|
||||
|
@ -308,6 +307,7 @@ BS.KW.IN lda #$00
|
|||
BS.KW.PR lda #$02
|
||||
sta BS.GetCharSep
|
||||
lda #$08
|
||||
|
||||
LB018 ora GP.ParamINPR
|
||||
asl
|
||||
tax
|
||||
|
@ -372,30 +372,29 @@ LB081 lda (ZP.PCL),y
|
|||
LB087 lda #$03
|
||||
sec
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
BS.KW.BYE jsr LB562
|
||||
jsr LB36B
|
||||
lda #$65
|
||||
jsr MLI
|
||||
.DA #MLI.C.QUIT
|
||||
.DA GP.MLIRW
|
||||
|
||||
LB099 jsr MLI
|
||||
*--------------------------------------
|
||||
BS.QUIT.IIgs jsr MLI
|
||||
.DA #MLI.C.QUIT
|
||||
.DA BS.MLIQUIT2.Param
|
||||
BS.MLIQUIT2.Param
|
||||
.DA #4
|
||||
.DA .1
|
||||
|
||||
.1 .DA #4
|
||||
.DA #$EE
|
||||
.DA MLI.PATHBUF
|
||||
.DA #0
|
||||
.DA 0
|
||||
|
||||
*--------------------------------------
|
||||
BS.KW.CAT lda #$27
|
||||
bne LB0AC
|
||||
|
||||
.HS 2C BIT ABS
|
||||
BS.KW.CATALOG lda #$4F
|
||||
|
||||
LB0AC sta BS.CATWIDTH
|
||||
sta BS.CATWIDTH
|
||||
lda GP.FoundBITS
|
||||
and #$05
|
||||
lsr
|
||||
|
@ -422,8 +421,6 @@ LB0C1 jsr LB1BA
|
|||
jsr BS.CROUT
|
||||
lda XBC14
|
||||
ora XBC15
|
||||
nop
|
||||
nop
|
||||
|
||||
LB0E8 jsr LB241
|
||||
bcs LB113
|
||||
|
@ -447,8 +444,7 @@ LB0FD lda IO.KBD
|
|||
bit IO.KSTROBE
|
||||
bcs LB113
|
||||
|
||||
LB10E nop
|
||||
lda #$FF
|
||||
LB10E lda #$FF
|
||||
bne LB0E8
|
||||
|
||||
LB113 jsr BS.FileClose
|
||||
|
@ -463,7 +459,7 @@ LB113 jsr BS.FileClose
|
|||
|
||||
clc
|
||||
LB127 rts
|
||||
|
||||
*--------------------------------------
|
||||
LB128 jsr BS.LINEBUFCLR80
|
||||
ldx #$01
|
||||
ldy DIRENTBUF.STNL
|
||||
|
@ -491,10 +487,13 @@ LB142 lda DIRENTBUF,y
|
|||
sta IO.LINEBUF
|
||||
rts
|
||||
|
||||
LB157 lda #$18
|
||||
sta GP.SBUFADR
|
||||
lda #$BC
|
||||
sta GP.SBUFADR+1
|
||||
LB157 ldx #BS.CMDBUF
|
||||
* sta GP.SBUFADR
|
||||
ldy /BS.CMDBUF
|
||||
* sta GP.SBUFADR+1
|
||||
|
||||
jsr BS.SetSBUFADRXY
|
||||
|
||||
lda MLI.DEVNUM
|
||||
sta GP.MLIMRKEOFBUF.REFNUM
|
||||
lda #MLI.C.ONLINE
|
||||
|
@ -535,7 +534,7 @@ LB157 lda #$18
|
|||
jsr BS.AXDEC2LINEBUFY
|
||||
clc
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
LB1BA lda #$01
|
||||
ldx #$0F
|
||||
ldy GP.STTYPE
|
||||
|
@ -553,8 +552,8 @@ BS.ReadDirEnt lda #$59
|
|||
sta GP.MLIRW.DATAPTR+1
|
||||
lda #$2B
|
||||
sta GP.MLIRW.COUNT
|
||||
lda #$00
|
||||
sta GP.MLIRW.COUNT+1
|
||||
|
||||
stz GP.MLIRW.COUNT+1
|
||||
lda #MLI.C.READ
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LB203
|
||||
|
@ -569,9 +568,9 @@ LB1EA lda $27C,x
|
|||
sta GP.MLIRW.COUNT
|
||||
lda #$01
|
||||
sta XBC16
|
||||
lda #$00
|
||||
sta GP.SBUFADR+1
|
||||
sta GP.SBUFADR+2
|
||||
|
||||
stz GP.SBUFADR+1
|
||||
stz GP.SBUFADR+2
|
||||
LB203 rts
|
||||
|
||||
BS.CheckFTypeXAccessA
|
||||
|
@ -612,7 +611,7 @@ LB239 lda #$0D
|
|||
LB23D lda #$0A
|
||||
sec
|
||||
rts
|
||||
|
||||
*--------------------------------------
|
||||
LB241 lda GP.SBUFADR+1
|
||||
and #$FE
|
||||
sta GP.SBUFADR+1
|
||||
|
@ -650,13 +649,14 @@ LB268 adc #$04
|
|||
lda DIRENTBUF
|
||||
and #$F0
|
||||
beq LB241
|
||||
|
||||
* BUG on DEC word
|
||||
dec XBC14
|
||||
bne LB28D
|
||||
|
||||
dec XBC15
|
||||
|
||||
LB28D rts
|
||||
|
||||
BS.JMP.XTRNADDR jmp (GP.XTRNADDR)
|
||||
|
||||
BS.KW.EXEC jsr BS.CheckFilename
|
||||
|
@ -666,10 +666,9 @@ BS.KW.EXEC jsr BS.CheckFilename
|
|||
bpl LB2BC
|
||||
|
||||
sta GP.MLIMRKEOFBUF.REFNUM
|
||||
lda #$00
|
||||
sta GP.SBUFADR
|
||||
sta GP.SBUFADR+1
|
||||
sta GP.SBUFADR+2
|
||||
|
||||
jsr BS.ZeroSBUFADR
|
||||
|
||||
lda #MLI.C.SETMARK
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LB2B5
|
||||
|
@ -704,8 +703,8 @@ LB2D3 sec
|
|||
LB2D5 jsr LA1F9
|
||||
bcs LB2D3
|
||||
|
||||
lda #$00
|
||||
sta GP.SBUFADR
|
||||
stz GP.SBUFADR
|
||||
|
||||
lda XBBE3
|
||||
sta GP.SBUFADR+1
|
||||
ldx GP.OPENCNT
|
||||
|
@ -738,8 +737,9 @@ LB2FB tya
|
|||
LB30D pla
|
||||
LB30E sta XBBE3
|
||||
sta GP.OSYSBUF+1
|
||||
lda #$00
|
||||
sta MLI.LEVEL
|
||||
|
||||
stz MLI.LEVEL
|
||||
|
||||
lda #MLI.C.OPEN
|
||||
jsr GP.GOSYSTEM
|
||||
bcc LB327
|
||||
|
@ -754,6 +754,7 @@ LB327 ldx GP.OSYSBUF+1
|
|||
stx XBBF6
|
||||
lda GP.OREFNUM
|
||||
sta XBBFE
|
||||
|
||||
LB333 sta GP.MLIRW.REFNUM
|
||||
sta GP.MLIMRKEOFBUF.REFNUM
|
||||
sta GP.NEWLREF
|
||||
|
@ -803,8 +804,8 @@ BS.KW.X10 bcs LB3B7
|
|||
LB38D clc
|
||||
rts
|
||||
|
||||
lda #$00
|
||||
beq LB39F
|
||||
* lda #$00
|
||||
* beq LB39F
|
||||
|
||||
BS.KW.FLUSH lda GP.FoundBITS
|
||||
and #$01
|
||||
|
@ -918,6 +919,7 @@ LB443 lda #$00
|
|||
lda GP.OREFNUM
|
||||
sta XBBF7,x
|
||||
inc GP.OPENCNT
|
||||
|
||||
LB45B asl
|
||||
asl
|
||||
asl
|
||||
|
@ -1056,8 +1058,8 @@ LB515 sta GP.MLICF.REFNUM
|
|||
pla
|
||||
sta XBBF6,y
|
||||
|
||||
LB53F lda #$00
|
||||
sta MLI.LEVEL
|
||||
LB53F stz MLI.LEVEL
|
||||
|
||||
lda #MLI.C.CLOSE
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LB572
|
||||
|
@ -1066,11 +1068,9 @@ LB53F lda #$00
|
|||
bit GP.EXECFILE
|
||||
bpl LB55E
|
||||
|
||||
pha
|
||||
lda #$00
|
||||
sta GP.EXECACTV
|
||||
sta GP.EXECFILE
|
||||
pla
|
||||
stz GP.EXECACTV
|
||||
stz GP.EXECFILE
|
||||
|
||||
rts
|
||||
|
||||
LB55E dec GP.OPENCNT
|
||||
|
@ -1086,8 +1086,8 @@ LB562 ldx GP.OPENCNT
|
|||
|
||||
LB572 rts
|
||||
|
||||
LB573 lda #$00
|
||||
sta GP.MLICF.REFNUM
|
||||
LB573 stz GP.MLICF.REFNUM
|
||||
|
||||
lda #$07
|
||||
sta MLI.LEVEL
|
||||
lda #MLI.C.CLOSE
|
||||
|
@ -1118,9 +1118,10 @@ LB592 lda GP.FoundBITS+1
|
|||
|
||||
LB5AD lda #$EF
|
||||
sta GP.MLIRW.COUNT
|
||||
lda #$00
|
||||
sta GP.MLIRW.COUNT+1
|
||||
sta GP.MLIRW.DATAPTR
|
||||
|
||||
stz GP.MLIRW.COUNT+1
|
||||
stz GP.MLIRW.DATAPTR
|
||||
|
||||
lda #$02
|
||||
sta GP.MLIRW.DATAPTR+1
|
||||
lda #$7F
|
||||
|
@ -1154,12 +1155,12 @@ LB5F1 lda XBBFF
|
|||
sta BS.TMPBUF4
|
||||
lda XBC00
|
||||
sta BS.TMPBUF4+1
|
||||
lda #$00
|
||||
sta BS.TMPBUF4+2
|
||||
sta BS.TMPBUF4+3
|
||||
sta GP.SBUFADR
|
||||
sta GP.SBUFADR+1
|
||||
sta GP.SBUFADR+2
|
||||
|
||||
stz BS.TMPBUF4+2
|
||||
stz BS.TMPBUF4+3
|
||||
|
||||
jsr BS.ZeroSBUFADR
|
||||
|
||||
LB60E lsr GP.ParamR+1
|
||||
ror GP.ParamR
|
||||
ldx #$00
|
||||
|
@ -1232,8 +1233,9 @@ LB67C sta GP.MLIRW.DATAPTR
|
|||
stx GP.NLINEMASK
|
||||
lda #$02
|
||||
sta GP.MLIRW.DATAPTR+1
|
||||
lda #$00
|
||||
sta GP.MLIRW.COUNT+1
|
||||
|
||||
stz GP.MLIRW.COUNT+1
|
||||
|
||||
lda #MLI.C.NEWLINE
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LB69B
|
||||
|
@ -1253,10 +1255,8 @@ LB69C lda #$59
|
|||
clc
|
||||
beq LB696
|
||||
|
||||
lda #$00
|
||||
sta GP.SBUFADR
|
||||
sta GP.SBUFADR+1
|
||||
sta GP.SBUFADR+2
|
||||
jsr BS.ZeroSBUFADR
|
||||
|
||||
lda #MLI.C.SETMARK
|
||||
jsr GP.GOSYSTEM
|
||||
bcs LB6CA
|
||||
|
@ -1333,8 +1333,7 @@ BS.KW.X08 jsr BS.CheckFilename
|
|||
LB732 sec
|
||||
rts
|
||||
|
||||
LB734 lda #$00
|
||||
sta GP.MLIRW.DATAPTR
|
||||
LB734 stz GP.MLIRW.DATAPTR
|
||||
lda #$02
|
||||
sta GP.MLIRW.DATAPTR+1
|
||||
jsr LB6D0
|
||||
|
@ -1397,12 +1396,7 @@ LB78A ldx GP.ParamL
|
|||
ldy GP.FIAUXTYPE+1
|
||||
LB79D txa
|
||||
pha
|
||||
lda GP.MLIRW.REFNUM
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
ror
|
||||
tax
|
||||
jsr BS.GetFTableIdx
|
||||
pla
|
||||
sta XBC5A,x
|
||||
sta XBBFF
|
||||
|
@ -1485,11 +1479,10 @@ BS.GetFileInfo lda #$0A
|
|||
bne LB858
|
||||
|
||||
BS.SetFileInfoNoDate
|
||||
lda #$00
|
||||
sta GP.FIMDATE
|
||||
sta GP.FIMDATE+1
|
||||
sta GP.FICDATE
|
||||
sta GP.FICDATE+1
|
||||
stz GP.FIMDATE
|
||||
stz GP.FIMDATE+1
|
||||
stz GP.FICDATE
|
||||
stz GP.FICDATE+1
|
||||
|
||||
BS.SetFileInfo lda #$07
|
||||
sta GP.SSGINFO
|
||||
|
@ -1500,6 +1493,37 @@ LB858 jmp GP.GOSYSTEM
|
|||
BS.JMP.GP.VSYSO jmp (GP.VSYSO)
|
||||
BS.JMP.GP.VSYSI jmp (GP.VSYSI)
|
||||
*--------------------------------------
|
||||
BS.ToUpper cmp #'a'
|
||||
bcc .9
|
||||
|
||||
cmp #'z'+1
|
||||
bcs .9
|
||||
|
||||
eor #$20
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
BS.GetFTableIdx lda GP.MLIRW.REFNUM
|
||||
lsr
|
||||
ror
|
||||
ror
|
||||
ror
|
||||
tax
|
||||
rts
|
||||
*--------------------------------------
|
||||
BS.SetSBUFADRXY0
|
||||
stz GP.SBUFADR+2
|
||||
|
||||
BS.SetSBUFADRXY stx GP.SBUFADR
|
||||
sty GP.SBUFADR+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
BS.ZeroSBUFADR lda #0
|
||||
sta GP.SBUFADR
|
||||
sta GP.SBUFADR+1
|
||||
sta GP.SBUFADR+2
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/basic.fx/basic.s.c
|
||||
LOAD usr/src/basic.fx/basic.s
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
BS.FREESPACE .EQ $B861-*
|
||||
.BS BS.FREESPACE
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
BS.SYSIOVECTS .DA BS.IO.OUT
|
||||
.DA BS.IO.IN
|
||||
|
@ -7,8 +12,8 @@ BS.SYSIOVECTS .DA BS.IO.OUT
|
|||
.DA BS.IO.IN0
|
||||
.DA BS.IO.OUT.CAT
|
||||
.DA BS.IO.IN0
|
||||
BS.VSYSO.LO .DA #$A7
|
||||
BS.VSYSO.HI .DA #$9D
|
||||
BS.VSYSO.LO .DA #BS.VSYSO
|
||||
BS.VSYSO.HI .DA /BS.VSYSO
|
||||
BS.ParamLByte .DA #$A0
|
||||
.DA #$AC
|
||||
.DA #$AF
|
||||
|
@ -125,15 +130,15 @@ BS.KW.LEN .DA #$BF
|
|||
.DA #$B5
|
||||
.DA #$D8
|
||||
BS.KW.TABLE .AS "BSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND"
|
||||
BS.KW.JMP .DA BS.JMP.XTRNADDR
|
||||
BS.KW.JMP .DA BS.JMP.XTRNADDR $00
|
||||
.DA BS.KW.PR
|
||||
.DA BS.KW.IN
|
||||
.DA BS.KW.CAT
|
||||
.DA BS.KW.01
|
||||
.DA BS.KW.BYE
|
||||
.DA BS.KW.02
|
||||
.DA BS.KW.RUN
|
||||
.DA BS.KW.BRUN
|
||||
.DA BS.KW.EXEC
|
||||
.DA BS.KW.EXEC $10
|
||||
.DA BS.KW.RESTORE
|
||||
.DA BS.KW.LOCK
|
||||
.DA BS.KW.03
|
||||
|
@ -141,7 +146,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR
|
|||
.DA BS.KW.STORE
|
||||
.DA BS.KW.BLOAD
|
||||
.DA BS.KW.BSAVE
|
||||
.DA BS.KW.X05
|
||||
.DA BS.KW.X05 $20
|
||||
.DA BS.KW.X06
|
||||
.DA BS.KW.FLUSH
|
||||
.DA BS.KW.X07
|
||||
|
@ -149,7 +154,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR
|
|||
.DA BS.KW.X08
|
||||
.DA BS.KW.X09
|
||||
.DA BS.KW.CREATE
|
||||
.DA BS.KW.DELETE
|
||||
.DA BS.KW.DELETE $30
|
||||
.DA BS.KW.PREFIX
|
||||
.DA BS.KW.RENAME
|
||||
.DA BS.KW.UNLOCK
|
||||
|
@ -157,7 +162,7 @@ BS.KW.JMP .DA BS.JMP.XTRNADDR
|
|||
.DA BS.KW.CATALOG
|
||||
.DA BS.KW.LOAD
|
||||
.DA BS.KW.CLOSE
|
||||
.DA BS.KW.APPEND
|
||||
.DA BS.KW.APPEND $40
|
||||
BS.KW.PBITS .DA $8040
|
||||
.DA $8040
|
||||
.DA $0495
|
||||
|
|
|
@ -279,11 +279,9 @@ LDR.GFINFO.P.PATHBUF
|
|||
|
||||
LDR.GETSETPFX1.P
|
||||
.DA #1
|
||||
LDR.GETSETPFX1.P.BUF
|
||||
.DA LDR.GETSETPFX1.SLASHLEN
|
||||
LDR.GETSETPFX1.SLASHLEN
|
||||
.DA #1
|
||||
.DA LDR.GETSETPFX1.SLASH
|
||||
LDR.GETSETPFX1.SLASH
|
||||
.DA #1
|
||||
.AS "/"
|
||||
LDR.STARTUP.LEN1
|
||||
.DA #0
|
||||
|
@ -295,12 +293,11 @@ LDR.ONLINE.P.BUF
|
|||
.DA MLI.PATHBUF+1
|
||||
LDR.GETSETPFX2.P
|
||||
.DA #1
|
||||
LDR.GETSETPFX2.P.BUF
|
||||
.DA MLI.PATHBUF
|
||||
LDR.PFXLEN .DA #0
|
||||
|
||||
LDR.UNABLE .AS -"*** UNABLE TO EXECUTE BASIC SYSTEM ***"
|
||||
LDR.PRODOSBASIC .AS -" PRODOS BASIC 1.5 "
|
||||
LDR.PRODOSBASIC .AS -" PRODOS BASIC FX"
|
||||
LDR.COPYRIGHT .AS -" COPYRIGHT APPLE 1983-92"
|
||||
.BS $2400-*
|
||||
*--------------------------------------
|
||||
|
|
|
@ -1,9 +1,36 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
.LIST OFF
|
||||
.OP 6502
|
||||
.OP 65c02
|
||||
.OR $2000
|
||||
.TF BASIC.FX,TSYS
|
||||
.TF BASIC.SYSTEM,TSYS
|
||||
*--------------------------------------
|
||||
.MA DEBUG
|
||||
:1 bit $C000
|
||||
bpl :1
|
||||
sta $C010
|
||||
.EM
|
||||
*--------------------------------------
|
||||
LOWERCASE .EQ 1
|
||||
*--------------------------------------
|
||||
CMDBITS0.PFIX .EQ $80 ;Prefix needs fetching, pathname optional
|
||||
CMDBITS0.SLOT .EQ $40 ;No parameters to be processed
|
||||
CMDBITS0.RRUN .EQ $20 ;Command only valid during program
|
||||
CMDBITS0.FNOPT .EQ $10 ;Filename is optional
|
||||
CMDBITS0.CRFLG .EQ $08 ;CREATE allowed
|
||||
CMDBITS0.T .EQ $04 ;File type
|
||||
CMDBITS0.FN2 .EQ $02 ;Filename '2' for RENAME
|
||||
CMDBITS0.FN1 .EQ $01 ;Filename expected
|
||||
|
||||
CMDBITS1.AD .EQ $80 ;Address
|
||||
CMDBITS1.B .EQ $40 ;Byte
|
||||
CMDBITS1.E .EQ $20 ;End address
|
||||
CMDBITS1.L .EQ $10 ;Length
|
||||
CMDBITS1.LINE .EQ $08 ;'@' line number
|
||||
CMDBITS1.SD .EQ $04 ;Slot and drive numbers
|
||||
CMDBITS1.F .EQ $02 ;Field
|
||||
CMDBITS1.R .EQ $01 ;Record
|
||||
CMDBITS1.V .EQ $00 ;Volume number ignored
|
||||
*--------------------------------------
|
||||
Ptr1 .EQ 0
|
||||
Ptr2 .EQ 2
|
||||
|
|
|
@ -27,8 +27,9 @@ ILDR.ENUMPM .DO PM
|
|||
jsr ILDR.EnumInit
|
||||
|
||||
.1 ldx #S.FI.T.BIN
|
||||
ldy #ILDR.KMSFX
|
||||
lda /ILDR.KMSFX
|
||||
ldy #ILDR.KMPFX
|
||||
lda /ILDR.KMPFX
|
||||
clc prefix
|
||||
jsr ILDR.EnumNext
|
||||
bcs .4
|
||||
|
||||
|
@ -65,6 +66,7 @@ ILDR.ENUMPM .DO PM
|
|||
ldx #S.FI.T.SYS
|
||||
ldy #ILDR.SYSTEMSFX
|
||||
lda /ILDR.SYSTEMSFX
|
||||
sec suffix
|
||||
jsr ILDR.EnumNext
|
||||
bcs .9
|
||||
|
||||
|
@ -151,12 +153,14 @@ ILDR.EnumInit.RTS
|
|||
rts
|
||||
*--------------------------------------
|
||||
* X = expected FileType
|
||||
* Y,A = expected suffix
|
||||
* Y,A = expected prefix/suffix
|
||||
*--------------------------------------
|
||||
ILDR.EnumNext stx ILDR.FT
|
||||
sty src
|
||||
sta src+1
|
||||
|
||||
ror ILDR.bPFXSFX
|
||||
|
||||
.1 inc ILDR.nFC
|
||||
bne .2
|
||||
|
||||
|
@ -208,9 +212,12 @@ ILDR.EnumNext stx ILDR.FT
|
|||
cmp ILDR.FT expected file type
|
||||
bne .1
|
||||
|
||||
lda (src) expected suffix len
|
||||
lda (src) expected prefix/suffix len
|
||||
cmp pbuf
|
||||
bcs .1 filename LE suffix
|
||||
bcs .1 filename LE prefix/suffix
|
||||
|
||||
bit ILDR.bPFXSFX
|
||||
bpl .12 go check prefix
|
||||
|
||||
tay
|
||||
ldx pbuf
|
||||
|
@ -223,8 +230,20 @@ ILDR.EnumNext stx ILDR.FT
|
|||
dex
|
||||
dey
|
||||
bne .11
|
||||
bra .15
|
||||
|
||||
ldy #$1D MIN_VERSION
|
||||
.12 lda (src) expected prefix/suffix len
|
||||
tay
|
||||
|
||||
.13 lda pbuf,y
|
||||
eor (src),y
|
||||
asl
|
||||
bne .1
|
||||
|
||||
dey
|
||||
bne .13
|
||||
|
||||
.15 ldy #$1D MIN_VERSION
|
||||
lda (idxl),y
|
||||
bpl .10 no lowercase information
|
||||
|
||||
|
@ -335,8 +354,8 @@ ILDR.QUIT .DA #4 PARAM CNT
|
|||
*--------------------------------------
|
||||
ILDR.ATINIT .DA #6
|
||||
.AS "ATINIT"
|
||||
ILDR.KMSFX .DA #3
|
||||
.AS ".PM"
|
||||
ILDR.KMPFX .DA #3
|
||||
.AS "PM."
|
||||
ILDR.SYSTEMSFX .DA #7
|
||||
.AS ".SYSTEM"
|
||||
*--------------------------------------
|
||||
|
@ -348,6 +367,7 @@ ILDR.EL .BS 1
|
|||
ILDR.nFC .BS 2
|
||||
ILDR.FT .BS 1
|
||||
ILDR.EITB .BS 1
|
||||
ILDR.bPFXSFX .BS 1
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65816
|
||||
.OR $2000
|
||||
.TF PRODOS.FX,TSYS
|
||||
.TF PRODOS,TSYS
|
||||
*--------------------------------------
|
||||
READCAT .EQ 0 Boot Block read Catalog at $C00
|
||||
ENHFILENAME .EQ 1
|
||||
|
|
|
@ -299,6 +299,10 @@ CS.QUIT
|
|||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
*
|
||||
*--------------------------------------
|
||||
CS.DRV
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
* Initialized DATA
|
||||
|
|
|
@ -460,19 +460,18 @@ CPU.Init >PUSHWI MSG.CPU
|
|||
>PUSHBI 1
|
||||
>SYSCALL2 printf
|
||||
|
||||
ldy #0
|
||||
|
||||
stz A2osX.CPUSPEED+1
|
||||
|
||||
ldx A2osX.HZ
|
||||
ldy #0
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
ldx A2osX.HWType
|
||||
cpx #A2osX.HWType.IIc
|
||||
lda A2osX.HWType
|
||||
cmp #A2osX.HWType.IIc
|
||||
beq CPU.Init2c
|
||||
|
||||
ldx A2osX.HZ
|
||||
|
||||
.1 bit VBL //e : Wait VBL high....
|
||||
bpl .1
|
||||
|
||||
|
@ -489,8 +488,6 @@ CPU.Init >PUSHWI MSG.CPU
|
|||
pla (4)
|
||||
pha (3)
|
||||
pla (4)
|
||||
pha (3)
|
||||
pla (4)
|
||||
|
||||
iny
|
||||
cpy #100
|
||||
|
@ -507,21 +504,22 @@ CPU.Init >PUSHWI MSG.CPU
|
|||
|
||||
bra CPU.InitOK
|
||||
*--------------------------------------
|
||||
CPU.Init2c sta CLRIOUDIS
|
||||
CPU.Init2c lda RDIOUDIS
|
||||
pha
|
||||
sta CLRIOUDIS
|
||||
|
||||
lda IO.IIC.RDVBLMSK
|
||||
pha Save VBLIRQ enable
|
||||
|
||||
sta IO.IIC.ENVBL
|
||||
lda IO.IIC.CLRVBLIRQ
|
||||
|
||||
ldx A2osX.HZ
|
||||
lda IO.IIC.CLRVBLIRQ
|
||||
|
||||
.1 bit VBL Wait VBL high....
|
||||
bpl .1
|
||||
|
||||
bit IO.IIC.CLRVBLIRQ clear //c IRQ
|
||||
|
||||
.3 lda #40
|
||||
.3 lda #60
|
||||
|
||||
.4 pha (3)
|
||||
pla (4)
|
||||
|
@ -547,9 +545,14 @@ CPU.Init2c sta CLRIOUDIS
|
|||
bne .3
|
||||
|
||||
pla Disable VBLIRQ ?
|
||||
bpl CPU.InitOk
|
||||
bpl .8
|
||||
|
||||
sta IO.IIC.DISVBL
|
||||
|
||||
.8 pla
|
||||
bpl CPU.InitOk
|
||||
|
||||
sta SETIOUDIS
|
||||
*--------------------------------------
|
||||
CPU.InitOk plp
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF sys/km/km.appletalk
|
||||
.TF sys/pm/pm.appletalk
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
|
@ -177,5 +177,5 @@ MLI.AT.FINaming .DA #0 Synchonous
|
|||
.DA #%10000000 b7=1:Use AFP long Name, b6=0:Update ProDOS dev table
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.appletalk.s
|
||||
SAVE usr/src/sys/pm.appletalk.s
|
||||
ASM
|
||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF sys/km/km.nsc
|
||||
.TF sys/pm/pm.nsc
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
|
@ -319,5 +319,5 @@ NSCDRV.SIZE .EQ *-NSCDRV.B.START
|
|||
.FIN
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.nsc.s
|
||||
SAVE usr/src/sys/pm.nsc.s
|
||||
ASM
|
||||
|
|
|
@ -3,8 +3,7 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF sys/km/km.ramworks
|
||||
* .TF ramworks.pm
|
||||
.TF sys/pm/pm.ramworks
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
|
@ -793,5 +792,5 @@ RWDRVX.SIZE .EQ RWDRVX.B.END-RWDRVX.B.START
|
|||
.FIN
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.ramworks.s
|
||||
SAVE usr/src/sys/pm.ramworks.s
|
||||
ASM
|
||||
|
|
|
@ -374,6 +374,6 @@ VEDRIVE.GetCharPtr1
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s.cf
|
||||
LOAD usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s.cf
|
||||
LOAD usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -12,6 +12,6 @@ DRV.GS .EQ *
|
|||
.EP
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s.gs
|
||||
LOAD usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s.gs
|
||||
LOAD usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -524,6 +524,6 @@ VEDRIVE.CheckARPFrame
|
|||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s.ip
|
||||
LOAD usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s.ip
|
||||
LOAD usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -6,8 +6,7 @@ U1.Init lda CONF.SLOT
|
|||
asl
|
||||
asl
|
||||
asl
|
||||
sta DRV.U1+2 set DRV.U1.Slotn0
|
||||
|
||||
sta Slotn0
|
||||
tax
|
||||
|
||||
lda /PP.ID
|
||||
|
@ -47,7 +46,7 @@ U1.Init lda CONF.SLOT
|
|||
>LDYAI VEDRIVE.NICOK
|
||||
jsr PrintFYA
|
||||
|
||||
ldx DRV.U1+2
|
||||
ldx Slotn0
|
||||
|
||||
lda /PP.RxCTL
|
||||
sta PacketPagePTR+1,x
|
||||
|
@ -104,7 +103,7 @@ U1.Init lda CONF.SLOT
|
|||
U1.READ php
|
||||
sei
|
||||
|
||||
ldx DRV.U1+2
|
||||
ldx Slotn0
|
||||
|
||||
lda /PP.RxEvent
|
||||
sta PacketPagePTR+1,x
|
||||
|
@ -129,7 +128,7 @@ U1.READ php
|
|||
eor #$ff
|
||||
sta ZPnCnt
|
||||
|
||||
ldx DRV.U1+2
|
||||
ldx Slotn0
|
||||
|
||||
lda ZPBufPtr+1
|
||||
pha
|
||||
|
@ -174,7 +173,7 @@ U1.READWRITE.9 plp
|
|||
U1.WRITE php
|
||||
sei
|
||||
|
||||
ldx DRV.U1+2
|
||||
ldx Slotn0
|
||||
|
||||
lda /PP.TxCMD.LID+PP.TxCMD.TxStartFULL
|
||||
sta TxCMD+1,x
|
||||
|
@ -201,7 +200,7 @@ U1.WRITE php
|
|||
bit /PP.BusST.Rdy4TxNOW
|
||||
beq U1.READWRITE.9
|
||||
|
||||
ldx DRV.U1+2
|
||||
ldx Slotn0
|
||||
|
||||
ldy #0
|
||||
|
||||
|
@ -237,12 +236,10 @@ U1.Name >PSTR "Uthernet V1"
|
|||
*--------------------------------------
|
||||
DRV.U1 .EQ *
|
||||
.PH $D400
|
||||
cld
|
||||
ldx #$ff SELF MODIFIED
|
||||
|
||||
.EP
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s.u1
|
||||
LOAD usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s.u1
|
||||
LOAD usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -8,7 +8,7 @@ U2.Init lda CONF.SLOT
|
|||
asl
|
||||
clc
|
||||
adc #$88
|
||||
sta DRV.U2+2 set DRV.U2.Slotn0
|
||||
sta Slotn0
|
||||
tax
|
||||
|
||||
lda #W5100.MR.RST
|
||||
|
@ -56,7 +56,7 @@ U2.Init lda CONF.SLOT
|
|||
>LDYAI VEDRIVE.NICOK
|
||||
jsr PrintFYA
|
||||
|
||||
ldx DRV.U2+2
|
||||
ldx Slotn0
|
||||
|
||||
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
||||
sta W5100.MR,x
|
||||
|
@ -83,14 +83,13 @@ U2.Init lda CONF.SLOT
|
|||
lda #W5100.AR.Sn.CR.OPEN
|
||||
sta W5100.DR,x
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
U2.Read php
|
||||
sei
|
||||
|
||||
ldx DRV.U2+2
|
||||
ldx Slotn0
|
||||
|
||||
>AR.SELECT S0.RX.RSR
|
||||
lda W5100.DR,x get the received size HI
|
||||
|
@ -180,7 +179,7 @@ U2.READWRITE.9 plp
|
|||
U2.Write php
|
||||
sei
|
||||
|
||||
ldx DRV.U2+2
|
||||
ldx Slotn0
|
||||
|
||||
lda ZPBufCnt
|
||||
eor #$ff
|
||||
|
@ -252,13 +251,181 @@ Offset .BS 2
|
|||
TotalSize .BS 2
|
||||
*--------------------------------------
|
||||
DRV.U2 .EQ *
|
||||
.PH $D400
|
||||
cld
|
||||
ldx #$ff SELF MODIFIED
|
||||
.PH DRV.NIC.START
|
||||
|
||||
DRV.U2.START jmp DRV.U2.Write
|
||||
|
||||
DRV.U2.Read php
|
||||
sei
|
||||
|
||||
ldx DRV.START
|
||||
|
||||
>AR.SELECT S0.RX.RSR
|
||||
lda W5100.DR,x get the received size HI
|
||||
nop
|
||||
nop
|
||||
ora W5100.DR,x LO
|
||||
bne .1
|
||||
|
||||
jmp DRV.U2.9
|
||||
|
||||
.1 >AR.SELECT S0.RX.RD
|
||||
lda W5100.DR,x get the received ptr HI
|
||||
sta Offset+1
|
||||
ldy W5100.DR,x get the received ptr LO
|
||||
sty Offset
|
||||
|
||||
and /RXTX.MASK
|
||||
ora /RX.BASE
|
||||
sta W5100.AR,x
|
||||
tya
|
||||
sta W5100.AR+1,x
|
||||
|
||||
lda W5100.DR,x get RX.Size HI (Frame size + 2)
|
||||
sta TotalSize+1
|
||||
lda W5100.DR,x get RX.Size LO
|
||||
sta TotalSize
|
||||
|
||||
sec
|
||||
sbc #2 MACRAW:strip 2 bytes Header from Size
|
||||
sta ZPBufCnt
|
||||
eor #$ff
|
||||
sta ZPnCnt
|
||||
|
||||
lda TotalSize+1
|
||||
sbc #0
|
||||
sta ZPBufCnt
|
||||
eor #$ff
|
||||
sta ZPnCnt+1
|
||||
|
||||
lda ZPBufPtr+1
|
||||
pha
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 inc ZPnCnt
|
||||
bne .3
|
||||
|
||||
inc ZPnCnt+1
|
||||
beq .8
|
||||
|
||||
.3 lda W5100.DR,x
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
bne .2
|
||||
|
||||
inc ZPBufPtr+1
|
||||
bra .2
|
||||
|
||||
.8 >AR.SELECT S0.RX.RD
|
||||
|
||||
lda Offset
|
||||
clc
|
||||
adc TotalSize
|
||||
pha save LO
|
||||
|
||||
lda Offset+1
|
||||
adc TotalSize+1
|
||||
sta W5100.DR,x write HI
|
||||
pla
|
||||
sta W5100.DR,x write LO
|
||||
|
||||
>AR.SELECT S0.CR
|
||||
lda #W5100.AR.Sn.CR.RCVD
|
||||
sta W5100.DR,x
|
||||
|
||||
pla
|
||||
sta ZPBufPtr+1
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.U2.9 plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.U2.Write php
|
||||
sei
|
||||
|
||||
>STYA ZPBufCnt
|
||||
|
||||
eor #$ff
|
||||
sta ZPnCnt+1
|
||||
|
||||
tya
|
||||
eor #$ff
|
||||
sta ZPnCnt
|
||||
|
||||
>LDYA DRV.OutBuf
|
||||
>STYA ZPBufPtr
|
||||
|
||||
ldx DRV.START
|
||||
|
||||
>AR.SELECT S0.TX.FSR
|
||||
lda W5100.DR,x get send size HI
|
||||
nop
|
||||
nop
|
||||
ldy W5100.DR,x LO
|
||||
cpy ZPBufCnt
|
||||
sbc ZPBufCnt+1
|
||||
bcc DRV.U2.9
|
||||
|
||||
>AR.SELECT S0.TX.WR
|
||||
lda W5100.DR,x Get HI
|
||||
nop
|
||||
nop
|
||||
ldy W5100.DR,x Get LO
|
||||
and /RXTX.MASK
|
||||
ora /TX.BASE
|
||||
sta W5100.AR,x Write HI
|
||||
sta Offset+1
|
||||
tya
|
||||
sta W5100.AR+1,x Write LO
|
||||
sta Offset
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 inc ZPnCnt
|
||||
bne .3
|
||||
|
||||
inc ZPnCnt+1
|
||||
beq .8
|
||||
|
||||
.3 lda (ZPBufPtr),y
|
||||
sta W5100.DR,x
|
||||
iny
|
||||
bne .2
|
||||
|
||||
inc ZPBufPtr+1
|
||||
bra .2
|
||||
|
||||
.8 >AR.SELECT S0.TX.WR
|
||||
lda Offset
|
||||
clc
|
||||
adc ZPBufCnt
|
||||
pha save LO
|
||||
lda Offset+1
|
||||
adc ZPBufCnt+1
|
||||
sta W5100.DR,x write HI
|
||||
pla
|
||||
sta W5100.DR,x write LO
|
||||
|
||||
>AR.SELECT S0.CR
|
||||
lda #W5100.AR.Sn.CR.SEND
|
||||
sta W5100.DR,x
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.EP
|
||||
|
||||
.LIST ON
|
||||
DRV.U2.SIZE .EQ *-DRV.U2
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s.u2
|
||||
LOAD usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s.u2
|
||||
LOAD usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -3,8 +3,8 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
* .TF sys/km.vedrive
|
||||
.TF vedrive.pm
|
||||
* .TF sys/pm/pm.vedrive
|
||||
.TF sys/pm.vedrive
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
|
@ -31,11 +31,12 @@ ZPCheckSum .EQ 14
|
|||
timerS .EQ 16
|
||||
timerC .EQ 17
|
||||
bRemoteMac .EQ 18
|
||||
Slotn0 .EQ 19
|
||||
*--------------------------------------
|
||||
ADT.CMD.VSD .EQ $C5 "E": Virtual Drive Command Envelope
|
||||
ADT.CMD.PING .EQ $D9 "Y": PING
|
||||
DRV.EntryPoint .EQ $BF41
|
||||
DRV.ADDR .EQ $D400
|
||||
DRV.NIC.START .EQ $D500
|
||||
*--------------------------------------
|
||||
CONF.FBUF .EQ $4000
|
||||
CONF.LBUF .EQ $4400
|
||||
|
@ -67,7 +68,6 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||
rts
|
||||
|
||||
.3 jsr VEDRIVE.MACInit
|
||||
|
||||
lda CONF.ADDRESS
|
||||
bne .4
|
||||
|
||||
|
@ -111,7 +111,7 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||
.7 >LDYAI VEDRIVE.SRVOK
|
||||
jsr PrintFYA
|
||||
|
||||
jsr VEDRIVE.SetSlot
|
||||
* jsr VEDRIVE.SetSlot
|
||||
bcc .8
|
||||
|
||||
>LDYAI VEDRIVE.NOSLOT
|
||||
|
@ -135,22 +135,20 @@ VEDRIVE.Init >LDYAI VEDRIVE.MSG0
|
|||
rts
|
||||
*--------------------------------------
|
||||
VEDRIVE.CheckDRV
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
|
||||
clc
|
||||
lda $D400
|
||||
eor #$D8 CLD
|
||||
bne .8
|
||||
|
||||
lda $D401
|
||||
eor #$A2 LDX #imm
|
||||
bne .8
|
||||
ldx #COPYRIGHT.LEN
|
||||
|
||||
sec
|
||||
|
||||
.8 bit RROMBNK1
|
||||
rts
|
||||
.1 lda DRV.EntryPoint-1,x
|
||||
eor COPYRIGHT-1,x
|
||||
bne .9
|
||||
|
||||
dex
|
||||
bne .1
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
VEDRIVE.Ping lda CONF.PORT
|
||||
sta ADT.REQ.UDP.DST
|
||||
|
@ -287,28 +285,93 @@ VEDRIVE.SetSlot ldx #2 Starts at Slot1
|
|||
*--------------------------------------
|
||||
VEDRIVE.Install ldx #PATCH.SIZE
|
||||
|
||||
.1 lda PATCH-1,x
|
||||
sta DRV.EntryPoint-1,x
|
||||
dex
|
||||
bne .1
|
||||
*.1 lda PATCH-1,x
|
||||
* sta DRV.EntryPoint-1,x
|
||||
* dex
|
||||
* bne .1
|
||||
|
||||
bit RRAMWRAMBNK2
|
||||
bit RRAMWRAMBNK2
|
||||
|
||||
ldy #DRV.SIZE-1
|
||||
|
||||
.2 lda DRV,y
|
||||
sta DRV.START,y
|
||||
dey
|
||||
bne .2
|
||||
|
||||
lda Slotn0
|
||||
sta DRV.START
|
||||
|
||||
ldy #DRV.IP.SIZE-1
|
||||
|
||||
.3 lda DRV.IP,y
|
||||
sta DRV.IP.START,y
|
||||
dey
|
||||
bne .3
|
||||
|
||||
ldx CONF.NIC
|
||||
lda .10,x
|
||||
sta ZPPtr1
|
||||
|
||||
lda .10+1,x
|
||||
sta ZPPtr1+1
|
||||
|
||||
lda .20,x
|
||||
eor #$ff
|
||||
sta ZPnCnt
|
||||
|
||||
lda .20+1,x
|
||||
eor #$ff
|
||||
sta ZPnCnt+1
|
||||
|
||||
lda #DRV.NIC.START
|
||||
sta ZPPtr2
|
||||
lda /DRV.NIC.START
|
||||
sta ZPPtr2+1
|
||||
|
||||
ldy #0
|
||||
|
||||
.4 inc ZPnCnt
|
||||
bne .5
|
||||
|
||||
inc ZPnCnt+1
|
||||
beq .6
|
||||
|
||||
.5 lda (ZPPtr1),y
|
||||
sta (ZPPtr2),y
|
||||
iny
|
||||
bne .4
|
||||
|
||||
inc ZPPtr1+1
|
||||
inc ZPPtr2+1
|
||||
bra .4
|
||||
|
||||
.6 ldy #S.UDP
|
||||
|
||||
.7 lda ADT.REQ-1,y
|
||||
sta DRV.OutBuf-1,y
|
||||
dey
|
||||
bne .7
|
||||
|
||||
bit RROMBNK1
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
.10 .DA DRV.U2
|
||||
.DA DRV.U2
|
||||
.DA DRV.U2
|
||||
*--------------------------------------
|
||||
.20 .DA DRV.U2.SIZE
|
||||
.DA DRV.U2.SIZE
|
||||
.DA DRV.U2.SIZE
|
||||
*--------------------------------------
|
||||
.INB usr/src/shared/x.printf.s
|
||||
*--------------------------------------
|
||||
* ProDOS $BE41->$BE4B Patch for switching to BANK2 (10 bytes)
|
||||
*--------------------------------------
|
||||
COPYRIGHT .AS "(C)APPLE "
|
||||
COPYRIGHT.LEN .EQ *-COPYRIGHT
|
||||
PATCH .PH DRV.EntryPoint
|
||||
bit RRAMWRAMBNK2
|
||||
jsr $D002
|
||||
|
@ -338,13 +401,18 @@ DRV.UNITNUM .EQ $43
|
|||
DRV.BUFF .EQ $44
|
||||
DRV.BLKNUM .EQ $46
|
||||
*--------------------------------------
|
||||
DRV.FrmBuf .EQ $DA00 Frame Buffer = 1536 bytes
|
||||
DRV.FrmBuf.Env .EQ DRV.FrmBuf+S.UDP
|
||||
DRV.FrmBuf.Cmd .EQ DRV.FrmBuf+S.UDP+1
|
||||
DRV.FrmBuf.BlkL .EQ DRV.FrmBuf+S.UDP+2
|
||||
DRV.FrmBuf.BlkH .EQ DRV.FrmBuf+S.UDP+3
|
||||
DRV.FrmBuf.Sum .EQ DRV.FrmBuf+S.UDP+4
|
||||
DRV.FrmBuf.Data .EQ DRV.FrmBuf+S.UDP+5
|
||||
DRV.Write .EQ DRV.NIC.START
|
||||
DRV.Read .EQ DRV.NIC.START+3
|
||||
*--------------------------------------
|
||||
DRV.OutBuf .EQ $D800-S.UDP-6 Frame Buffer = S.UDP+5+512+1 bytes
|
||||
DRV.OutBuf.Env .EQ DRV.OutBuf+S.UDP
|
||||
DRV.OutBuf.Cmd .EQ DRV.OutBuf+S.UDP+1
|
||||
DRV.OutBuf.BlkL .EQ DRV.OutBuf+S.UDP+2
|
||||
DRV.OutBuf.BlkH .EQ DRV.OutBuf+S.UDP+3
|
||||
DRV.OutBuf.Sum .EQ DRV.OutBuf+S.UDP+4
|
||||
DRV.OutBuf.Data .EQ DRV.OutBuf+S.UDP+5
|
||||
*--------------------------------------
|
||||
DRV.InBuf .EQ $DA00 Frame Buffer = 1536 bytes
|
||||
*--------------------------------------
|
||||
DRV .PH $D001 Main LC Bnk 2 $D001->$DFFF
|
||||
|
||||
|
@ -363,7 +431,7 @@ DRV.START .BS 1 SELF MODIFIED slot 0n
|
|||
.1 cmp #3
|
||||
beq .8 Format ....
|
||||
|
||||
* bcs DRV.DO.CMD.ERR more....IO error
|
||||
bcs DRV.DO.CMD.ERR more....IO error
|
||||
|
||||
ora #2 W=2,R=3
|
||||
ldy DRV.UNITNUM
|
||||
|
@ -371,16 +439,16 @@ DRV.START .BS 1 SELF MODIFIED slot 0n
|
|||
|
||||
adc #2 CC from bcs
|
||||
|
||||
.2 sta DRV.FrmBuf.Cmd store cmd
|
||||
.2 sta DRV.OutBuf.Cmd store cmd
|
||||
eor #ADT.CMD.VSD
|
||||
eor DRV.BLKNUM
|
||||
eor DRV.BLKNUM+1
|
||||
sta DRV.FrmBuf.Sum Compute & store CheckSum
|
||||
sta DRV.OutBuf.Sum Compute & store CheckSum
|
||||
|
||||
lda DRV.BLKNUM
|
||||
sta DRV.FrmBuf.BlkL
|
||||
sta DRV.OutBuf.BlkL
|
||||
lda DRV.BLKNUM+1
|
||||
sta DRV.FrmBuf.BlkH
|
||||
sta DRV.OutBuf.BlkH
|
||||
*--------------------------------------
|
||||
lda DRV.COMMAND
|
||||
dec 1-1=0 if read
|
||||
|
@ -388,48 +456,12 @@ DRV.START .BS 1 SELF MODIFIED slot 0n
|
|||
*--------------------------------------
|
||||
* Read block
|
||||
*--------------------------------------
|
||||
DRV.DO.CMD.R ldy #3 Read Back and check 4 bytes
|
||||
DRV.DO.CMD.R ldy #S.UDP+5
|
||||
lda /S.UDP+5
|
||||
jsr DRV.Write
|
||||
|
||||
.1 eor DRV.FrmBuf.BlkH,y
|
||||
bne DRV.DO.CMD.ERR
|
||||
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
ldy #4 Read 4 bytes DATE/TIME + 1 Byte Checksum
|
||||
|
||||
.2 eor DRV.FrmBuf.Sum
|
||||
sta DRV.FrmBuf.Sum
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
tay Last EOR was with Checksum, must be 0
|
||||
bne DRV.DO.CMD.ERR
|
||||
|
||||
* Y=0 from TAY
|
||||
|
||||
stz DRV.FrmBuf.Sum
|
||||
sec
|
||||
|
||||
.3 jsr $100
|
||||
eor DRV.FrmBuf.Sum
|
||||
sta DRV.FrmBuf.Sum
|
||||
iny
|
||||
bne .3
|
||||
bcc .4
|
||||
inc DRV.BUFF+1
|
||||
clc
|
||||
bcc .3
|
||||
|
||||
.4 dec DRV.BUFF+1
|
||||
|
||||
eor DRV.FrmBuf.Sum
|
||||
bne DRV.DO.CMD.ERR
|
||||
rts A=0,CC from bcc .4
|
||||
*--------------------------------------
|
||||
DRV.DO.CMD.ERR1
|
||||
pla
|
||||
pla
|
||||
DRV.DO.CMD.ERR
|
||||
lda #MLI.E.IO
|
||||
sec
|
||||
|
@ -439,34 +471,8 @@ DRV.DO.CMD.ERR
|
|||
*--------------------------------------
|
||||
DRV.DO.CMD.W lda #$B1 lda (),y
|
||||
|
||||
sta $103
|
||||
ldy #0
|
||||
|
||||
stz DRV.FrmBuf.Sum
|
||||
|
||||
lda #MLI.E.IO
|
||||
sec
|
||||
|
||||
.1
|
||||
eor DRV.FrmBuf.Sum
|
||||
sta DRV.FrmBuf.Sum
|
||||
iny
|
||||
bne .1
|
||||
bcc .2
|
||||
inc DRV.BUFF+1
|
||||
clc
|
||||
bcc .1
|
||||
.2 dec DRV.BUFF+1
|
||||
* A = DRV.FrmBuf.Sum
|
||||
|
||||
|
||||
|
||||
* read back CMD
|
||||
ldy #4 Read 5 bytes (echo from server)
|
||||
.3
|
||||
eor DRV.FrmBuf.Sum,y Check 5 bytes (including block Sum)
|
||||
bne DRV.DO.CMD.ERR
|
||||
dey
|
||||
bpl .3
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.RWBYTE bit RRAMWRAMBNK1
|
||||
|
@ -480,20 +486,174 @@ DRV.RWBYTE bit RRAMWRAMBNK1
|
|||
DRV.SIZE .EQ *-DRV
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
DRV.IP .PH $D400
|
||||
|
||||
DRV.IP.START ldy #S.IP.TOTAL.LENGTH+1
|
||||
lda ZPBufCnt
|
||||
sec
|
||||
sbc #S.ETH.EII
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
lda ZPBufCnt+1
|
||||
sbc /S.ETH.EII
|
||||
sta (ZPBufPtr),y
|
||||
lda #0
|
||||
ldy #S.IP.HDR.CHECKSUM
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
sta (ZPBufPtr),y
|
||||
|
||||
stz ZPCheckSum RESET IP CHECKSUM
|
||||
stz ZPCheckSum+1
|
||||
|
||||
clc
|
||||
|
||||
ldy #S.IP.V.IHL
|
||||
|
||||
ldx #10 10 words for IP Header
|
||||
|
||||
.1 lda (ZPBufPtr),y
|
||||
adc ZPCheckSum
|
||||
sta ZPCheckSum
|
||||
iny
|
||||
lda (ZPBufPtr),y
|
||||
adc ZPCheckSum+1
|
||||
sta ZPCheckSum+1
|
||||
iny
|
||||
dex
|
||||
bne .1
|
||||
|
||||
ldy #S.IP.HDR.CHECKSUM
|
||||
lda ZPCheckSum
|
||||
adc #0
|
||||
eor #$FF
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
lda ZPCheckSum+1
|
||||
adc #0
|
||||
eor #$FF
|
||||
sta (ZPBufPtr),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
clc
|
||||
|
||||
ldy #S.UDP.LENGTH+1
|
||||
lda (ZPBufPtr),y
|
||||
adc #S.IP.PROTOCOL.UDP
|
||||
sta ZPCheckSum+1
|
||||
|
||||
dey
|
||||
lda (ZPBufPtr),y
|
||||
adc /S.IP.PROTOCOL.UDP (all zero)
|
||||
sta ZPCheckSum
|
||||
|
||||
ldy #S.IP.SRC
|
||||
ldx #4 4 words for SRC & DST IP
|
||||
|
||||
.2 lda (ZPBufPtr),y
|
||||
adc ZPCheckSum
|
||||
sta ZPCheckSum
|
||||
iny
|
||||
lda (ZPBufPtr),y
|
||||
adc ZPCheckSum+1
|
||||
sta ZPCheckSum+1
|
||||
iny
|
||||
dex
|
||||
bne .2
|
||||
|
||||
ldy #S.UDP.LENGTH+1
|
||||
lda (ZPBufPtr),y
|
||||
eor #$ff
|
||||
tax
|
||||
|
||||
dey
|
||||
lda (ZPBufPtr),y
|
||||
eor #$ff
|
||||
ldy #S.UDP.CHECKSUM
|
||||
|
||||
phy Save Offset
|
||||
pha Save !ByteCount.HI
|
||||
|
||||
lda #0 Reset Checksum
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
sta (ZPBufPtr),y
|
||||
|
||||
>LDYA ZPBufPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.IP
|
||||
|
||||
.3 inx
|
||||
bne .4
|
||||
|
||||
pla
|
||||
inc
|
||||
beq .8
|
||||
|
||||
pha
|
||||
.4 lda (ZPPtr1),y
|
||||
adc ZPCheckSum
|
||||
sta ZPCheckSum
|
||||
|
||||
iny
|
||||
bne .5
|
||||
|
||||
inc ZPPtr1+1
|
||||
.5 inx
|
||||
bne .6
|
||||
|
||||
pla
|
||||
inc
|
||||
beq .7
|
||||
|
||||
pha
|
||||
|
||||
.6 lda (ZPPtr1),y
|
||||
|
||||
adc ZPCheckSum+1
|
||||
sta ZPCheckSum+1
|
||||
iny
|
||||
bne .3
|
||||
|
||||
inc ZPPtr1+1
|
||||
bra .3
|
||||
|
||||
.7 adc ZPCheckSum+1 A=0 from beq .7
|
||||
sta ZPCheckSum+1
|
||||
|
||||
.8 ply
|
||||
lda ZPCheckSum
|
||||
adc #0 Don't forget to add last carry!!!
|
||||
eor #$FF
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
lda ZPCheckSum+1
|
||||
adc #0 Don't forget to add last carry!!!
|
||||
eor #$FF
|
||||
sta (ZPBufPtr),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
.EP
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
DRV.IP.SIZE .EQ *-DRV.IP
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* CONTROL SECTION :
|
||||
*--------------------------------------
|
||||
.DO DRV.SIZE>255
|
||||
* ERROR:DRV.SIZE too big
|
||||
ERROR:DRV.SIZE too big
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
.INB usr/src/sys/km.vedrive.s.cf
|
||||
.INB usr/src/sys/km.vedrive.s.ip
|
||||
.INB usr/src/sys/km.vedrive.s.u1
|
||||
.INB usr/src/sys/km.vedrive.s.u2
|
||||
.INB usr/src/sys/km.vedrive.s.gs
|
||||
.INB usr/src/sys/pm.vedrive.s.cf
|
||||
.INB usr/src/sys/pm.vedrive.s.ip
|
||||
.INB usr/src/sys/pm.vedrive.s.u1
|
||||
.INB usr/src/sys/pm.vedrive.s.u2
|
||||
.INB usr/src/sys/pm.vedrive.s.gs
|
||||
*--------------------------------------
|
||||
VEDRIVE.MSG0 .AZ "VEDRIVE (ADTPro Virtual Ethernet HD) Driver\n"
|
||||
VEDRIVE.DRVKO .AZ "VEDRIVE (Or other custom Driver) Already Installed.\n"
|
||||
|
@ -693,5 +853,5 @@ ADT.REQ.END .EQ *
|
|||
ADT.REQ.LEN .EQ *-ADT.REQ
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vedrive.s
|
||||
SAVE usr/src/sys/pm.vedrive.s
|
||||
ASM
|
||||
|
|
|
@ -3,7 +3,7 @@ NEW
|
|||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF sys/km/km.vsdrive
|
||||
.TF sys/pm/pm.vsdrive
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/io.i
|
||||
|
@ -618,5 +618,5 @@ DRV.SIZE .EQ *-DRV
|
|||
.FIN
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/sys/km.vsdrive.s
|
||||
SAVE usr/src/sys/pm.vsdrive.s
|
||||
ASM
|
||||
|
|
Loading…
Reference in New Issue