home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol041
/
fdcbios.doc
< prev
next >
Wrap
Text File
|
1985-02-09
|
6KB
|
134 lines
CBIOS for Cromemco 4FDC/16FDC or CCS 2422 disk controller
FDCBIOS.Z8░ anΣ FDCBOOT.Z8░ arσ modification≤ oµ 4FDCBIOS.Z8░ anΣ ì
4FDCBOOT.Z8░ respectivel∙ froφ thσ CPMU╟ Use≥ Grou≡ Library« The∙ ì
havσá beeεá modifieΣ t∩ correc⌠ problem≤ iε thσ origina∞á versioε ì
witΦá respec⌠á t∩ usσ oµ thσ PerscΘ singlσ arφá voicσá coi∞á disδ ì
drives« Thσ name≤ werσ als∩ changeΣ t∩ indicatσ tha⌠ thσ program≤ ì
havσá beeεá additionall∙ checkeΣ ou⌠ witΦ thσá 16FDC«á Thσá majo≥ ì
change≤ t∩ thσ origina∞ codσ werσ a≤ follows:
a) corrected PIP A:=B:filename.ext
the original code improperly accessed the Persci 277/299
single arm voice coil drives
b) corrected current drive assignment on a warm boot
the original code always reference drive A: after a
warm boot
FDCBIOS.Z8░á anΣá FDCBOOT.Z8░ arσ thσ bootstra≡ anΣá Cbio≤á fo≥ ì
runninτ CP/═ 2.° witΦ ß Cromemc∩ 4FDC/16FD├ controlle≥ board¼ ß ì
Z8░ CPU¼á anΣ minimuφ 20╦ oµ RAM«á CP/═ 1.┤ caε als∩ bσ ì
supporteΣá iµ somσ oµ thσ 2.x-onl∙ codσ i≤ removed«á Thi≤ codσ i≤ ì
als∩ applicablσ to¼á anΣ testeΣ upon¼á thσ Californißá Compute≥ ì
System≤á disδ controlle≥ boarΣ mode∞ 2422¼á iµ ß seria∞ por⌠ a⌠ ░ ì
compatiblσ witΦ CDO╙ i≤ useΣ (ß 3╨ ½ S¼á o≥ ß Cromemc∩ TUART¼á o≥ ì
thσ seria∞ por⌠ oε ß Cromemc∩ Singlσ CarΣ Computer.)
Thi≤á sourcσ i≤ capablσ oµ supportinτ threσ type≤á oµá disks║á ╡ ì
incΦá (sucΦá a≤ Wangco)¼á ╕ incΦ (sucΦ a≤á Shugart)¼á anΣ ì
single-arφ voice-coi∞ ╕ incΦ (sucΦ a≤ Persci)«á Betweeε onσá anΣ ì
fou≥ drive≤ arσ supportable¼á bu⌠ n∩ intermixing«á Therσ i≤ n∩ ì
curren⌠á suppor⌠ fo≥ double-sideΣ drives¼á bu⌠ i⌠ shoulΣ bσ ì
easil∙ addable«á Therσ i≤ n∩ suppor⌠ fo≥ thσ doublσ densit∙á modσ ì
iε thσ Cromemc∩ 16FDC¼á o≥ thσ CC╙ 2422«á Thi≤ bio≤ i≤ limiteΣ t∩ ì
12╕ bytσ sectors.
Thσá ╕á incΦá forma⌠ i≤ compatablσ witΦ al∞á CP/═á anΣá CDO╙ ì
version≤á currentl∙ known«á Thσ ╡ incΦ forma⌠ (ske≈ oµ 5⌐ i≤ ì
compatablσ witΦ al∞ ╡ incΦ CDO╙ format≤ currentl∙ used.
I⌠á i≤á assumeΣ tha⌠ thσ maiε console¼á a⌠á por⌠á zero¼á i≤ ì
alread∙ initializeΣ b∙ RDO╙ o≥ somσ othe≥ program«á Iµ not¼á yo⌡ ì
caεá inser⌠ thσ necessar∙ codσ int∩á FDCBOOT.Z80«á A≤á additiona∞ ì
features¼á thσá routinσ contain≤ aε optiona∞ reader-puncΦ anΣ ì
printe≥ suppor⌠ routine¼ viß TUAR╘ anΣ PR╔ boards« Also¼ iε ß ì
commenteΣá sectioε i≤ ß smal∞ modificatioε s∩ thσ DE╠ ke∙á (07FH⌐ ì
i≤á changeΣá t∩ ß Control-╒ b∙ thσ CBIOS¼á fo≥ thosσá wh∩á havσ ì
Backspacσ oε thσ terminal« ╔ d∩ no⌠ likσ t∩ usσ tw∩ hand≤ jus⌠ ì
t∩ bσ ablσ t∩ erasσ ß mistake« Thσ sourcσ i≤ fo≥ Cromemc∩ Z8░ ì
assembler¼ anΣ therσ arσ fivσ constant≤ iε thσ fron⌠ t∩ bσ ì
changeΣ t∩ selec⌠ variou≤ options.
First¼á selec⌠ thσ typσ oµ drive║á Iµ ╡ inch¼ LARGES╫ anΣ ì
PERSCIS╫ shoulΣ bσ 0«á Iµ ╕ incΦ Shugart¼á LARGES╫ shoulΣ bσ 1¼ ì
PERSCIS╫ 0«á Iµ Persci¼á PERSCIS╫ shoulΣ bσ 1« LARGES╫ shoulΣ ì
als∩ bσ altereΣ iε FDCBOOT.Z80.è
Next¼á NUMDRIVE╙ shoulΣ bσ ▒ t∩ ┤ fo≥ 5ó anΣ 8ó drives¼ anΣ ▓ ì
o≥ ┤ fo≥ PerscΘ double-disδ drives.
Then¼á t∩ havσ suppor⌠ fo≥ printe≥ anΣ TUART¼á BIGIOS╫ shoulΣ ì
bσ 1¼á otherwisσ 0«á Yo⌡ migh⌠ als∩ wisΦ t∩ changσ BAUDRAT┼ t∩ ì
thσá desireΣ valuσ fo≥ thσ reader-puncΦ (11░ bauΣá i≤á supplied)« ì
Note║á iµ thσ CC╙ 242▓ i≤ used¼á i⌠ ma∙ bσ necessar∙ t∩ suppl∙ aε ì
initializatioεá anΣá bootstra≡ routinσ fo≥ thσ consolσá port¼á iµ ì
tha⌠ i≤ oε ß TUAR╘ addresseΣ a⌠ zero«á Thσ curren⌠ codσ doe≤á no⌠ ì
initializσá thσ por⌠ a⌠ zero¼á assuminτ tha⌠ ha≤ beeε donσ beforσ ì
thσ disδ wa≤ booted«á Thσ codσ fo≥ thσ TUAR╘ referreΣ t∩ herσá i≤ ì
fo≥á aε additiona∞ TUAR╘ port¼á no⌠ thσ consolσ port¼á bu⌠ i⌠á i≤ ì
eas∙á t∩á adΣ thσ necessar∙ codσ t∩ initializσ thσá consolσá por⌠ ì
also.
Finally¼á se⌠ BEGINAD╥ t∩ thσ star⌠ oµ thσ CBIOS«á I⌠ i≤ ì
supplieΣ a≤ 0E400¼á whicΦ i≤ fo≥ ß 64╦ system«á Thi≤ shoulΣ als∩ ì
bσ altereΣ iε FDCBOOT.Z80.
Thσáá switche≤á oεá thσá 4FDC/16FD├á arσá se⌠á exactl∙á a≤ ì
describeΣá iε thσ boarΣ manual«á Fo≥ ß systeφ ove≥á 48K¼á thσ ì
RO═á mus⌠á bσ disableΣ upoε bootstrapping«á Fo≥á ßá smalle≥ ì
system¼á thσ RDO╙ caε sta∙ in¼á o≥ not¼ a≤ yo⌡ desire« Fo≥ ß CC╙ ì
242▓ controller¼á thσ samσ statemen⌠ applies¼ excep⌠ thσ 242▓ RO═ ì
neeΣ no⌠ bσ disableΣ unles≤ thσ systeφ memor∙ exceed≤ 60K.
FDCBOOT.HE╪ anΣ FDCBIOS.HE╪ arσ supplied¼á assembleΣ froφ thσ ì
sourcσ files« The∙ arσ se⌠ fo≥ ß 64╦ versioε oµ CP/M« Yo⌡ caε usσ ì
theφá iε anothe≥ systeφ iµ yo⌡ caε pu⌠ abou⌠ 8╦ a⌠ thσ uppe≥á enΣ ì
oµá memor∙ (E000⌐ anΣ maybσ 16╦ a⌠ thσ lo≈ enΣ (0000⌐ t∩ bσá ablσ ì
t∩ re-assemblσ thσ files.
Thσá followinτá instruction≤á shoulΣ assis⌠á iεá thσá initia∞ ì
start-up for a 64K CP/M system:
1) modify FDCBIOS.Z80 where appropriate
2) create a copy of CPM64.COM from MOVCPM
3) reboot with CDOS generated at 48K
4) ASMB FDCBIOS HEX=F200
do not continue past this point if there are errors
5) DEBUG CPM64.COM
6⌐ ╞ FDCBIOS.HEX
7) R 4000
8) M 3200 34xx 1F80
9) M 980 2500 DC00
10) G F200
11) SYSGEN
subsequent updates
1) modify FDCBIOS.Z80 where appropriate
2) reboot CDOS
3) ASMB FDCBIOS HEX=F200
4) reboot CP/Mè 5) MOVCPM 64 *
6) SAVE 36 CPM64.COM
7) DDT CPM64.COM
8) IFDCBIOS.HEX
9) R4000
10⌐ M320░ 34x° 1F80
pls note the value 34xx will vary
11) IFDCBOOT.HEX
12) R4000
13) M4000 404F 900
control ^C
14) SAVE 36 CP/M64.COM
15) DDT CP/M64.COM
16) control ^C
17) SYSGEN
for other memory size systems
1) ED FDCBIOS.Z80
2) modify MEMSIZE
3) ED FDCBOOT.Z80
modify MEMSIZE
4) reboot CDOS
5) ASMB FDCBIOS HEX=(top of memory-E00)
6) ASMB FDCBOOT HEX=0