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