ProDOS 203 Source code

This commit is contained in:
Rémy GIBERT 2019-05-07 13:18:47 +02:00
parent 3a016ff58b
commit cda867763e
14 changed files with 444 additions and 439 deletions

View File

@ -53,19 +53,19 @@ H2FB9 sta p8date+1 year
xce to continue with Prodos 8 xce to continue with Prodos 8
rts rts
savestate .EQ *-ofsC savestate .EQ *-ofsC
dc h'00' state of the state register .DA #00' state of the state register
dc c'JIMJAYKERRY' dc c'JIMJAYKERRY'
dc h'26' ampersand (Orca assembler doesn't like) dc h'26' ampersand (Orca assembler doesn't like)
dc c'MIKE' dc c'MIKE'
dc h'0000000000000000' pad 0's until length .DA #0000000000000000' pad 0's until length
dc h'0000000000000000' of driver = 125 bytes. .DA #0000000000000000' of driver = 125 bytes.
dc h'000000000000' .DA #000000000000'
cclk_end .EQ * end of obj cclock_0. cclk_end .EQ * end of obj cclock_0.
dc h'000000' pad to page boundary dc h'000000' pad to page boundary
LONGI OFF LONGI OFF
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.CCLK LOAD USR/SRC/PRODOS.203/PRODOS.S.CCLK
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -270,28 +270,28 @@ clrphase .EQ *-ofsD
* other tables since no valid nibles are in these ranges. * other tables since no valid nibles are in these ranges.
dnibl .EQ *-ofsD aligned to page boundary minus $96 dnibl .EQ *-ofsD aligned to page boundary minus $96
dc h'0004FFFF080CFF10' .DA #0004FFFF080CFF10'
dc h'1418' .DA #1418'
twobit3 .EQ *-ofsD used in fast prenib as lookup for twobit3 .EQ *-ofsD used in fast prenib as lookup for
dc h'008040C0FFFF' 2-bit quantities. dc h'008040C0FFFF' 2-bit quantities.
dc h'1C20FFFFFF24282C' .DA #1C20FFFFFF24282C'
dc h'3034FFFF383C4044' .DA #3034FFFF383C4044'
dc h'484CFF5054585C60' .DA #484CFF5054585C60'
dc h'6468' .DA #6468'
twobit2 .EQ *-ofsD used in fast prenib. twobit2 .EQ *-ofsD used in fast prenib.
dc h'00201030' dc h'00201030'
endmrks .EQ *-ofsD table using 'unused' nibbles: endmrks .EQ *-ofsD table using 'unused' nibbles:
dc h'DEAAEBFF' ($C4,$C5,$C6,$C7) dc h'DEAAEBFF' ($C4,$C5,$C6,$C7)
dc h'FFFFFF6CFF70' .DA #FFFFFF6CFF70'
dc h'7478FFFFFF7CFFFF' .DA #7478FFFFFF7CFFFF'
dc h'8084FF888C909498' .DA #8084FF888C909498'
dc h'9CA0' .DA #9CA0'
twobit1 .EQ *-ofsD used in fast prenib. twobit1 .EQ *-ofsD used in fast prenib.
dc h'0008040CFFA4' dc h'0008040CFFA4'
dc h'A8ACFFB0B4B8BCC0' .DA #A8ACFFB0B4B8BCC0'
dc h'C4C8FFFFCCD0D4D8' .DA #C4C8FFFFCCD0D4D8'
dc h'DCE0FFE4E8ECF0F4' .DA #DCE0FFE4E8ECF0F4'
dc h'F8FC' .DA #F8FC'
* 6-bit to 2-bit conversion tables: * 6-bit to 2-bit conversion tables:
* *
@ -315,46 +315,46 @@ dnibl4 .EQ *-ofsD
* or with no adjacent ones (except B7) are excluded. * or with no adjacent ones (except B7) are excluded.
nibl .EQ *-ofsD nibl .EQ *-ofsD
dc h'960200' .DA #960200'
dc h'00970100009A0300' .DA #00970100009A0300'
dc h'009B0002009D0202' .DA #009B0002009D0202'
dc h'009E0102009F0302' .DA #009E0102009F0302'
dc h'00A6000100A70201' .DA #00A6000100A70201'
dc h'00AB010100AC0301' .DA #00AB010100AC0301'
dc h'00AD000300AE0203' .DA #00AD000300AE0203'
dc h'00AF010300B20303' .DA #00AF010300B20303'
dc h'00B3000002B40200' .DA #00B3000002B40200'
dc h'02B5010002B60300' .DA #02B5010002B60300'
dc h'02B7000202B90202' .DA #02B7000202B90202'
dc h'02BA010202BB0302' .DA #02BA010202BB0302'
dc h'02BC000102BD0201' .DA #02BC000102BD0201'
dc h'02BE010102BF0301' .DA #02BE010102BF0301'
dc h'02CB000302CD0203' .DA #02CB000302CD0203'
dc h'02CE010302CF0303' .DA #02CE010302CF0303'
dc h'02D3000001D60200' .DA #02D3000001D60200'
dc h'01D7010001D90300' .DA #01D7010001D90300'
dc h'01DA000201DB0202' .DA #01DA000201DB0202'
dc h'01DC010201DD0302' .DA #01DC010201DD0302'
dc h'01DE000101DF0201' .DA #01DE000101DF0201'
dc h'01E5010101E60301' .DA #01E5010101E60301'
dc h'01E7000301E90203' .DA #01E7000301E90203'
dc h'01EA010301EB0303' .DA #01EA010301EB0303'
dc h'01EC000003ED0200' .DA #01EC000003ED0200'
dc h'03EE010003EF0300' .DA #03EE010003EF0300'
dc h'03F2000203F30202' .DA #03F2000203F30202'
dc h'03F4010203F50302' .DA #03F4010203F50302'
dc h'03F6000103F70201' .DA #03F6000103F70201'
dc h'03F9010103FA0301' .DA #03F9010103FA0301'
dc h'03FB000303FC0203' .DA #03FB000303FC0203'
dc h'03FD010303FE0303' .DA #03FD010303FE0303'
dc h'03FF' .DA #03FF'
* nibl buffer 'nbuf2' must be on a page boundary !!! * nibl buffer 'nbuf2' must be on a page boundary !!!
nbuf2 .EQ *-ofsD nibl buffer for read/write of low nbuf2 .EQ *-ofsD nibl buffer for read/write of low
ds 86 2-bits of each byte. ds 86 2-bits of each byte.
ibtrk .EQ *-ofsD ibtrk .EQ *-ofsD
dc h'00' .DA #00'
ibsect .EQ *-ofsD ibsect .EQ *-ofsD
dc h'00' dc h'00'
ibstat .EQ *-ofsD ibstat .EQ *-ofsD
@ -364,7 +364,7 @@ iobpdn .EQ *-ofsD
curtrk .EQ *-ofsD curtrk .EQ *-ofsD
dc h'00' dc h'00'
dc h'00000000000000' for slots 1 thru 7 dc h'00000000000000' for slots 1 thru 7
dc h'00000000000000' drives 1 & 2 .DA #00000000000000' drives 1 & 2
retrycnt .EQ *-ofsD retrycnt .EQ *-ofsD
dc h'00' dc h'00'
seekcnt .EQ *-ofsD seekcnt .EQ *-ofsD
@ -376,7 +376,7 @@ last .EQ *-ofsD 'odd bit' nibls.
csum .EQ *-ofsD used for address header cksum csum .EQ *-ofsD used for address header cksum
dc h'00' dc h'00'
csstv .EQ *-ofsD csstv .EQ *-ofsD
dc h'00' .DA #00'
sect .EQ *-ofsD sect .EQ *-ofsD
dc h'00' dc h'00'
track .EQ *-ofsD track .EQ *-ofsD
@ -394,10 +394,10 @@ trkn .EQ *-ofsD
ontable .EQ *-ofsD ontable .EQ *-ofsD
dc h'013028' dc h'013028'
dc h'24201E1D1C1C' .DA #24201E1D1C1C'
offtable .EQ *-ofsD offtable .EQ *-ofsD
dc h'702C' dc h'702C'
dc h'26221F1E1D1C1C' .DA #26221F1E1D1C1C'
* mswait subroutine * mswait subroutine
* *
@ -941,20 +941,20 @@ L59E6 sec error.
L59E8 clc L59E8 clc
rts end of obj xrw_0 rts end of obj xrw_0
dc h'0000' pad bytes to $D6EC (pathbuf-$14) .DA #0000' pad bytes to $D6EC (pathbuf-$14)
* variables used by mli for smartport interface * variables used by mli for smartport interface
spstatlist .EQ *-ofsD ref pathbuf-$14 spstatlist .EQ *-ofsD ref pathbuf-$14
dc h'00000000' smartport status list buffer dc h'00000000' smartport status list buffer
spunit .EQ *-ofsD ref pathbuf-$10 spunit .EQ *-ofsD ref pathbuf-$10
dc h'0000000000000000' smartport unit numbers .DA #0000000000000000' smartport unit numbers
dc h'0000000000000000' .DA #0000000000000000'
* pathname buffer starts at this page boundary (pathbuf = $D700) * pathname buffer starts at this page boundary (pathbuf = $D700)
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.DISKII LOAD USR/SRC/PRODOS.203/PRODOS.S.DISKII
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -10,13 +10,13 @@ jspare .EQ *-ofsG
jmp jspare will be changed to point to dispatcher. jmp jspare will be changed to point to dispatcher.
clockv .EQ *-ofsG P8 clock vector clockv .EQ *-ofsG P8 clock vector
rts changed to jmp ($4C) if clock present. rts changed to jmp ($4C) if clock present.
dc i2'tclk_in' clock routine entry address. .DA tclk_in' clock routine entry address.
p8errv .EQ *-ofsG error reporting hook. p8errv .EQ *-ofsG error reporting hook.
jmp syserr1 jmp syserr1
sysdeath .EQ *-ofsG sysdeath .EQ *-ofsG
jmp sysdeath1 system failure hook. jmp sysdeath1 system failure hook.
p8error .EQ *-ofsG P8 error code p8error .EQ *-ofsG P8 error code
dc h'00' .DA #00'
drivertbl1 .EQ *-ofsG device driver table 1 drivertbl1 .EQ *-ofsG device driver table 1
dc i2'nodevice' slot 0 reserved dc i2'nodevice' slot 0 reserved
dc i2'nodevice' s1, d1 dc i2'nodevice' s1, d1
@ -36,13 +36,13 @@ drivertbl2 .EQ *-ofsG device driver table 2
dc i2'nodevice' s6, d2 dc i2'nodevice' s6, d2
dc i2'nodevice' s7, d2 dc i2'nodevice' s7, d2
devnum .EQ *-ofsG most recent accessed device devnum .EQ *-ofsG most recent accessed device
dc h'00' .DA #00'
numdevs .EQ *-ofsG count (-1) active devices numdevs .EQ *-ofsG count (-1) active devices
dc h'FF' dc h'FF'
devlist .EQ *-ofsG active device list devlist .EQ *-ofsG active device list
dc h'00000000000000' up to 14 units may be active dc h'00000000000000' up to 14 units may be active
dc h'00000000000000' dc h'00000000000000'
dc h'00' .DA #00'
msb off msb off
dc c'(C)APPLE ' dc c'(C)APPLE '
mlient1 .EQ *-ofsG mlient1 .EQ *-ofsG
@ -53,7 +53,7 @@ aftirq .EQ *-ofsG irq returns here.
sta ramin read/write RAM bank 1 sta ramin read/write RAM bank 1
jmp fix45 restore $45 after interrupt in LC jmp fix45 restore $45 after interrupt in LC
oldacc .EQ *-ofsG oldacc .EQ *-ofsG
dc h'00' .DA #00'
afbank .EQ *-ofsG afbank .EQ *-ofsG
dc h'00' dc h'00'
@ -63,7 +63,7 @@ afbank .EQ *-ofsG
memmap .EQ *-ofsG P8 memory bitmap memmap .EQ *-ofsG P8 memory bitmap
dc h'C000000000000000' dc h'C000000000000000'
dc h'0000000000000000' dc h'0000000000000000'
dc h'0000000000000001' .DA #0000000000000001'
* table of buffer addresses for currently open files. * table of buffer addresses for currently open files.
* these can only be changed thru the mli call setbuf. * these can only be changed thru the mli call setbuf.
@ -73,7 +73,7 @@ buftbl .EQ *-ofsG
dc h'0000' file #2 dc h'0000' file #2
dc h'0000' file #3 dc h'0000' file #3
dc h'0000' file #4 dc h'0000' file #4
dc h'0000' file #5 .DA #0000' file #5
dc h'0000' file #6 dc h'0000' file #6
dc h'0000' file #7 dc h'0000' file #7
dc h'0000' file #8 dc h'0000' file #8
@ -84,12 +84,12 @@ buftbl .EQ *-ofsG
* with the address interrupted. * with the address interrupted.
inttbl .EQ *-ofsG interrupt table inttbl .EQ *-ofsG interrupt table
dc h'0000' int #1 .DA #0000' int #1
dc h'0000' int #2 dc h'0000' int #2
dc h'0000' int #3 dc h'0000' int #3
dc h'0000' int #4 dc h'0000' int #4
p8areg .EQ *-ofsG A register savearea p8areg .EQ *-ofsG A register savearea
dc h'00' .DA #00'
p8xreg .EQ *-ofsG X register savearea p8xreg .EQ *-ofsG X register savearea
dc h'00' dc h'00'
p8yreg .EQ *-ofsG Y register savearea p8yreg .EQ *-ofsG Y register savearea
@ -177,7 +177,7 @@ bnkbyt2 .EQ *-ofsG
dc h'00' dc h'00'
dc h'00000000' pad to before $BFFA dc h'00000000' pad to before $BFFA
dc h'04' gsos compatibility byte ($BFFA) dc h'04' gsos compatibility byte ($BFFA)
dc h'00' pad .DA #00' pad
dc h'00' reserved dc h'00' reserved
dc h'00' version # of running interpreter dc h'00' version # of running interpreter
dc h'00' preserved for System Utilities dc h'00' preserved for System Utilities
@ -187,6 +187,6 @@ kversion .EQ *-ofsG kernal version
* end of obj mli_1 * end of obj mli_1
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.GP LOAD USR/SRC/PRODOS.203/PRODOS.S.GP
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -64,14 +64,14 @@ stapfx .EQ *-ofsR2
* these 3 vectors hard-coded into processor * these 3 vectors hard-coded into processor
dc i2'nmivect' nmi handler .DA nmivect' nmi handler
dc i2'lreset' reset handler .DA lreset' reset handler
irqv .EQ *-ofsR2 irqv .EQ *-ofsR2
dc i2'lanirq' irq handler dc i2'lanirq' irq handler
* end of obj mli_3 * end of obj mli_3
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.IRQ LOAD USR/SRC/PRODOS.203/PRODOS.S.IRQ
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -368,94 +368,94 @@ LDR.MLIREADBLOCK.P
.DA 0 2 byte data buffer .DA 0 2 byte data buffer
.DA 0 2 byte block number .DA 0 2 byte block number
cortland dc i1'$00' cortland loader flag (1 = Cortland) cortland .BS 1 cortland loader flag (1 = Cortland)
newquitflag dc i1'$00' 1 = old quit code newquitflag .BS 1 1 = old quit code
H232B dc i1'$01' move interpreter loader code H232B .DA #1 move interpreter loader code
dc i2'lodintrp' destination address .DA lodintrp destination address
dc i2'H257B-licode' length to move .DA H257B-licode' length to move
dc i2'licode' source address .DA licode' source address
dc i1'$01' move $3F0 vectors .DA #$01' move $3F0 vectors
dc i2'p3vect' destination .DA p3vect' destination
dc i2'$0010' 16 bytes to move .DA $0010' 16 bytes to move
dc i2'H257B' source .DA H257B' source
dc i1'$01' .DA #$01'
dc i2'lookptr' .DA lookptr'
dc i2'$0002' .DA $0002'
dc i2'ZP.DstPtr' .DA ZP.DstPtr'
dc i1'$01' move 128k test to zero page .DA #$01' move 128k test to zero page
dc i2'tst128' destination .DA tst128' destination
dc i2'H2622-H25DC' length .DA H2622-H25DC' length
dc i2'H25DC' source .DA H25DC' source
dc h'FF' done .DA #FF' done
dsp64 dc i1'$01' move p8 dispatcher code dsp64 .DA #$01' move p8 dispatcher code
dc i2'displc2' destination .DA displc2' destination
dc i2'birdbye-disp1obj' length (must be <= 3 pages) .DA birdbye-disp1obj' length (must be <= 3 pages)
dc i2'disp1obj' source .DA disp1obj' source
dc h'FF' done .DA #FF' done
newquitbl dc i1'$01' move Bird's Bye code newquitbl dc i1'$01' move Bird's Bye code
dc i2'displc2' dest .DA displc2' dest
dc i2'GQdisp-birdbye' length (must be <= 3 pages) .DA GQdisp-birdbye' length (must be <= 3 pages)
dc i2'birdbye' source .DA birdbye' source
dc h'FF' done .DA #FF' done
altdsptbl dc i1'$01' move GQuit launcher altdsptbl .DA #$01' move GQuit launcher
dc i2'displc2' destination .DA displc2 destination
dc i2'$0300' length (must be <= 3 pages) .DA $0300' length (must be <= 3 pages)
dc i2'GQdisp' source .DA GQdisp' source
dc i1'$01' move a copy of GQuit launcher .DA #$01' move a copy of GQuit launcher
dc i2'dispadr' to dispadr for gsos .DA dispadr' to dispadr for gsos
dc i2'$0300' length (must be <= 3 pages) .DA $0300' length (must be <= 3 pages)
dc i2'GQdisp' source .DA GQdisp' source
dc h'FF' done .DA #FF' done
* tables for moving 64k version of mli for execution * tables for moving 64k version of mli for execution
H2367 dc i1'$01' relocation table. 1=move src to ZP.DstPtr H2367 .DA #$01' relocation table. 1=move src to ZP.DstPtr
dc i2'lanirq' destination .DA lanirq' destination
dc i2'H2E00-H2D9B' length to move .DA H2E00-H2D9B' length to move
dc i2'H2D9B' source .DA H2D9B' source
dc i1'$01' .DA #$01'
dc i2'MLI' globals .DA MLI' globals
dc i2'$0100' in one page .DA $0100' in one page
dc i2'H2E00' .DA H2E00'
dc h'00' 0=clear buffers $D700-$DDFF .DA #00' 0=clear buffers $D700-$DDFF
dc i2'pathbuf' .DA pathbuf
dc i2'xdosorg-pathbuf' .DA xdosorg-pathbuf'
dc i1'$01' .DA #$01'
dc i2'xdosorg' .DA xdosorg'
dc i2'ramsrc-xdosobj' length of mli .DA ramsrc-xdosobj' length of mli
dc i2'xdosobj' .DA xdosobj'
dc i1'$01' .DA #$01'
dc i2'rwts' .DA rwts'
dc i2'disp1obj-blockio' length of disk ii driver .DA disp1obj-blockio' length of disk ii driver
dc i2'blockio' .DA blockio'
dc h'FF' done .DA #FF' done
* move thunderclock * move thunderclock
rlclk64 dc i1'$01' relocation table. 1=move src to ZP.DstPtr rlclk64 .DA #$01' relocation table. 1=move src to ZP.DstPtr
dc i2'tclk_in' destination .DA tclk_in' destination
dc i2'tclk_end-tclock_0' length of thunderclock driver .DA tclk_end-tclock_0' length of thunderclock driver
dc i2'tclock_0' source .DA tclock_0' source
dc i1'$04' 4=relocate and move program .DA #$04' 4=relocate and move program
dc i2'tclk_in' .DA tclk_in'
dc i2'H2F69-tclock_0' .DA H2F69-tclock_0'
dc i2'tclk_in' .DA tclk_in'
dc h'00' .DA #00'
dc h'C1C1' dc h'C1C1'
clock64 dc i1'$00' clock64 .DA #$00'
dc h'FF' done .DA #FF' done
* move cortland clock * move cortland clock
cortclock dc i1'$01' relocation table. 1=move src to ZP.DstPtr cortclock dc i1'$01' relocation table. 1=move src to ZP.DstPtr
dc i2'tclk_in' destination .DA tclk_in' destination
dc i2'cclk_end-cclock_0' length of cortland clock driver .DA cclk_end-cclock_0' length of cortland clock driver
dc i2'cclock_0' source .DA cclock_0' source
dc h'FF' done .DA #FF' done
* load and run appletalk configuration file (atinit) if present * load and run appletalk configuration file (atinit) if present
* or continue loading and running .system file * or continue loading and running .system file
@ -466,28 +466,28 @@ ofsL .EQ licode-lodintrp offset from loader org
licode jsr MLI check for file 'atinit' licode jsr MLI check for file 'atinit'
.DA #MLIGETFILEINFO .DA #MLIGETFILEINFO
dc i2'gfi_list' .DA #gfi_list'
bcc gfi_ok branch if 'atinit' file found bcc gfi_ok branch if 'atinit' file found
cmp #$46 file not found? cmp #$46 file not found?
beq H23DF if so, continue loading interpreter beq H23DF if so, continue loading interpreter
bne H23E2 bne H23E2
gfi_ok lda gfi_type gfi_ok lda gfi_type
cmp #$E2 is 'atinit' correct file type? cmp #$E2 is 'atinit' correct file type?
bne H23E2 error - wrong file type bne H23E2 error - wrong file type
jsr MLI open 'atinit' file jsr MLI open 'atinit' file
dc i1'$C8' .DA #$C8'
dc i2'atopen' parms .DA atopen' parms
bne H23E2 error bne H23E2 error
lda #$9F max size = 39.75k ($2000-$BF00) lda #$9F max size = 39.75k ($2000-$BF00)
sta rdlen+1 sta rdlen+1
stz rdlen stz rdlen
jsr MLI read 'atinit' file to 'sysentry' jsr MLI read 'atinit' file to 'sysentry'
dc i1'$CA' .DA #$CA'
dc i2'rdparm' .DA rdparm'
bne H23E2 error - too big bne H23E2 error - too big
jsr MLI close 'atinit' file jsr MLI close 'atinit' file
dc i1'$CC' .DA #$CC'
dc i2'clparm' .DA clparm'
bne H23E2 error bne H23E2 error
lda romin enable ROM lda romin enable ROM
jsr sysentry execute ATinit jsr sysentry execute ATinit
@ -506,20 +506,20 @@ H23F0 .DA #$1A length of message
.AS "Unable to load ATInit file" .AS "Unable to load ATInit file"
gfi_list .EQ *-ofsL gfi_list .EQ *-ofsL
dc h'0A' .DA #0A'
dc i2'atinitname' dc i2'atinitname'
dc h'00' dc h'00'
gfi_type .EQ *-ofsL gfi_type .EQ *-ofsL
dc h'00000000' dc h'00000000'
dc h'0000000000000000' .DA #0000000000000000'
dc h'0000' .DA #0000'
atopen .EQ *-ofsL parms to open 'atinit' atopen .EQ *-ofsL parms to open 'atinit'
dc h'03' dc h'03'
dc i2'atinitname' dc i2'atinitname'
dc i2'iobuf' i/o buffer dc i2'iobuf' i/o buffer
dc h'01' ref# hard coded since no other files dc h'01' ref# hard coded since no other files
atinitname .EQ *-ofsL atinitname .EQ *-ofsL
dc h'06' length of name .DA #06' length of name
dc c'atinit' name of appletalk config file dc c'atinit' name of appletalk config file
goloadint .EQ *-ofsL goloadint .EQ *-ofsL
lda #>dbuf search directory buffer lda #>dbuf search directory buffer
@ -576,12 +576,12 @@ H247A iny
adc #$13 (carry set) adc #$13 (carry set)
sta ierlen sta ierlen
jsr MLI open interpreter file jsr MLI open interpreter file
dc i1'$C8' .DA #$C8'
dc i2'opparm' .DA opparm'
bne badlod bne badlod
jsr MLI get eof (length of file) jsr MLI get eof (length of file)
dc i1'$D1' .DA #$D1'
dc i2'efparm' .DA efparm'
bne badlod bne badlod
lda eof+2 lda eof+2
bne toolong bne toolong
@ -592,15 +592,15 @@ H247A iny
lda eof lda eof
sta rdlen (read entire file) sta rdlen (read entire file)
jsr MLI read interpreter file jsr MLI read interpreter file
dc i1'$CA' .DA #$CA'
dc i2'rdparm' .DA rdparm'
beq H24C8 go close if successfully read. beq H24C8 go close if successfully read.
cmp #$56 memory conflict? cmp #$56 memory conflict?
beq toolong then too large beq toolong then too large
bne badlod else, unable to load. bne badlod else, unable to load.
H24C8 jsr MLI close interpreter file H24C8 jsr MLI close interpreter file
dc i1'$CC' .DA #$CC'
dc i2'clparm' .DA clparm'
bne badlod hopefully never taken bne badlod hopefully never taken
* if booting on a //c then see if esc is in keyboard buffer * if booting on a //c then see if esc is in keyboard buffer
@ -616,11 +616,11 @@ H24C8 jsr MLI close interpreter file
H24DF lda romin enable ROM H24DF lda romin enable ROM
jmp sysentry go run interpreter jmp sysentry go run interpreter
cflag .EQ *-ofsL cflag .EQ *-ofsL
dc h'00' set if a //c. .DA #00' set if a //c.
nointrp .EQ *-ofsL no interpreter found, nointrp .EQ *-ofsL no interpreter found,
jsr MLI so quit. jsr MLI so quit.
dc i1'$65' .DA #$65'
dc i2'quitparm' .DA quitparm'
badlod ldy ierlen center the error message badlod ldy ierlen center the error message
lda #$27 lda #$27
sec sec
@ -646,7 +646,7 @@ iomess .EQ *-ofsL
dc c'** Unable to load' dc c'** Unable to load'
dc c' X.System *********' dc c' X.System *********'
ierlen .EQ *-ofsL ierlen .EQ *-ofsL
dc h'00' .DA #00'
opparm .EQ *-ofsL parms for open call opparm .EQ *-ofsL parms for open call
dc h'03' dc h'03'
dc i2'PrefixBuf' dc i2'PrefixBuf'
@ -654,7 +654,7 @@ opparm .EQ *-ofsL parms for open call
dc h'01' dc h'01'
efparm .EQ *-ofsL parms for get eof call efparm .EQ *-ofsL parms for get eof call
dc h'02' dc h'02'
dc h'01' .DA #01'
eof .EQ *-ofsL eof .EQ *-ofsL
dc h'000000' length of file. dc h'000000' length of file.
rdparm .EQ *-ofsL parms for read call rdparm .EQ *-ofsL parms for read call
@ -662,7 +662,7 @@ rdparm .EQ *-ofsL parms for read call
dc h'01' dc h'01'
dc i2'sysentry' dc i2'sysentry'
rdlen .EQ *-ofsL rdlen .EQ *-ofsL
dc h'0000' .DA #0000'
dc h'0000' dc h'0000'
clparm .EQ *-ofsL parms for close call clparm .EQ *-ofsL parms for close call
dc h'01' dc h'01'
@ -670,7 +670,7 @@ clparm .EQ *-ofsL parms for close call
quitparm .EQ *-ofsL parms for quit call quitparm .EQ *-ofsL parms for quit call
dc h'04' dc h'04'
dc h'00' dc h'00'
dc h'0000' .DA #0000'
dc h'00' dc h'00'
dc h'0000' dc h'0000'
iterp .EQ *-ofsL interpreter suffix that is required iterp .EQ *-ofsL interpreter suffix that is required
@ -679,12 +679,12 @@ iterp .EQ *-ofsL interpreter suffix that is required
* 16 bytes moved to $03F0 vectors * 16 bytes moved to $03F0 vectors
H257B dc i2'breakv' H257B dc i2'breakv'
dc i2'oldrst' .DA oldrst'
dc h'5A' powerup byte .DA #5A' powerup byte
jmp oldrst '&' vector jmp oldrst '&' vector
jmp oldrst ctrl-y vector jmp oldrst ctrl-y vector
dc h'004000' .DA #004000'
dc i2'irqent' global page interrupt vector .DA irqent' global page interrupt vector
lc1in lda ramin read/write language card RAM bank 1 lc1in lda ramin read/write language card RAM bank 1
lda ramin lda ramin
rts rts
@ -1036,64 +1036,69 @@ H27F3 lda idxl+1 mark a bit in slot byte
sta rommap slot ROM bit map sta rommap slot ROM bit map
H2801 rts H2801 rts
H2802 dc i2'rwts' disk ii driver H2802 .DA rwts disk ii driver
* id bytes: evens for clock, odds for disk * id bytes: evens for clock, odds for disk
dskid dc h'082028005803703C' dskid .HS 082028005803703C
* slot bits * slot bits
sltbit dc h'0002040810204080' sltbit .HS 0002040810204080
fndtrd clc fndtrd clc
ldy sltbit ldy sltbit
H2818 lda (lookptr),y H2818 lda (lookptr),y
and #$DF and #$DF
adc sltbit adc sltbit
sta sltbit sta sltbit
rol sltbit rol sltbit
iny iny
cpy sltbit+3 cpy sltbit+3
bne H2818 bne H2818
tya tya
asl a asl a
asl a asl a
asl a asl a
asl a asl a
tay tay
eor sltbit eor sltbit
adc #$0B adc #$0B
bne H283B bne H283B
lda idapple lda idapple
rts rts
H283B lda #$00
rts H283B lda #$00
installdev php how many drives (carry). rts
lda idxl+1 get index to global device table
and #$07 for this slot... installdev php how many drives (carry).
asl a lda idxl+1 get index to global device table
tay into y reg. and #$07 for this slot...
asl a asl a
asl a now form device # = slot # tay into y reg.
asl a in high nibble. asl a
jsr stadrv OR in low nibble, store in dev list. asl a now form device # = slot #
plp restore # of devices in carry. asl a in high nibble.
ror a if 2 drives, then bit 7=1. jsr stadrv OR in low nibble, store in dev list.
bpl H2853 branch if a 1 drive device (e.g. hard drive) plp restore # of devices in carry.
inx else presume that 2nd drive is present. ror a if 2 drives, then bit 7=1.
sta devlist,x active device list. bpl H2853 branch if a 1 drive device (e.g. hard drive)
H2853 stx numdevs save updated device count. inx else presume that 2nd drive is present.
asl a shift # of drives back into carry. sta devlist,x active device list.
lda driveradr get high address of device driver.
sta drivertbl1,y device driver table 1. H2853 stx numdevs save updated device count.
bcc H2862 branch if single drive. asl a shift # of drives back into carry.
sta drivertbl2,y device driver table 2. lda driveradr get high address of device driver.
H2862 lda driveradr+1 sta drivertbl1,y device driver table 1.
sta drivertbl1+1,y bcc H2862 branch if single drive.
bcc H286D sta drivertbl2,y device driver table 2.
sta drivertbl2+1,y
H286D rts H2862 lda driveradr+1
sta drivertbl1+1,y
bcc H286D
sta drivertbl2+1,y
H286D rts
* query smartport status to determine # of devices * query smartport status to determine # of devices
* and install up to 4 units in table if card is in slot 5 * and install up to 4 units in table if card is in slot 5
@ -1135,12 +1140,12 @@ pscall jsr $0000 self modifying code
* and report true # of devices attached * and report true # of devices attached
jsr spvect status of Cocoon jsr spvect status of Cocoon
dc h'00' .DA #00'
dc i2'spcparms' ignore any errors. .DA spcparms' ignore any errors.
H28B1 stz statunit set unit# = 0 H28B1 stz statunit set unit# = 0
jsr spvect call to get the device count. jsr spvect call to get the device count.
dc h'00' this is a status call .DA #00' this is a status call
dc i2'spcparms' .DA spcparms'
lda numdev2 lda numdev2
beq donesp no devices, so done. beq donesp no devices, so done.
cmp #$02 carry set if 2,3,4 cmp #$02 carry set if 2,3,4
@ -1190,26 +1195,26 @@ H2903 rts
* smartport call parameters * smartport call parameters
spcparms dc i1'$03' # of parms spcparms .DA #$03 # of parms
statunit dc i1'$00' unit number (code for smartport stat) statunit .DA #$00 unit number (code for smartport stat)
dc i2'numdev2' .DA numdev2
dc h'00' status code (0 = general status) .DA #00 status code (0 = general status)
* indexes into driver table * indexes into driver table
driveridx dc h'06' s3, d1 driveridx .DA #$06 s3, d1
dc h'1E' s7, d2 .DA #$1E s7, d2
dc h'0E' s7, d1 .DA #$0E' s7, d1
dc h'1C' s6, d2 .DA #$1C' s6, d2
dc h'0C' s6, d1 .DA #$0C' s6, d1
dc h'1A' s5, d2 .DA #$1A' s5, d2
dc h'0A' s5, d1 .DA #$0A' s5, d1
dc h'14' s2, d2 .DA #$14' s2, d2
dc h'04' s2, d1 .DA #$04' s2, d1
dc h'12' s1, d2 .DA #$12' s1, d2
dc h'02' s1, d1 .DA #$02' s1, d1
dc h'18' s4, d2 .DA #$18' s4, d2
dc h'08' s4, d1 .DA #$08' s4, d1
* self modifying jmp = smartport entry address * self modifying jmp = smartport entry address
@ -1230,8 +1235,8 @@ H291F jsr H29EB is there a smartport device here?
jsr H28E8 set up device attributes jsr H28E8 set up device attributes
stz statunit stz statunit
jsr spvect do a status call on smartport itself jsr spvect do a status call on smartport itself
dc h'00' .DA #00'
dc i2'spcparms' .DA spcparms'
lda numdev2 # of devices on smartport lda numdev2 # of devices on smartport
cmp #$03 cmp #$03
bcc H2974 only 2 devices,skip to next one. bcc H2974 only 2 devices,skip to next one.
@ -1251,8 +1256,8 @@ H295B cmp driveradr have we done all units in this slot?
bcs H2974 yes, skip to next slot. bcs H2974 yes, skip to next slot.
sta statunit store the unit#. sta statunit store the unit#.
jsr spvect do status call jsr spvect do status call
dc h'00' .DA #00'
dc i2'spcparms' .DA spcparms'
lda numdev2 is this a block device? lda numdev2 is this a block device?
bmi mount yes, so mount it. bmi mount yes, so mount it.
H296E lda statunit go check the next unit# H296E lda statunit go check the next unit#
@ -1580,20 +1585,20 @@ H2B89 and #$03
* relocation table contains length of each opcode in 2-bit groups * relocation table contains length of each opcode in 2-bit groups
opcodln dc h'0928193C0A280D3C' opcodln .DA #0928193C0A280D3C'
dc h'0B2A193F0A280D3C' .DA #0B2A193F0A280D3C'
dc h'0928193F0A280D3C' .DA #0928193F0A280D3C'
dc h'0928193F0A280D3C' .DA #0928193F0A280D3C'
dc h'082A113F0A2A1D0C' .DA #082A113F0A2A1D0C'
dc h'2A2A193F0A2A1D3F' .DA #2A2A193F0A2A1D3F'
dc h'0A2A193F0A280D3C' .DA #0A2A193F0A280D3C'
dc h'0A2A193F0A280D3C' .DA #0A2A193F0A280D3C'
wsize dc i1'$00' wsize .DA #$00'
sgcnt dc i1'$00' sgcnt .DA #$00'
limlo dc h'0000000000000000' limlo .DA #0000000000000000'
limhi dc h'0000000000000000' limhi .DA #0000000000000000'
ofset dc h'0000000000000000' ofset .DA #0000000000000000'
* patch to gsos vectors so error is returned for os calls - rev note #101 * patch to gsos vectors so error is returned for os calls - rev note #101
@ -1663,7 +1668,7 @@ L2C4D lda $01,s
.BS $2C80-* .BS $2C80-*
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.LDR LOAD USR/SRC/PRODOS.203/PRODOS.S.LDR
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -79,7 +79,7 @@ H2D6A lda (A1L),y pointers set in card by 'setptr'
lda #>donewrt lda #>donewrt
jmp gocard jmp gocard
sp1 .EQ *-ofsR2 sp1 .EQ *-ofsR2
dc h'0000' .DA #0000'
a1l1 .EQ *-ofsR2 13 bytes of storage a1l1 .EQ *-ofsR2 13 bytes of storage
* end of obj ram_2 * end of obj ram_2
@ -88,6 +88,6 @@ r2_end .EQ *
ds $D9B-(r2_end-H2000) fill to lanirq ($FF9B see note below) ds $D9B-(r2_end-H2000) fill to lanirq ($FF9B see note below)
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.RAM LOAD USR/SRC/PRODOS.203/PRODOS.S.RAM
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -39,7 +39,7 @@ r1_end .EQ * end of /RAM installer
ds $D00-(r1_end-H2000) pad 0's to page boundary ds $D00-(r1_end-H2000) pad 0's to page boundary
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.RAMI LOAD USR/SRC/PRODOS.203/PRODOS.S.RAMI
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -227,7 +227,7 @@ L525E cmp #$11 if <=17 then done
sbc #$11 else block=block-17. sbc #$11 else block=block-17.
inx iteration count. inx iteration count.
bpl L525E should branch always bpl L525E should branch always
dc h'00' otherwise crash !!! .DA #00' otherwise crash !!!
L5268 tay remainder in y L5268 tay remainder in y
* if remainder is 1 then it's an index block: * if remainder is 1 then it's an index block:
@ -288,7 +288,7 @@ L52B1 lda (A4L),y (pointer set by setptr)
jmp exitcard jmp exitcard
formatflg .EQ *-ofsR0 formatflg .EQ *-ofsR0
dc h'00' not formatted yet .DA #00' not formatted yet
tcmd .EQ *-ofsR0 tcmd .EQ *-ofsR0
dc h'00' command dc h'00' command
dc h'00' unit (not used) dc h'00' unit (not used)
@ -300,15 +300,15 @@ R01 .EQ *-ofsR0
dc h'00' page requested dc h'00' page requested
BITMAP .EQ *-ofsR0 BITMAP .EQ *-ofsR0
dc h'00FFFFFF' blocks 0-7 used dc h'00FFFFFF' blocks 0-7 used
dc h'FFFFFFFF' .DA #FFFFFFFF'
dc h'FFFFFFFF' dc h'FFFFFFFF'
dc h'FFFFFFFE' .DA #FFFFFFFE'
VDIR .EQ *-ofsR0 start of vdir. VDIR .EQ *-ofsR0 start of vdir.
dc h'F3' storage type = F, name length = 3 dc h'F3' storage type = F, name length = 3
msb off msb off
dc c'RAM' dc c'RAM'
access .EQ *-ofsR0 access .EQ *-ofsR0
dc h'C3' destroy, rename, read enabled .DA #C3' destroy, rename, read enabled
dc h'27' entry length dc h'27' entry length
dc h'0D' dc h'0D'
dc h'0000' dc h'0000'
@ -323,7 +323,7 @@ exitcard .EQ *-ofsR0
sta store80on enable 80store sta store80on enable 80store
L52EA jmp bypass jump around passit L52EA jmp bypass jump around passit
passit .EQ *-ofsR0 passit .EQ *-ofsR0
dc h'0000' .DA #0000'
bypass .EQ *-ofsR0 bypass .EQ *-ofsR0
lda #<noerr set up return to noerr lda #<noerr set up return to noerr
sta passit sta passit
@ -338,11 +338,11 @@ ex1 .EQ *-ofsR0
* since the interrupt vector must go there if aux interrupts * since the interrupt vector must go there if aux interrupts
* are to be used. no room for expansion here !! * are to be used. no room for expansion here !!
dc h'0000' $3FE-$3FF .DA #0000' $3FE-$3FF
* end of obj ram_0 * end of obj ram_0
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.RAMI LOAD USR/SRC/PRODOS.203/PRODOS.S.RAMI
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -37,8 +37,8 @@ L5A2D jsr home clear screen
sta cv sta cv
jsr crout jsr crout
jsr MLI get prefix jsr MLI get prefix
dc i1'$C7' .DA #$C7'
dc i2'dsp1pfx' .DA dsp1pfx'
ldx PrefixBuf get prefix length ldx PrefixBuf get prefix length
lda #$00 put 0 at end of prefix lda #$00 put 0 at end of prefix
sta PrefixBuf+1,x sta PrefixBuf+1,x
@ -99,8 +99,8 @@ L5ABD cpx #$00 prefix length = 0 ?
beq L5AD3 if yes, don't set length. beq L5AD3 if yes, don't set length.
stx PrefixBuf set prefix length. stx PrefixBuf set prefix length.
jsr MLI call mli to set prefix. jsr MLI call mli to set prefix.
dc i1'$C6' .DA #$C6'
dc i2'dsp1pfx' .DA dsp1pfx'
bcc L5AD3 if ok, go get filename. bcc L5AD3 if ok, go get filename.
jsr bell if not, ring bell jsr bell if not, ring bell
lda #$00 and try again for prefix. lda #$00 and try again for prefix.
@ -159,8 +159,8 @@ L5B3C lda #$A0
jsr cout after cr, blank out the cursor. jsr cout after cr, blank out the cursor.
stx PrefixBuf put length in front of the name. stx PrefixBuf put length in front of the name.
jsr MLI get file info for pathname in PrefixBuf jsr MLI get file info for pathname in PrefixBuf
dc i1'$C4' .DA #$C4'
dc i2'dsp1info' .DA dsp1info'
bcc L5B4F if no errors. bcc L5B4F if no errors.
jmp dsp1error jmp dsp1error
L5B4F lda dsp1type L5B4F lda dsp1type
@ -171,8 +171,8 @@ L5B4F lda dsp1type
L5B5B lda #$00 it's a system file L5B5B lda #$00 it's a system file
sta dsp1cln sta dsp1cln
jsr MLI close all open files jsr MLI close all open files
dc i1'$CC' .DA #$CC'
dc i2'dsp1cls' .DA dsp1cls'
bcc L5B6B bcc L5B6B
jmp dsp1error jmp dsp1error
L5B6B lda dsp1acess check for proper access. L5B6B lda dsp1acess check for proper access.
@ -181,16 +181,16 @@ L5B6B lda dsp1acess check for proper access.
lda #$27 i/o error lda #$27 i/o error
jmp dsp1error jmp dsp1error
L5B77 jsr MLI open the file L5B77 jsr MLI open the file
dc i1'$C8' .DA #$C8'
dc i2'dsp1open' .DA dsp1open'
bcc L5B82 bcc L5B82
jmp dsp1error jmp dsp1error
L5B82 lda dsp1refn copy the reference number L5B82 lda dsp1refn copy the reference number
sta dsp1rdn sta dsp1rdn
sta dsp1eofn sta dsp1eofn
jsr MLI get eof jsr MLI get eof
dc i1'$D1' .DA #$D1'
dc i2'dsp1eof' .DA dsp1eof'
bcs L5BE2 bcs L5BE2
lda dsp1eofb+2 3rd of 3 bytes. lda dsp1eofb+2 3rd of 3 bytes.
beq L5B9C if 0 then ok beq L5B9C if 0 then ok
@ -201,12 +201,12 @@ L5B9C lda dsp1eofb move eof to # of bytes to read.
lda dsp1eofb+1 lda dsp1eofb+1
sta dsp1cnt+1 sta dsp1cnt+1
jsr MLI read the file jsr MLI read the file
dc i1'$CA' .DA #$CA'
dc i2'dsp1read' .DA dsp1read'
php save the status. php save the status.
jsr MLI close the file. jsr MLI close the file.
dc i1'$CC' .DA #$CC'
dc i2'dsp1cls' .DA dsp1cls'
bcc L5BBB bcc L5BBB
L5BB7 plp get status (it is irrelevant now) L5BB7 plp get status (it is irrelevant now)
bne L5BE2 if close generated an error bne L5BE2 if close generated an error
@ -261,24 +261,24 @@ L5C0B jsr prntmsg
dsp1msgs .EQ *-ofsS dsp1msgs .EQ *-ofsS
dsp1msg0 .EQ *-ofsS dsp1msg0 .EQ *-ofsS
dc c'ENTER PREFIX (PRESS "RETURN" TO ACCEPT)' dc c'ENTER PREFIX (PRESS "RETURN" TO ACCEPT)'
dc h'00' .DA #00'
disp1msg .EQ *-ofsS disp1msg .EQ *-ofsS
dc c'ENTER PATHNAME OF NEXT APPLICATION' dc c'ENTER PATHNAME OF NEXT APPLICATION'
dc h'00' .DA #00'
dsp1err1 .EQ *-ofsS dsp1err1 .EQ *-ofsS
dc h'87' .DA #87'
dc c'NOT A TYPE "SYS" FILE' dc c'NOT A TYPE "SYS" FILE'
dc h'00' .DA #00'
dsp1err2 .EQ *-ofsS dsp1err2 .EQ *-ofsS
dc h'87' .DA #87'
dc c'I/O ERROR ' dc c'I/O ERROR '
dc h'00' .DA #00'
dsp1err3 .EQ *-ofsS dsp1err3 .EQ *-ofsS
dc h'87' .DA #87'
dc c'FILE/PATH NOT FOUND ' dc c'FILE/PATH NOT FOUND '
dc h'00' .DA #00'
dsp1info .EQ *-ofsS get file info parms dsp1info .EQ *-ofsS get file info parms
dc h'0A' 10 parameters .DA #0A' 10 parameters
dc i2'PrefixBuf' pathname buffer dc i2'PrefixBuf' pathname buffer
dsp1acess .EQ *-ofsS dsp1acess .EQ *-ofsS
dc h'00' access dc h'00' access
@ -292,7 +292,7 @@ dsp1open .EQ *-ofsS open file parms
dsp1refn .EQ *-ofsS dsp1refn .EQ *-ofsS
dc h'00' reference # dc h'00' reference #
dsp1cls .EQ *-ofsS close file parms dsp1cls .EQ *-ofsS close file parms
dc h'01' 1 parameter for close .DA #01' 1 parameter for close
dsp1cln .EQ *-ofsS dsp1cln .EQ *-ofsS
dc h'00' reference # dc h'00' reference #
dsp1read .EQ *-ofsS dsp1read .EQ *-ofsS
@ -302,7 +302,7 @@ dsp1rdn .EQ *-ofsS
dc i2'sysentry' .SYS load address dc i2'sysentry' .SYS load address
dsp1cnt .EQ *-ofsS dsp1cnt .EQ *-ofsS
dc h'0000' byte count dc h'0000' byte count
dc h'0000' .DA #0000'
dsp1eof .EQ *-ofsS get eof parms dsp1eof .EQ *-ofsS get eof parms
dc h'02' 2 parameters dc h'02' 2 parameters
dsp1eofn .EQ *-ofsS dsp1eofn .EQ *-ofsS
@ -310,7 +310,7 @@ dsp1eofn .EQ *-ofsS
dsp1eofb .EQ *-ofsS dsp1eofb .EQ *-ofsS
dc h'000000' 3 byte eof dc h'000000' 3 byte eof
dsp1pfx .EQ *-ofsS get/set prefix parms dsp1pfx .EQ *-ofsS get/set prefix parms
dc h'01' 1 parameter .DA #01' 1 parameter
dc i2'PrefixBuf' prefix buffer dc i2'PrefixBuf' prefix buffer
disp1end .EQ * disp1end .EQ *
@ -319,6 +319,6 @@ disp1end .EQ *
* end of obj sel_0 * end of obj sel_0
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.SEL0 LOAD USR/SRC/PRODOS.203/PRODOS.S.SEL0
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -46,8 +46,8 @@ L5D3F dex decrement list pointer and restore.
volname sta ol_unit store unit number for online. volname sta ol_unit store unit number for online.
jsr MLI jsr MLI
dc i1'$C5' online call .DA #$C5' online call
dc i2'ol_parms' .DA ol_parms'
bcs L5D32 error check. bcs L5D32 error check.
stz dlevel haven't read root directory yet. stz dlevel haven't read root directory yet.
lda PrefixBuf+1 load description byte. lda PrefixBuf+1 load description byte.
@ -65,8 +65,8 @@ vnam1 .EQ *-ofsB
* open and read directory * open and read directory
jsr MLI jsr MLI
dc i1'$C8' open .DA #$C8' open
dc i2'op_parms' .DA op_parms'
bcc L5D7F good open. bcc L5D7F good open.
lda dlevel trying to open root directory ? lda dlevel trying to open root directory ?
beq L5D32 yes, just move to next volume. beq L5D32 yes, just move to next volume.
@ -124,8 +124,8 @@ L5DCE dey decrement file block counter
L5DD8 adc #$04 add 4 and put in L5DD8 adc #$04 add 4 and put in
sta fpos_lo low byte of setmark. sta fpos_lo low byte of setmark.
jsr MLI call mli jsr MLI call mli
dc i1'$CE' set mark .DA #$CE' set mark
dc i1'smparms' parameters address = $0060 .DA #smparms' parameters address = $0060
dc h'00' dc h'00'
bcs L5DB3 error bcs L5DB3 error
jsr doread jsr doread
@ -161,8 +161,8 @@ L5E15 lda sysentry,y get byte of filename
bne L5DB5 get next file (branch always) bne L5DB5 get next file (branch always)
L5E26 jmp ds2 error. try next unit. L5E26 jmp ds2 error. try next unit.
L5E29 jsr MLI close directory file L5E29 jsr MLI close directory file
dc i1'$CC' .DA #$CC'
dc i2'cl_parms' .DA cl_parms'
bcs L5E26 error. bcs L5E26 error.
jsr settxt use full screen for windows jsr settxt use full screen for windows
jsr home jsr home
@ -262,8 +262,8 @@ L5EF1 jmp vnam1 get new directory info.
* run selected file * run selected file
L5EF4 jsr MLI set prefix L5EF4 jsr MLI set prefix
dc i1'$C6' .DA #$C6'
dc i2'pf_parms' .DA pf_parms'
bcs L5EED error. bcs L5EED error.
ldx valcnt get name number. ldx valcnt get name number.
jsr namecalc set up name storage area (on return y=0) jsr namecalc set up name storage area (on return y=0)
@ -283,8 +283,8 @@ L5F04 iny start at y = 1.
lda #$95 ctrl-u lda #$95 ctrl-u
jsr cout turn off 80 columns. jsr cout turn off 80 columns.
jsr MLI open file jsr MLI open file
dc i1'$C8' .DA #$C8'
dc i2'op_parms' .DA op_parms'
bcs L5EED if error. bcs L5EED if error.
lda op_refn move reference number lda op_refn move reference number
sta rd_refn for read. sta rd_refn for read.
@ -294,8 +294,8 @@ L5F04 iny start at y = 1.
jsr doread read selected file. jsr doread read selected file.
php save possible error. php save possible error.
jsr MLI close file. ignore any error from close jsr MLI close file. ignore any error from close
dc i1'$CC' .DA #$CC'
dc i2'cl_parms' .DA cl_parms'
plp restore status from read. plp restore status from read.
bcs L5EED if any errors. bcs L5EED if any errors.
jmp sysentry execute selected system file. jmp sysentry execute selected system file.
@ -374,8 +374,8 @@ output .EQ *-ofsB
L5FB1 jmp cout output to screen. L5FB1 jmp cout output to screen.
doread .EQ *-ofsB doread .EQ *-ofsB
jsr MLI mli read call jsr MLI mli read call
dc i1'$CA' .DA #$CA'
dc i2'rd_parms' .DA rd_parms'
rts rts
* data area * data area
@ -383,16 +383,16 @@ doread .EQ *-ofsB
dsp2msg .EQ *-ofsB dsp2msg .EQ *-ofsB
dc c'RETURN: Select | TAB: Chg Vol | ' dc c'RETURN: Select | TAB: Chg Vol | '
dc c'ESC: Back' dc c'ESC: Back'
dc i1'$00' .DA #$00'
fldrmsg .EQ *-ofsB fldrmsg .EQ *-ofsB
dc h'0F' inverse control code .DA #0F' inverse control code
dc h'1B' enable mousetext dc h'1B' enable mousetext
dc c'XY' folder characters dc c'XY' folder characters
dc h'18' disable mousetext dc h'18' disable mousetext
dc h'0E' normal control code dc h'0E' normal control code
dc h'00' dc h'00'
op_parms .EQ *-ofsB open parameters op_parms .EQ *-ofsB open parameters
dc h'03' 3 parms .DA #03' 3 parms
dc i2'PrefixBuf' pathname dc i2'PrefixBuf' pathname
dc i2'op_buf' file buffer dc i2'op_buf' file buffer
op_refn .EQ *-ofsB op_refn .EQ *-ofsB
@ -406,10 +406,10 @@ ol_unit .EQ *-ofsB
dc h'60' unit number, default = s6, d1 dc h'60' unit number, default = s6, d1
dc i2'PrefixBuf+1' data buffer dc i2'PrefixBuf+1' data buffer
pf_parms .EQ *-ofsB set prefix parameters pf_parms .EQ *-ofsB set prefix parameters
dc h'01' one parm .DA #01' one parm
dc i2'PrefixBuf' pathname dc i2'PrefixBuf' pathname
rd_parms .EQ *-ofsB read parameters rd_parms .EQ *-ofsB read parameters
dc h'04' 4 parms .DA #04' 4 parms
rd_refn .EQ *-ofsB rd_refn .EQ *-ofsB
dc h'01' reference number dc h'01' reference number
dc i2'sysentry' data buffer dc i2'sysentry' data buffer
@ -426,6 +426,6 @@ dhdr_len .EQ *-ofsB directory header length
* end of obj sel_1 * end of obj sel_1
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.SEL1 LOAD USR/SRC/PRODOS.203/PRODOS.S.SEL1
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -20,7 +20,7 @@ GQdisp lda ramin read/write LC bank 1
clc clc
xce 16 bit native mode. xce 16 bit native mode.
jmp >P8QUIT go to GQuit. jmp >P8QUIT go to GQuit.
dc h'0000000000' offset to paragraph boundary. .DA #0000000000' offset to paragraph boundary.
dc c'GQ' id bytes so GQuit can identify this dc c'GQ' id bytes so GQuit can identify this
* load application * load application
@ -58,8 +58,8 @@ GQdisp lda ramin read/write LC bank 1
* prefix is passed at $00/0200 by GQuit. * prefix is passed at $00/0200 by GQuit.
L6020 jsr MLI set prefix L6020 jsr MLI set prefix
dc i1'$C6' .DA #$C6'
dc i2'pfxparms' .DA pfxparms'
bcc L602D if prefix ok. bcc L602D if prefix ok.
jsr gqerror error handler. jsr gqerror error handler.
bra L6020 try again bra L6020 try again
@ -76,8 +76,8 @@ L602D xce native mode (carry clear)
L603D sec back to emulation mode. L603D sec back to emulation mode.
xce xce
L603F jsr MLI open the application file L603F jsr MLI open the application file
dc i1'$C8' .DA #$C8'
dc i2'opnparms' .DA opnparms'
bcc L604C if open ok. bcc L604C if open ok.
jsr gqerror handle error. jsr gqerror handle error.
bra L603F try again. bra L603F try again.
@ -89,8 +89,8 @@ L604C lda oprefnum copy ref number to parameter lists
* do a geteof call for how many bytes to read * do a geteof call for how many bytes to read
L6058 jsr MLI get eof L6058 jsr MLI get eof
dc i1'$D1' .DA #$D1'
dc i2'eofparms' .DA eofparms'
bcc L6065 eof ok. bcc L6065 eof ok.
jsr gqerror handle error. jsr gqerror handle error.
bra L6058 try again. bra L6058 try again.
@ -102,14 +102,14 @@ L6065 lda eofval
lda eofval+1 lda eofval+1
sta rdcount+1 sta rdcount+1
L6071 jsr MLI read L6071 jsr MLI read
dc i1'$CA' .DA #$CA'
dc i2'readparm' .DA readparm'
bcc L607E read ok bcc L607E read ok
jsr gqerror jsr gqerror
bra L6071 bra L6071
L607E jsr MLI close L607E jsr MLI close
dc i1'$CC' .DA #$CC'
dc i2'closeprm' .DA closeprm'
bcc L608B close ok bcc L608B close ok
jsr gqerror jsr gqerror
bra L607E bra L607E
@ -157,8 +157,8 @@ L60AB clc native mode
sec emulation mode sec emulation mode
xce xce
jsr MLI quit back to GQuit jsr MLI quit back to GQuit
dc i1'$65' .DA #$65'
dc i2'quitparms' .DA quitparms'
* p8 mount volume * p8 mount volume
* *
@ -346,8 +346,8 @@ L621B cmp inbuf,x
L6225 dex don't include trailing slash. L6225 dex don't include trailing slash.
stx inbuf set new length. stx inbuf set new length.
jsr MLI set the P8 prefix. jsr MLI set the P8 prefix.
dc i1'$C6' .DA #$C6'
dc i2'pfxparms' .DA pfxparms'
lda #$00 set z-flag lda #$00 set z-flag
L6231 rts and go launch the app. L6231 rts and go launch the app.
@ -366,8 +366,8 @@ ckfordrv .EQ *-ofsQ
L623C sec emulation mode. L623C sec emulation mode.
xce xce
jsr MLI get info on the volume. jsr MLI get info on the volume.
dc i1'$C4' .DA #$C4'
dc i2'gfiparms' .DA gfiparms'
bcc L6252 branch if volume found, bcc L6252 branch if volume found,
clc (native mode) clc (native mode)
xce xce
@ -382,7 +382,7 @@ L6252 rts
* Prodos 8 parameter lists * Prodos 8 parameter lists
pfxparms .EQ *-ofsQ set prefix parms. pfxparms .EQ *-ofsQ set prefix parms.
dc h'01' one parm. .DA #01' one parm.
dc i2'inbuf' address of prefix. dc i2'inbuf' address of prefix.
opnparms .EQ *-ofsQ open parms. opnparms .EQ *-ofsQ open parms.
dc h'03' 3 parms. dc h'03' 3 parms.
@ -391,13 +391,13 @@ opnparms .EQ *-ofsQ open parms.
oprefnum .EQ *-ofsQ oprefnum .EQ *-ofsQ
dc h'00' reference # dc h'00' reference #
eofparms .EQ *-ofsQ eofparms .EQ *-ofsQ
dc h'02' 2 parms .DA #02' 2 parms
eofrefn .EQ *-ofsQ eofrefn .EQ *-ofsQ
dc h'00' reference # dc h'00' reference #
eofval .EQ *-ofsQ eofval .EQ *-ofsQ
dc h'000000' 3 byte eof value dc h'000000' 3 byte eof value
readparm .EQ *-ofsQ readparm .EQ *-ofsQ
dc h'04' 4 parms .DA #04' 4 parms
rdrefnum .EQ *-ofsQ rdrefnum .EQ *-ofsQ
dc h'00' reference # dc h'00' reference #
dc i2'sysentry' read into $2000 (bank 0). dc i2'sysentry' read into $2000 (bank 0).
@ -409,23 +409,23 @@ closeprm .EQ *-ofsQ
closeref .EQ *-ofsQ closeref .EQ *-ofsQ
dc h'00' reference # dc h'00' reference #
quitparms .EQ *-ofsQ quitparms .EQ *-ofsQ
dc h'04' 4 parms. .DA #04' 4 parms.
dc h'00' quit back to launcher (GQuit) dc h'00' quit back to launcher (GQuit)
dc h'0000' dc h'0000'
dc h'00' dc h'00'
dc h'0000' dc h'0000'
gfiparms .EQ *-ofsQ get file info parms. gfiparms .EQ *-ofsQ get file info parms.
dc h'0A' 10 parms .DA #0A' 10 parms
dc i2'volbuf' volume buffer dc i2'volbuf' volume buffer
dc h'00' access dc h'00' access
dc h'00' file type dc h'00' file type
dc h'0000' aux type dc h'0000' aux type
dc h'00' storage type dc h'00' storage type
dc h'0000' blocks used dc h'0000' blocks used
dc h'0000' modification date .DA #0000' modification date
dc h'0000' modification time dc h'0000' modification time
dc h'0000' creation date dc h'0000' creation date
dc h'0000' creation time .DA #0000' creation time
* messages for P8 fatal error. maximum length of message is 35 characters. * messages for P8 fatal error. maximum length of message is 35 characters.
* the error code will be displayed immediately after the final character. * the error code will be displayed immediately after the final character.
@ -450,7 +450,7 @@ mountmsg .EQ *-ofsQ
button1 .EQ *-ofsQ button1 .EQ *-ofsQ
dc h'0D' dc h'0D'
dc c'Accept: ' dc c'Accept: '
dc h'1B' mousetext on .DA #1B' mousetext on
dc h'0F' inverse on dc h'0F' inverse on
dc h'4D' mousetext return dc h'4D' mousetext return
dc h'0E' normal on dc h'0E' normal on
@ -462,6 +462,6 @@ button2 .EQ *-ofsQ
* end of obj sel_2 (must be < GQdisp+$300) * end of obj sel_2 (must be < GQdisp+$300)
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.SEL2 LOAD USR/SRC/PRODOS.203/PRODOS.S.SEL2
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -71,7 +71,7 @@ H2F69 rts
* one entry for each month. the values are modulo 256. * one entry for each month. the values are modulo 256.
tdays .EQ *-ofsT tdays .EQ *-ofsT
dc h'00' January .DA #00' January
dc h'1F' February dc h'1F' February
dc h'3B' March dc h'3B' March
dc h'5A' April dc h'5A' April
@ -79,7 +79,7 @@ tdays .EQ *-ofsT
dc h'97' June dc h'97' June
dc h'B5' July dc h'B5' July
dc h'D3' August dc h'D3' August
dc h'F2' September .DA #F2' September
dc h'14' October (MOD 256) dc h'14' October (MOD 256)
dc h'33' November dc h'33' November
dc h'51' December dc h'51' December
@ -95,13 +95,13 @@ yradj .EQ *-ofsT
dc h'5F' Sunday dc h'5F' Sunday
dc h'5E' Saturday dc h'5E' Saturday
dc h'5D' Friday dc h'5D' Friday
dc h'62' Thursday .DA #62' Thursday
dc h'61' Wednesday dc h'61' Wednesday
dc h'60' Tuesday dc h'60' Tuesday
tclk_end .EQ * end of obj tclock_0. tclk_end .EQ * end of obj tclock_0.
dc h'000000' pad dc h'000000' pad
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.TCLK LOAD USR/SRC/PRODOS.203/PRODOS.S.TCLK
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -263,14 +263,14 @@ irqdev .EQ *-ofsX
sta mslot slot being accessed. sta mslot slot being accessed.
H31DD jmp irqexit do necessary bank switches and return. H31DD jmp irqexit do necessary bank switches and return.
irqflag .EQ *-ofsX irqflag .EQ *-ofsX
dc h'00' 0 = old roms. 1 = new roms. .DA #00' 0 = old roms. 1 = new roms.
irqcount .EQ *-ofsX irqcount .EQ *-ofsX
dc h'00' # of unclaimed interrupts. dc h'00' # of unclaimed interrupts.
svstack .EQ *-ofsX temporary save area from stack svstack .EQ *-ofsX temporary save area from stack
dc h'0000000000000000' dc h'0000000000000000'
dc h'0000000000000000' .DA #0000000000000000'
svzerop .EQ *-ofsX temporary save area for zero page svzerop .EQ *-ofsX temporary save area for zero page
dc h'000000000000' .DA #000000000000'
goint1 .EQ *-ofsX goint1 .EQ *-ofsX
jmp (inttbl) interrupt routine 1 jmp (inttbl) interrupt routine 1
goint2 .EQ *-ofsX goint2 .EQ *-ofsX
@ -4041,15 +4041,15 @@ L4F65 and #$44 mask all but write allowed and write
L4F6D sec L4F6D sec
L4F6E rts L4F6E rts
spvectlo .EQ *-ofsX storage for low byte of smartport spvectlo .EQ *-ofsX storage for low byte of smartport
dc h'0000000000000000' entry. .DA #0000000000000000' entry.
dc h'00000000000000' .DA #00000000000000'
spvecthi .EQ *-ofsX storage for high byte of smartport spvecthi .EQ *-ofsX storage for high byte of smartport
dc h'0000000000000000' entry. .DA #0000000000000000' entry.
dc h'00000000000000' .DA #00000000000000'
statparms .EQ *-ofsX # of parms (always 3 except format) statparms .EQ *-ofsX # of parms (always 3 except format)
dc h'03' dc h'03'
sp_unitnum .EQ *-ofsX sp_unitnum .EQ *-ofsX
dc h'00' unit number .DA #00' unit number
sp_bufptr .EQ *-ofsX sp_bufptr .EQ *-ofsX
dc h'0000' data buffer dc h'0000' data buffer
dc h'000000' block number (3 bytes) dc h'000000' block number (3 bytes)
@ -4058,49 +4058,49 @@ sp_bufptr .EQ *-ofsX
scnums .EQ *-ofsX table of valid mli command numbers. scnums .EQ *-ofsX table of valid mli command numbers.
dc h'D3000000' dc h'D3000000'
dc h'40410000808182' .DA #40410000808182'
dc h'65C0C1C2C3C4C5C6' .DA #65C0C1C2C3C4C5C6'
dc h'C7C8C9CACBCCCDCE' .DA #C7C8C9CACBCCCDCE'
dc h'CF00D0D1D2' .DA #CF00D0D1D2'
pcntbl .EQ *-ofsX parameter counts for the calls pcntbl .EQ *-ofsX parameter counts for the calls
dc h'02FFFF' dc h'02FFFF'
dc h'FF0201FFFF030300' .DA #FF0201FFFF030300'
dc h'04070102070A0201' .DA #04070102070A0201'
dc h'0103030404010102' .DA #0103030404010102'
dc h'02FF020202' .DA #02FF020202'
* command table * command table
cmdtable .EQ *-ofsX cmdtable .EQ *-ofsX
dc i2'create' create dc i2'create' create
dc i2'destroy' destroy dc i2'destroy' destroy
dc i2'rename' rename .DA rename' rename
dc i2'setinfo' setinfo dc i2'setinfo' setinfo
dc i2'getinfo' getinfo dc i2'getinfo' getinfo
dc i2'online' online dc i2'online' online
dc i2'setprefx' set prefix .DA setprefx' set prefix
dc i2'getprefx' get prefix dc i2'getprefx' get prefix
dc i2'openf' open dc i2'openf' open
dc i2'newline' newline dc i2'newline' newline
dc i2'readf' read .DA readf' read
dc i2'writef' write dc i2'writef' write
dc i2'closef' close dc i2'closef' close
dc i2'flushf' flush dc i2'flushf' flush
dc i2'setmark' set mark .DA setmark' set mark
dc i2'getmark' get mark dc i2'getmark' get mark
dc i2'seteof' seteof dc i2'seteof' seteof
dc i2'geteof' geteof dc i2'geteof' geteof
dc i2'setbuf' setbuf .DA setbuf' setbuf
dc i2'getbuf' getbuf dc i2'getbuf' getbuf
* corresponding command function bytes * corresponding command function bytes
disptch .EQ *-ofsX disptch .EQ *-ofsX
dc h'A0A1A2A3' dc h'A0A1A2A3'
dc h'84050607' .DA #84050607'
dc h'88494A4B' dc h'88494A4B'
dc h'2C2D4E4F' .DA #2C2D4E4F'
dc h'50515253' .DA #50515253'
dinctbl .EQ *-ofsX table to increment dinctbl .EQ *-ofsX table to increment
dc h'0100000200' directory usage/eof counts dc h'0100000200' directory usage/eof counts
@ -4112,14 +4112,14 @@ compat .EQ *-ofsX
dc h'00' dc h'00'
dc h'C3270D000000' dc h'C3270D000000'
rootstuf .EQ *-ofsX rootstuf .EQ *-ofsX
dc h'0F02000400000800' .DA #0F02000400000800'
whichbit .EQ *-ofsX whichbit .EQ *-ofsX
dc h'8040201008040201' .DA #8040201008040201'
ofcbtbl .EQ *-ofsX ofcbtbl .EQ *-ofsX
dc h'0C0D1819151617' .DA #0C0D1819151617'
inftabl .EQ *-ofsX inftabl .EQ *-ofsX
dc h'1E101F2080939421' .DA #1E101F2080939421'
dc h'22232418191A1B' .DA #22232418191A1B'
deathmsg .EQ *-ofsX deathmsg .EQ *-ofsX
dc h'20' dc h'20'
msb on msb on
@ -4132,7 +4132,7 @@ deathmsg .EQ *-ofsX
* variables in the file control block and temporary directory. * variables in the file control block and temporary directory.
own_blk .EQ *-ofsX own_blk .EQ *-ofsX
dc h'0000' .DA #0000'
own_ent .EQ *-ofsX own_ent .EQ *-ofsX
dc h'00' dc h'00'
own_len .EQ *-ofsX own_len .EQ *-ofsX
@ -4140,7 +4140,7 @@ own_len .EQ *-ofsX
h_credt .EQ *-ofsX h_credt .EQ *-ofsX
dc h'0000' directory creation date dc h'0000' directory creation date
dc h'0000' directory creation time dc h'0000' directory creation time
dc h'00' version under which this dir created .DA #00' version under which this dir created
dc h'00' earliest version that it's compatible dc h'00' earliest version that it's compatible
h_attr .EQ *-ofsX attributes (protect bit, etc.) h_attr .EQ *-ofsX attributes (protect bit, etc.)
dc h'00' dc h'00'
@ -4151,7 +4151,7 @@ h_maxent .EQ *-ofsX maximum number of entries per block
h_fcnt .EQ *-ofsX current # of files in this directory h_fcnt .EQ *-ofsX current # of files in this directory
dc h'0000' dc h'0000'
h_bmap .EQ *-ofsX address of first allocation bitmap h_bmap .EQ *-ofsX address of first allocation bitmap
dc h'0000' .DA #0000'
h_tblk .EQ *-ofsX total number of blocks on this unit h_tblk .EQ *-ofsX total number of blocks on this unit
dc h'0000' dc h'0000'
d_dev .EQ *-ofsX device number of this directory entry d_dev .EQ *-ofsX device number of this directory entry
@ -4161,12 +4161,12 @@ d_head .EQ *-ofsX address of <sub> directory header
d_entblk .EQ *-ofsX address of block which contains entry d_entblk .EQ *-ofsX address of block which contains entry
dc h'0000' dc h'0000'
d_entnum .EQ *-ofsX entry number within block d_entnum .EQ *-ofsX entry number within block
dc h'00' .DA #00'
d_stor .EQ *-ofsX d_stor .EQ *-ofsX
dc h'0000000000000000' file name dc h'0000000000000000' file name
dc h'0000000000000000' dc h'0000000000000000'
d_filid .EQ *-ofsX user's identification byte d_filid .EQ *-ofsX user's identification byte
dc h'00' .DA #00'
d_frst .EQ *-ofsX first block of file d_frst .EQ *-ofsX first block of file
dc h'0000' dc h'0000'
d_usage .EQ *-ofsX # of blocks allocated to this file d_usage .EQ *-ofsX # of blocks allocated to this file
@ -4174,7 +4174,7 @@ d_usage .EQ *-ofsX # of blocks allocated to this file
d_eof .EQ *-ofsX current end of file marker d_eof .EQ *-ofsX current end of file marker
dc h'000000' dc h'000000'
d_credt .EQ *-ofsX d_credt .EQ *-ofsX
dc h'0000' file creation date .DA #0000' file creation date
dc h'0000' file creation time dc h'0000' file creation time
d_sosver .EQ *-ofsX sos version that created this file d_sosver .EQ *-ofsX sos version that created this file
dc h'00' dc h'00'
@ -4183,18 +4183,18 @@ d_comp .EQ *-ofsX backward version compatibility
d_attr .EQ *-ofsX attributes (protect, r/w, enable, etc.) d_attr .EQ *-ofsX attributes (protect, r/w, enable, etc.)
dc h'00' dc h'00'
d_auxid .EQ *-ofsX user auxilliary identification d_auxid .EQ *-ofsX user auxilliary identification
dc h'0000' .DA #0000'
d_moddt .EQ *-ofsX d_moddt .EQ *-ofsX
dc h'0000' file's last modification date dc h'0000' file's last modification date
dc h'0000' file's last modification time dc h'0000' file's last modification time
d_dhdr .EQ *-ofsX file directory header block address d_dhdr .EQ *-ofsX file directory header block address
dc h'0000' dc h'0000'
scrtch .EQ *-ofsX scratch area for scrtch .EQ *-ofsX scratch area for
dc h'00000000' allocation address conversion. .DA #00000000' allocation address conversion.
oldeof .EQ *-ofsX temp used in r/w oldeof .EQ *-ofsX temp used in r/w
dc h'000000' dc h'000000'
oldmark .EQ *-ofsX oldmark .EQ *-ofsX
dc h'000000' .DA #000000'
xvcbptr .EQ *-ofsX used in 'cmpvcb' as a temp xvcbptr .EQ *-ofsX used in 'cmpvcb' as a temp
dc h'00' dc h'00'
vcbptr .EQ *-ofsX vcbptr .EQ *-ofsX
@ -4208,7 +4208,7 @@ reql .EQ *-ofsX
reqh .EQ *-ofsX reqh .EQ *-ofsX
dc h'00' dc h'00'
levels .EQ *-ofsX levels .EQ *-ofsX
dc h'00' .DA #00'
totent .EQ *-ofsX totent .EQ *-ofsX
dc h'00' dc h'00'
entcntl .EQ *-ofsX entcntl .EQ *-ofsX
@ -4224,7 +4224,7 @@ bmcnt .EQ *-ofsX
saptr .EQ *-ofsX saptr .EQ *-ofsX
dc h'00' dc h'00'
pathcnt .EQ *-ofsX pathcnt .EQ *-ofsX
dc h'00' .DA #00'
p_dev .EQ *-ofsX p_dev .EQ *-ofsX
dc h'00' dc h'00'
p_blok .EQ *-ofsX p_blok .EQ *-ofsX
@ -4241,7 +4241,7 @@ half .EQ *-ofsX
bmastat .EQ *-ofsX bmastat .EQ *-ofsX
dc h'00' dc h'00'
bmadev .EQ *-ofsX bmadev .EQ *-ofsX
dc h'00' .DA #00'
bmadadr .EQ *-ofsX bmadadr .EQ *-ofsX
dc h'0000' dc h'0000'
bmacmap .EQ *-ofsX bmacmap .EQ *-ofsX
@ -4255,7 +4255,7 @@ tposhi .EQ *-ofsX
rwreql .EQ *-ofsX rwreql .EQ *-ofsX
dc h'00' dc h'00'
rwreqh .EQ *-ofsX rwreqh .EQ *-ofsX
dc h'00' .DA #00'
nlchar .EQ *-ofsX nlchar .EQ *-ofsX
dc h'00' dc h'00'
nlmask .EQ *-ofsX nlmask .EQ *-ofsX
@ -4274,7 +4274,7 @@ vcbentry .EQ *-ofsX
* xdos temporary variables * xdos temporary variables
namcnt .EQ *-ofsX namcnt .EQ *-ofsX
dc h'00' .DA #00'
rnptr .EQ *-ofsX rnptr .EQ *-ofsX
dc h'00' dc h'00'
namptr .EQ *-ofsX namptr .EQ *-ofsX
@ -4293,7 +4293,7 @@ firstbl .EQ *-ofsX
firstbh .EQ *-ofsX firstbh .EQ *-ofsX
dc h'00' dc h'00'
stortyp .EQ *-ofsX stortyp .EQ *-ofsX
dc h'00' .DA #00'
deblock .EQ *-ofsX deblock .EQ *-ofsX
dc h'0000' dc h'0000'
dtree .EQ *-ofsX dtree .EQ *-ofsX
@ -4310,9 +4310,9 @@ loklst .EQ *-ofsX look list of recognized device numbers
dealbufl .EQ *-ofsX dealbufl .EQ *-ofsX
dc h'0000000000000000' dc h'0000000000000000'
dealbufh .EQ *-ofsX dealbufh .EQ *-ofsX
dc h'0000000000000000' .DA #0000000000000000'
cbytes .EQ *-ofsX cbytes .EQ *-ofsX
dc h'0000' .DA #0000'
dc h'00' cbytes+2 must = 0 dc h'00' cbytes+2 must = 0
bufaddrl .EQ *-ofsX bufaddrl .EQ *-ofsX
dc h'00' dc h'00'
@ -4321,7 +4321,7 @@ bufaddrh .EQ *-ofsX
goadr .EQ *-ofsX goadr .EQ *-ofsX
dc h'0000' dc h'0000'
delflag .EQ *-ofsX used by 'detree' to know if called delflag .EQ *-ofsX used by 'detree' to know if called
dc h'00' from delete (destroy). .DA #00' from delete (destroy).
* zero fill to page boundary - 3 ($FEFD). so that cortland flag stays * zero fill to page boundary - 3 ($FEFD). so that cortland flag stays
* within page boundary. * within page boundary.
@ -4336,8 +4336,8 @@ cortflag .EQ *-ofsX cortland flag. 1 = Cortland system
* end of obj mli_2 * end of obj mli_2
*-------------------------------------- *--------------------------------------
MAN MAN
LOAD USR/SRC/PRODOS/PRODOS.S.XDOS LOAD USR/SRC/PRODOS.203/PRODOS.S.XDOS
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM

