home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR33
/
A-R
/
BANKSYS1.LBR
/
BANKSYS1.DZC
/
BANKSYS1.DOC
Wrap
Text File
|
2000-06-30
|
13KB
|
276 lines
ROM║ Well≤ Brimhal∞ - Znodσ 5▓ (602)996-8739
TO║ Cameroε W« Cotril∞ ì
DATE║ 26Jan88
BankeΣ ZCPR│ ª CP/═ 2.▓ compatiblσ OS
╔ woulΣ likσ t∩ adΣ thσ followinτ thought≤ t∩ thσ proposeΣ bankeΣ ì
systeφ standard≤ containeΣ iε BANKSYS.DO├ dateΣ 01jan88« ╔ assumσ ì
thσ ne≈ O╙ will bσ calleΣ ZSDO╙ anΣ refe≥ t∩ i⌠ a≤ sucΦ.
I« BACKGROUND
╔ purchaseΣ ß 6418░ ╙-10░ boarΣ witΦ 512δ oµ onboarΣ raφ abou⌠ ß ì
yea≥ ago« Thσ onl∙ operatinτ systeφ availablσ fo≥ thσ boarΣ a⌠ ì
thσ timσ wa≤ TurboDO╙ whicΦ support≤ ß completel∙ BankeΣ BDO╙ ª ì
CC╨ anΣ ß Master/Slave≤ multΘ-use≥ network« Al∞ oµ thesσ feature≤ ì
havσ beeε ver∙ wel∞ though⌠ ou⌠ anΣ havσ beeε useΣ oε Z8░ system≤ ì
fo≥ severa∞ years« I'vσ beeε workinτ oε ß BankeΣ Zsysteφ O╙ fo≥ ì
thσ 6418░ boarΣ ove≥ thσ las⌠ yea≥ anΣ includeΣ somσ oµ thσ ì
followinτ feature≤ froφ TurboDO╙ whicΦ ╔ thinδ shoulΣ bσ ì
considereΣ beforσ settinτ an∙ standard≤ fo≥ ZSDOS« (╔ als∩ ì
includeΣ thσ filσ XLMZS193.W╙ iε thi≤ librar∙ whicΦ i≤ thσ user'≤ ì
guidσ fo≥ m∙ bankeΣ system.)
II« MEMOR┘ LAYOUT
Banδ ░ i≤ reserveΣ fo≥ thσ operatinτ system« Howeve≥ thσ O╙ ì
reside≤ iε higΦ memor∙ jus⌠ likσ ß standarΣ CP/═ 2.▓ system« Thi≤ ì
allow≤ program≤ t∩ executσ iε banδ ░ a≤ norma∞ t∩ providσ thesσ ì
advantages:
1⌐ Program≤ tha⌠ directl∙ interfacσ witΦ thσ BIO╙ likσ formattinτ ì
utilitie≤ anΣ systeφ configuratioε utilitie≤ caε bσ codeΣ t∩ ruε ì
iε banδ ░ onl∙ anΣ perforφ thei≥ function≤ withou⌠ thσ additiona∞ ì
overheaΣ anΣ complexit∙ oµ banδ switching.
2⌐ Debugger≤ likσ DS─ wil∞ ruε iε banδ ░ t∩ greatl∙ simplif∙ ì
debugginτ thσ system« (╔ havσ founΣ i⌠ extremel∙ difficul⌠ t∩ ì
debuτ O╙ problem≤ froφ an∙ banδ othe≥ thaε banδ 0).
3⌐ StandarΣ CP/═ 2.▓ RS╪ anΣ D─ program≤ caε bσ loadeΣ int∩ thσ ì
banδ ░ uppe≥ tpß t∩ intercep⌠ systeφ call≤ froφ al∞ banks.
Thσ memor∙ ma≡ oµ m∙ ZRDO╙ 1.╣ bankeΣ O╙ look≤ somethinτ likσ ì
this:
HigΦ Memory
½----------- UnbankeΣ Commoε Memor∙ -----------+
! !
! addres≤ rangσ sizσ disc. !
! ------------¡ -----¡ ---------------¡ !
! ffd░ ¡ fffµ 4╕ Z│ ex⌠ stacδ !
! ff0░ ¡ ffcµ 20╕ Z│ commanΣ buffe≥ !
! fe8░ ¡ fefµ 12╕ Z│ tca≡ !
! fe0░ ¡ fe7µ 12╕ Z│ Environmen⌠ desc !
! fdfµ ▒ Z│ Whee∞ bytσ !è ! fdf┤ ¡ fdfσ 1▒ Z│ Externa∞ patΦ !
! fdd0 ¡ fdf│ 3╢ Z│ Externa∞ FC┬ !
! fd8░ ¡ fdcµ 8░ Z│ messagσ buffe≥ !
! fd0░ ¡ fd7µ 12╕ Z│ shel∞ stacδ !
! fc0░ ¡ fcfµ 25╢ Z3 NameΣ director∙ !
! fa0░ ¡ fbfµ 51▓ Z│ FCP !
! f20░ ¡ f9fµ 204╕ Z│ RCP !
! ec0░ ¡ f1fµ 153╢ Z│ IO╨ !
! e80░ ¡ ec0░ 102┤ banδ manage≥ !
! e7fΣ ¡ e7fµ │ Upper BDOS vecto≥ !
! e00░ ¡ e7fµ 204╕ ZCPR│ !
! !
+----------------------------------------------+
½-¡ Banδ ░ oµ BankeΣ Mem. --½ ½¡- Banδ ε oµ BankeΣ Mem. --+ì
! ! ! !
! ae0░ ¡ dffµ BIO╙ ! ! !
! a00░ ■ adff BDO╙ ! ! !
! 800░ ■ 9fff DS┴ ! ! !
! 010░ ■ 7ffµ Banδ ░ TPA ! ! 0100 ¡ dffµ Banδ ε TPA !
! 000░ ¡ 00fµ Pagσ ░ ! ! 000░ ¡ 00fµ Pagσ 0 !
! ! ! !
½¡--¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ +---------------------------+
LO╫ MEMORY
¿ DS┴ ╜ Dynamiπ Storagσ Areß fo≥ disδ tables¼ secto≥ buffer≤ ª ì
etc« ⌐
¿ Pagσ ░ ╜ CP/═ pagσ ░ vector≤ ª buffer≤ )
Therσ i≤ n∩ fixeΣ limi⌠ oε thσ sizσ oµ thσ BDO╙ o≥ BIO╙ s∩ lonτ a≤ ì
thei≥ ácombineΣ sizσ fit≤ int∩ banδ ░ anΣ leave≤ reasonablσ árooφ ì
fo≥ thσ DS┴ anΣ TPA«
Thσ commoε memor∙ areß i≤ iε physica∞ banδ 0« Thi≤ phantom≤ ou⌠ ì
e00░ t∩ fffµ iε bank≤ ▒ througΦ 7« ZCPR│ i≤ saveΣ iε banδ ▒ a⌠ ì
e00░ anΣ DMA'eΣ bacδ t∩ banδ ░ durinτ warφ boots« Thi≤ allow≤ ì
applicatioε program≤ t∩ overla∙ ZCPR│ jus⌠ likσ thσ CP/═ ì
specification≤ t∩ providσ ß 58δ tpß whicΦ appear≤ t∩ bσ jus⌠ ì
abou⌠ a≤ largσ a≤ possiblσ fo≥ ß ful∞ Zsysteφ implementation.
Thσ abovσ memor∙ layou⌠ work≤ ou⌠ wel∞ fo≥ ß noε multitaskinτ ì
system« Fo≥ multitaskinτ eacΦ banδ mus⌠ havσ it≤ owε CC╨ anΣ ì
probabl∙ shoulΣ havσ it'≤ owε se⌠ oµ selecteΣ ZCPR│ segment≤ ª ì
buffers« Sincσ thσ 6418░ onl∙ ha≤ 4δ resolutioε fo≥ thσ ì
banked/commoε memor∙ boundar∙ ╔ woulΣ recommenΣ settinτ i⌠ a⌠ ì
f000Φ anΣ followinτ thi≤ rougΦ memor∙ layout:
HigΦ Memory
½----------- UnbankeΣ Commoε Memor∙ -----------+
! addres≤ rangσ sizσ disc. !
! ------------¡ -----¡ ---------------¡ !
! fc00 ¡ ffff 102┤ banδ manage≥ !
! f00░ ¡ fbff 3072 common Z│ buffers !
+----------------------------------------------+
è ½-¡ Banδ ░ oµ BankeΣ Mem. --½ ½¡- Banδ ε oµ BankeΣ Mem. --+
í e80│ ¡ effµ Buffer≤ í í e80│ ¡ effµ Buffer≤ !
í e800 ¡ e802 BDO╙ vecto≥ í í e80░ ¡ e802 BDO╙ vecto≥ !
í e00░ ¡ e7ff ZCPR│ í í e00░ ¡ effµ ZCPR3 !
! ae0░ ¡ dffµ BIO╙ ! ! !
! a00░ ■ adff BDO╙ ! ! !
! 800░ ■ 9fff DS┴ ! ! !
! 010░ ■ 7ffµ Banδ ░ TPA ! ! 0100 ¡ dffµ Banδ ε TPA !
! 000░ ¡ 00fµ Pagσ ░ ! ! 000░ ¡ 00fµ Pagσ 0 !
½¡--¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡½ +---------------------------+
LO╫ MEMORY
Wσ neeΣ t∩ determinσ whicΦ oµ thσ ZCPR│ buffer≤ ª segment≤ t∩ ì
sharσ betweeε task≤ iε thσ commoε areß anΣ whicΦ neeΣ t∩ bσ kep⌠ ì
exclusivel∙ fo≥ eacΦ tasδ iε thσ bankeΣ areas.
III« NE╫ FEATURES
1⌐ Datσ stampinτ ª hierarchia∞ directory
áááááThσ onl∙ feature≤ tha⌠ ╔ fee∞ Zsysteφ lack≤ ove≥ MSDO╙ arσ ß ì
áááááhierarchia∞ director∙ systeφ anΣ filσ timσ ª datσ stamping« ì
ááááá╔ thinδ botΦ oµ thesσ arσ ß mus⌠ iµ ZSDO╙ i≤ goinτ t∩ ì
áááááseriousl∙ compete« Thσ presen⌠ ZCPR│ nameΣ director∙ schemσ ì
áááááshoulΣ bσ expandeΣ t∩ ß truσ nameΣ hierarchia∞ director∙ ì
ááááásysteφ insteaΣ oµ use≥ areas« ╔ woulΣ likσ t∩ seσ botΦ MP/═ ì
áááá᪠TurboDO╙ systeφ call≤ useΣ fo≥ settinτ ª accessinτ thσ thσ ì
áááááRea∞ Timσ Clocδ sincσ the∙ arσ alread∙ considereΣ ß ì
ááááástandard.
2⌐ Secto≥ buffering
áááááTurboDO╙ perform≤ disδ intensivσ operation≤ iε les≤ thaε ì
áááááhalµ thσ timσ i⌠ take≤ Zsysteφ oε m∙ 6418░ board« I⌠ appear≤ ì
ááááámainl∙ duσ t∩ thσ usσ oµ ß secto≥ bufferinτ schemσ tha⌠ ì
ááááácopie≤ sector≤ t∩ ß variablσ sizeΣ memor∙ buffe≥ a≤ the∙ arσ ì
áááááreaΣ froφ disk« Wheε ß disδ reques⌠ i≤ madσ thσ buffe≥ i≤ ì
ááááácheckeΣ beforσ performinτ thσ operation¼ iµ thσ secto≥ i≤ iε ì
ááááámemor∙ therσ i≤ n∩ neeΣ t∩ acces≤ thσ disk« Oncσ thσ buffe≥ ì
áááááfill≤ thσ leas⌠ useΣ sector≤ arσ writteε bacδ t∩ disk« ì
áááááConsiderinτ thσ tremendou≤ increasσ iε performancσ ╔ thinδ ì
áááááthi≤ schemσ shoulΣ definitel∙ bσ supporteΣ b∙ ZSDOS«
3⌐ Drivσ Specificatioε Tables
áááááM∙ 6418░ bio≤ utilize≤ aε extensioε oµ thσ TurboDO╙ drivσ ì
áááááspeπ tablσ feature« Thesσ table≤ greatl∙ simplif∙ addinτ ne≈ ì
ááááádisδ drive≤ t∩ thσ systeφ anΣ supportinτ additiona∞ flopp∙ ì
áááááformats« ┴ smal∞ drivσ speπ tablσ i≤ madσ specifyinτ thσ ì
ááááábasiπ parameter≤ oµ eacΦ disδ forma⌠ tha⌠ yo⌡ wan⌠ t∩ ì
ááááásupport« Thσ O╙ theε create≤ thσ necessar∙ CP/═ compatiblσ ì
áááááDP╚ ª DP┬ table≤ froφ thi≤ drivσ speπ tablσ wheε thσ drivσ ì
ááááái≤ firs⌠ accessed« Thi≤ schemσ als∩ allow≤ thσ systeφ t∩ ì
áááááautomaticall∙ detec⌠ ß flopp∙ disk'≤ forma⌠ wheε ß disδ ì
áááááchangσ occur≤ anΣ adjus⌠ thσ bio≤ fo≥ it« I'φ includinτ thσ ìèáááááfilσ MDST24.Z8░ iε thi≤ librar∙ whicΦ contain≤ thσ flopp∙ ì
áááááDST'≤ fo≥ m∙ systeφ s∩ yo⌡ caε seσ ho≈ eas∙ i⌠ i≤ t∩ adΣ ne≈ ì
áááááformats« ╔ hopσ thi≤ caε als∩ bσ useΣ iε ZSDOS.
IV« ╘ or Z-FUNCTIO╬ CALLS
TurboDO╙ ha≤ it≤ owε se⌠ oµ systeφ call≤ tha⌠ directl∙ acces≤ ì
routine≤ iε thσ BDO╙ ª BIOS« Thσ entr∙ poin⌠ i≤ a⌠ 50Φ insteaΣ oµ ì
5h« Thi≤ give≤ ß lo⌠ oµ flexibilit∙ iε defininτ ne≈ functions« ì
Man∙ oµ thσ function≤ tha⌠ thesσ ╘-functioε call≤ perforφ neeΣ t∩ ì
bσ includeΣ iε thσ ne≈ OS« Wσ ma∙ wan⌠ t∩ conside≥ usinτ somσ oµ ì
thσ turboDO╙ call≤ sincσ the∙ arσ wel∞ defineΣ anΣ alread∙ ì
somewha⌠ oµ ß standarΣ o≥ wσ ma∙ possibl∙ conside≥ settinτ u≡ ß ì
ne≈ ┌¡ functioε cal∞ entr∙ poin⌠ t∩ suppor⌠ somσ oµ thσ ì
specializeΣ call≤ pertaininτ t∩ thσ bankeΣ system« ┴ fe≈ oµ thσ ì
function≤ tha⌠ ╔ woulΣ likσ t∩ seσ includeΣ are:
1⌐ Disδ formatting
2⌐ Multiple channe∞ SI╧ suppor⌠ witΦ modeφ controls
3⌐ Thσ ne≈ banδ memor∙ function≤ mentioneΣ iε BANKSYS.DOC.
V. ADDITIONAL SYSTE═ CALLS
╔ fee∞ thσ followinτ function≤ shoulΣ bσ supporteΣ b∙ systeφ ì
call≤ s∩ applicatioε program≤ caε acces≤ thσ advanceΣ feature≤ oµ ì
thσ ne≈ hardwarσ froφ an∙ bank« Withou⌠ thesσ call≤ i⌠ i≤ ì
impossiblσ t∩ perforφ thesσ function≤ witΦ hardwarσ independen⌠ ì
code«
1⌐ DM┴ transfe≥ function« Thi≤ woulΣ allo≈ applicatioε ì
áááááprogram≤ t∩ acces≤ thσ hardwarσ DM┴ unit.
áááááCal∞ with:
ááááác╜ ┐ (need≤ t∩ bσ defined)
ááááádσ¡-╛ DM┴ commanΣ packe⌠ iε thi≤ format:
ááááádmapkt║ dΓ modσ ;higΦ nibblσ ╜ modσ (need≤ t∩ be
defined)
;lo≈ nibblσ ╜ dmß channe∞ #
d≈ source ;1╢ bi⌠ sourcσ memory/por⌠ address
dΓ sbank ;╕ bi⌠ sourcσ bank
d≈ dest ;1╢ bi⌠ des⌠ memory/por⌠ address
dΓ dbank ;╕ bi⌠ des⌠ bank
d≈ count ;1╢ bi⌠ bytσ count
2⌐ SCS╔ function« Thi≤ give≤ applicatioε program≤ acces≤ t∩ thσ ì
SCS╔ por⌠ whicΦ i≤ usuall∙ unde≥ DM┴ contro∞ also.
CAL╠ WITH:
c╜ ┐ (need≤ t∩ bσ defined)
de--╛ SCS╔ commanΣ packe⌠ iε thi≤ format:
scpkt║ db 6 ;commanΣ bytσ count
dΓ cmdbyt ;scsΘ commanΣ byteè dΓ lba2 ;luε ª logica∞ blocδ msb
dΓ lba1 ╗logica∞ blocδ hsb
dΓ lba░ ;logica∞ blocδ lsb
dΓ blkcnt ;blocδ count
dΓ cmdct∞ ;specia∞ functioε bits
d≈ dmapkt ;addres≤ oµ dmß xfe≥ packe⌠ iε samσ bank
RETURNS:
a╜ SCS╔ statu≤ byte
3) áLogica∞ t∩ Physica∞ disδ drivσ reassignment« Thσ O╙ shoulΣ ì
ááááásuppor⌠ a⌠ leas⌠ 2┤ physica∞ drives« (EacΦ individua∞ harΣ ì
ááááádisδ partitioε i≤ considereΣ t∩ bσ ß separatσ physica∞ ì
ááááádrive.⌐ ┴ systeφ cal∞ shoulΣ bσ provideΣ t∩ quer∙ ª se⌠ thσ ì
áááááphysica∞ drivσ assigneΣ t∩ an∙ oµ thσ 1╢ logica∞ drives.
CAL╠ WITH:
c╜ ┐ (need≤ t∩ bσ defined)
e╜ logica∞ drivσ numbe≥ (0╜ A:)
d╜ 0ffΦ t∩ quer∙ drivσ assignmen⌠ o≥ physica∞ drivσ ú t∩ ì
assigε t∩ logica∞ drivσ iε reτ E.
RETURNS:
a╜ physica∞ drivσ assigneΣ t∩ logica∞ drivσ iε reτ e.
VI« BOOTIN╟ SYSTEM
Thσ systeφ i≤ goinτ t∩ bσ to∩ largσ t∩ fi⌠ oε thσ systeφ track≤ ì
oµ thσ smalle≥ flopp∙ disδ format≤ s∩ ╔ woulΣ recommenΣ thσ ì
schemσ tha⌠ TurboDO╙ ha≤ adopted« Thσ systeφ i≤ placeΣ int∩ ß ì
filσ nameΣ OSLOAD.CO═ whicΦ load≤ int∩ thσ tpß a⌠ 100Φ theε move≤ ì
thσ systeφ segment≤ t∩ thei≥ prope≥ addresse≤ iε uppe≥ memor∙ ì
wheε i⌠ executes« Thi≤ allow≤ increaseΣ storagσ oε floppie≤ sincσ ì
therσ i≤ n∩ neeΣ fo≥ systeφ tracks¼ i⌠ make≤ i⌠ mucΦ easie≥ t∩ ì
boo⌠ froφ ß harΣ disδ anΣ i⌠ greatl∙ simplifie≤ thσ sysgeε ì
process« (Al∞ yo⌡ havσ t∩ d∩ i≤ cop∙ OSLOAD.CO═ t∩ thσ disδ yo⌡ ì
wan⌠ t∩ boo⌠ from!⌐ Ne≈ hardwarσ design≤ shoulΣ placσ codσ int∩ ì
thσ boo⌠ RO═ t∩ loaΣ anΣ executσ thσ OSLOAD.CO═ filσ wheε thσ ì
systeφ i≤ reset« Olde≥ design≤ caε usσ ß multΘ-ste≡ boo⌠ proces≤ ì
wherσ thσ olΣ systeφ aut∩ execute≤ OSLOAD.CO═ a⌠ colΣ boot« Thi≤ ì
ha≤ workeΣ ver∙ wel∞ fo≥ m∙ bankeΣ 6418░ Zsysteφ implementation.
VII« MULTITASKING
BotΦ TurboDO╙ anΣ MP/═ havσ standardizeΣ mos⌠ oµ thσ systeφ call≤ ì
necessar∙ fo≥ multitaskinτ sucΦ a≤ filσ locking¼ messagσ queues¼ ì
Rea∞ Timσ Clocδ acces≤ etc« ╔ woulΣ strongl∙ recommenΣ usinτ ì
thesσ call≤ withou⌠ changσ where possiblσ.
VIII« SUMMARY
╔ hopσ thi≤ informatioε i≤ helpful« ╔ kno≈ i⌠ jus⌠ scratche≤ thσ ì
surfacσ bu⌠ ╔ wanteΣ t∩ ge⌠ somethinτ t∩ yo⌡ righ⌠ away« ╔ thinδ ì
thσ projec⌠ i≤ ß supe≥ ideß anΣ hopσ i⌠ caε ge⌠ starteΣ ASAPí ì
Pleasσ le⌠ mσ kno≈ iµ ╔ caε hel≡ makσ i⌠ happen« ╔ wil∞ bσ happ∙ ìèt∩ contributσ anythinτ ╔ can.
Trademarks:áááááááá ┌-SYSTEM¼ ZCPR3¼ ZRDOS¼ Echeloε Inc╗ ì
ááááááááááááááááááááTurboDOS¼ Softwarσ 2000╗
HD64180¼ Hitachi╗ ì
ááááááááááááááááááááCP/M¼ MP/═, Digita∞ ResearcΦ Inc╗ ì