View File

@ -33,22 +33,22 @@ DirBlkBuf .EQ $C00
.PH $2000 .PH $2000
.INB USR/SRC/PRODOS/PRODOS.S.LDR .INB USR/SRC/PRODOS.203/PRODOS.S.LDR
.INB USR/SRC/PRODOS/PRODOS.S.RAMI .INB USR/SRC/PRODOS.203/PRODOS.S.RAMI
.INB USR/SRC/PRODOS/PRODOS.S.RAM .INB USR/SRC/PRODOS.203/PRODOS.S.RAM
.INB USR/SRC/PRODOS/PRODOS.S.IRQ .INB USR/SRC/PRODOS.203/PRODOS.S.IRQ
.INB USR/SRC/PRODOS/PRODOS.S.GP .INB USR/SRC/PRODOS.203/PRODOS.S.GP
.INB USR/SRC/PRODOS/PRODOS.S.TCLK .INB USR/SRC/PRODOS.203/PRODOS.S.TCLK
.INB USR/SRC/PRODOS/PRODOS.S.CCLK .INB USR/SRC/PRODOS.203/PRODOS.S.CCLK
.INB USR/SRC/PRODOS/PRODOS.S.XDOS .INB USR/SRC/PRODOS.203/PRODOS.S.XDOS
.INB USR/SRC/PRODOS/PRODOS.S.RAMX .INB USR/SRC/PRODOS.203/PRODOS.S.RAMX
.INB USR/SRC/PRODOS/PRODOS.S.DISKII .INB USR/SRC/PRODOS.203/PRODOS.S.DISKII
.INB USR/SRC/PRODOS/PRODOS.S.SEL0 .INB USR/SRC/PRODOS.203/PRODOS.S.SEL0
.INB USR/SRC/PRODOS/PRODOS.S.SEL1 .INB USR/SRC/PRODOS.203/PRODOS.S.SEL1
.INB USR/SRC/PRODOS/PRODOS.S.SEL2 .INB USR/SRC/PRODOS.203/PRODOS.S.SEL2
.EP .EP
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/PRODOS/PRODOS.S SAVE USR/SRC/PRODOS.203/PRODOS.S
ASM ASM