home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug133.arc
/
CCPFIX.LBR
/
CCPFIX.DZC
/
CCPFIX.DOC
Wrap
Text File
|
1979-12-31
|
7KB
|
120 lines
128k/256k CCP Fix
by Richard Browne
Havσá yo⌡ eve≥ wondereΣ wh∙ yo⌡ canno⌠ usσ program≤ likσá DESPOO╠ ì
oεá you≥ 128δ B-Shel∞ system┐á O≥ wh∙ COP┘ mysteriousl∙á crashe≤ ì
afte≥á copyinτá ß fe≈ files┐á Beforσ presentinτ m∙á solutioεá t∩ ì
this¼ somσ backgrounΣ oε wh∙ thi≤ probleφ occur≤ i≤ iε order«
DESPOO╠á anΣá QUIKKE┘á arσá botΦ example≤á oµá programme≤á termeΣ ì
'memor∙ resident'«á Thi≤ mean≤ tha⌠ wheε run¼á thσ prograφá wil∞ ì
reservσá itselµá somσá memor∙ anΣ theε pas≤ contro∞ bacδá t∩á thσ ì
operatinτá systeφ (iε ou≥ casσ CP/═ 2.2)«á Thσ prograφ wil∞á theε ì
sta∙á iεá memory¼á monitorinτá thσá system¼á anΣá performinτá it≤ ì
specifiπá functioεá (bσá i⌠á keyboarΣá redefinitioεá o≥áá printe≥ ì
(de)spoolinτá o≥ whatever)«á Thσ maiε poin⌠ t∩ understanΣ i≤ tha⌠ ì
sucΦá ßá programmσ wi∞ hidσ itselµ somewherσ ou⌠ oµ thσá wa∙á anΣ ì
operatσá ALON╟á SID┼ othe≥ programs¼á anΣ tha⌠ botΦá thesσá othe≥ ì
program≤ anΣ thσ operatinτ systeφ arσ obliviou≤ t∩ it≤á presence« ì
Thi≤á i≤á actuall∙ ß primitivσ forφá oµá multitasking¼á sometime≤ ì
calleΣá 'serialº multitaskinτ - becausσ onl∙ onσ thinτ caε happeε ì
a⌠ ß time.
Thσá programmσá mode∞á outlineΣ abovσ perform≤ wha⌠ i≤á knowεá a≤ ì
'backgrounΣá processing'«á Tha⌠ is¼á i⌠ doe≤ it≤ joΓ 'behinΣá thσ ì
scenes'¼á s∩ t∩ speak¼á whils⌠ ß maiε prograφ run≤ a≤ norma∞ - iε ì
thσ 'foreground'«á Usinτ CP/═ │ nomenclature¼á sucΦ program≤á arσ ì
knowε a≤ 'RSX's¼ whicΦ stand≤ fo≥ Residen⌠ Systeφ Extensions« DO╙ ì
user≤á wil∞ bσ morσ familia≥ witΦ thσ terφ TSR¼á whicΦ stand≤ fo≥ ì
Terminatσ anΣ Sta∙ Resident« BotΦ RS╪ anΣ TS╥ arσ differen⌠ name≤ ì
fo≥ thσ samσ thing.
Well¼ s∩ fa≥ s∩ good╗ bu⌠ no≈ fo≥ thσ harΣ part« Thi≤ i≤ al∞ ver∙ ì
nicσ iε theory¼á bu⌠ iε practicσ thing≤ arσ no⌠ s∩ good« Thσ maiε ì
probleφá i≤ tha⌠ CP/═ (anΣ DO╙ fo≥ tha⌠ matter⌐ arσ singlσá user¼ ì
singlσ taskinτ operatinτ systems«á Thσ upsho⌠ oµ whicΦ i≤ tha⌠ i⌠ ì
i≤ difficul⌠ t∩ havσ tw∩ program≤ runninτ a⌠ thσ samσá time«á Thσ ì
wa∙ i⌠ i≤ donσ iε CP/═ (prio≥ t∩ releasσ 3⌐ i≤ b∙ loadinτ thσ RS╪ ì
int∩á thσá to≡ oµ thσ TPA¼á anΣ theε resettinτ thσ to≡ oµá memor∙ ì
pointe≥ s∩ a≤ t∩ makσ thσ RS╪ 'invisible'«
'AnΣ ho≈ doe≤ onσ determinσ thσ to≡ oµ memory?'¼á ╔ hea≥ yo⌡ ask« ì
Well¼ al∞ tha⌠ need≤ t∩ bσ donσ i≤ t∩ finΣ ou⌠ thσ addres≤ oµ thσ ì
BDO╙ cal∞ vecto≥ froφ location≤ 06╚ anΣ 07H«á Now¼á remembe≥ tha⌠ ì
thesσá programme≤á mus⌠á ruε iε conjunctioεá witΦá thσá operatinτ ì
system¼ s∩ iµ thσ basσ oµ thσ BDO╙ wa≤ useΣ a≤ thσ to≡ oµ memory¼ ì
thσ RS╪ woulΣ tr∙ t∩ occup∙ thσ samσ memor∙ a≤ thσ CCP╗á needles≤ ì
t∩ say¼á thi≤ i≤ impossible¼á anΣ thσ systeφ woulΣ crash« S∩ thσ ì
RS╪á ha≤ n∩ choicσ bu⌠ t∩ assumσ tha⌠ thσ CC╨ i≤ ß standard¼á anΣ ì
tha⌠á i⌠ begin≤ 800╚ byte≤ belo≈ thσ BDOS«á Thu≤ thσ standarΣ ha≤ ì
beeεá se⌠á tha⌠á thσ CP/═ ▓ CC╨ (anΣ it≤á derivatives⌐á mus⌠á no⌠ ì
exceeΣ 800╚ byte≤ iε length.
Wheεá implementinτ hi≤ versioε oµ ZCP╥ (ß publiπ domaiε CP/═á CC╨ ì
replacement⌐ fo≥ thσ MicroBee¼á thσ persoε wh∩ wrotσ thσ MicroBeσ ì
BIO╙á decideΣá t∩ breaδ al∞ thσ rule≤ anΣ makσ thσ CC╨ ove≥á 800╚ ì
byte≤á long«á Thσ reasoε fo≥ thi≤ i≤ portabilit∙ acros≤ differen⌠ ì
BIO╙ versions¼á bu⌠ tha⌠ i≤ to∩ complicateΣ t∩ g∩ int∩ here«á Thσ ì
upsho⌠á oµ thi≤ largσ CC╨ i≤ tha⌠ ....yo⌡ gueseΣ it...«á nonσá oµ ì
thosσ RS╪ programme≤ wil∞ run«
Therσá i≤á anothe≥á probleφá whicΦá caεá arrise║á tha⌠á whicΦá i≤ ì
encountereΣá witΦ COPY.COM«á Thi≤ prograφ wil∞ attemp⌠ t∩ reaΣ a≤ ì
mucΦ oµ thσ file≤ int∩ memor∙ a≤ i⌠ caε wheε copying¼ fo≥ obviou≤ ì
reason≤á oµ speed«á However¼á COP┘ trie≤ t∩ leavσ thσ CC╨á intac⌠ ì
durinτá it≤á operation¼á anΣ i⌠ use≤ thσ samσ tricδ a≤á RSX≤á fo≥ ìèdetermininτ thσ to≡ oµ memory/CC╨ base« Thi≤ i≤ s∩ tha⌠ i⌠ caε d∩ ì
ß quicδ RE╘ t∩ thσ CC╨ a⌠ thσ enΣ oµ COPYing¼á a≤ opposeΣ t∩ WAR═ ì
BOOTinτá thσá systeφ witΦ ß "J╨ 0"«á WitΦ thσá non-standarΣá CCP¼ ì
however¼á thσ CC╨ wil∞ havσ beeε partl∙ overwritten¼á anΣ tha⌠ i≤ ì
why the program will crash after copying more than about 50k.
No≈ fo≥ m∙ solutioε t∩ thσ problem« ╔ havσ obtaineΣ ß cop∙ oµ thσ ì
ZCP╥á versioε ▓ source¼á anΣ adapteΣ i⌠ t∩ assemblσ t∩ ßá CCP.SY╙ ì
filσá a≤á requireΣ b∙ thσ 'Bee'≤ BIOS«á Thi≤ ZCP╥ i≤á withiεá thσ ì
lega∞á limits¼á anΣá wil∞ allo≈ yo⌡ t∩ ruε AL╠ standarΣ RS╪á typσ ì
programmes«á Actually¼á it≤ lengtΦ i≤ exactl∙ 800╚á bytes¼á whicΦ ì
give≤ yo⌡ somσ ideß oµ ho≈ tigh⌠ thing≤ are« Becausσ thσ CC╨ mus⌠ ì
ruεá 800╚á byte≤ belo≈ thσ BDO╙ t∩ bσ system¼á yo⌡ mus⌠á usσá thσ ì
versioεá whicΦ ha≤ beeε assembleΣ fo≥ you≥ BIOS«á Mos⌠ 128δ BIOS≤ ì
begiεá a⌠ E700H¼á bu⌠ thσ newe≥ BIO╙ supplieΣ witΦ thσ mousσá anΣ ì
thσá 256T├ i≤ ORGeΣ a⌠ E400H«á Thus¼á tw∩ file≤ arσá provideΣá t∩ ì
accomodatσá this«á Thσá firs⌠ i≤ CCPE700.SYS¼á anΣ thσá othe≥á i≤ ì
CCPE400.SYS«á Simpl∙á renamσ thσ onσ whicΦ i≤ applicablσ t∩á you≥ ì
system to CCP.SYS and away you go!
Tw∩á smal∞á points║á Iµ yo⌡ tr∙ t∩ ruε ß CCP.SY╙ whicΦá ha≤á beeε ì
assembleΣ fo≥ thσ wronτ origin¼ yo⌡ wil∞ ge⌠ ß tersσ messagσ likσ ì
'BIOS!ºá o≥ something¼á anΣ probabl∙ ß beep¼á anΣ theε thσ systeφ ì
wil∞ locδ up«á Sorr∙ fo≥ this¼á bu⌠ therσ was jus⌠ no⌠ rooφ t∩ d∩ ì
anythinτá les≤á drastic«á Als∩á thσ ER┴á commanΣá work≤á slightl∙ ì
differently¼á thσá interactivσ ER┴ commanΣ implementeΣ iε thσá M╙ ì
CCP.SY╙á seem≤ t∩ bσ ß custoφ patch¼á bu⌠ therσ jus⌠ ain'⌠á spacσ ì
for it in mine I'm afraid.
Herσá i≤á ßá lis⌠á oµ programme≤ whicΦ don'⌠ worδá witΦá thσá CC╨ ì
supplieΣáá b∙á MS¼áá bu⌠á shoulΣá worδá witΦá thσá ne≈áá CCP.SYS║ ì
DESPOOL¼á QWIKKEY¼á COP┘ anΣ man∙ othe≥ simila≥ programmes¼á VLU¼ ì
somσá program≤ compileΣ witΦ BD╙ C¼á anΣ al∞ oµ Julaiε Loke'≤ RS╪ ì
programmes«á Therσá arσ man∙ morσ program≤ (mostl∙ iε thσá publiπ ì
domain⌐ whicΦ fal∞ int∩ thi≤ catergory¼á bu⌠ ╔ can'⌠ thinδ oµ an∙ ì
morσ righ⌠ now.
B∙á thσ way¼á thi≤ probleφ wa≤ addresseΣ b∙ MS╗á oε m∙á origiona∞ ì
maste≥á disδ wa≤ ß filσ calleΣ DRICCP.SYS«á Thi≤ wa≤ ß versioε oµ ì
thσá 'stocδ standardº CC╨ a≤ supplieΣ b∙á Digita∞á Research«á Al∞ ì
tha⌠á needeΣ t∩ bσ donσ wa≤ t∩ renamσ thi≤ filσ t∩ CCP.SY╙ anΣ i⌠ ì
coulΣ bσ useΣ insteaΣ oµ thσ norma∞ ZCP╥ CCP.SYS«á However¼á thi≤ ì
DRICC╨ i≤ s∩ primitivσ compareΣ t∩ ZCP╥ tha⌠ i⌠ wa≤ neve≥á reall∙ ì
iε thσ running«á ╔ diΣ no⌠ receivσ thi≤ filσ oε m∙ Premiuφ wheε ╔ ì
upgraded¼á anΣá i⌠á definatel∙ doe≤ no⌠ comσ witΦ thσá 256TC«á Iε ì
fact¼á thσá 256T├á doe≤ no⌠ seeφ t∩ comσ witΦ an∙á standarΣá CP/═ ì
utilitiesíá I'φá surσá tha⌠ thi≤ mus⌠ bσ ßá breacΦá oµá licensinτ ì
agreemen⌠ oε thσ par⌠ oµ MicroBeσ (o≥ whoweve≥ own≤ i⌠á now)¼á a≤ ì
ever∙ CP/═ systeφ i≤ supposeΣ t∩ comσ witΦ DDT¼ ASM¼ E─ etc.
╔ havσ placeΣ thσ ▓ objec⌠ file≤ mentioned¼á thi≤ articlσ anΣ thσ ì
sourcσ file≤ iε ß librar∙ calleΣ CCPFIX.LBR«á Unfortunatel∙ ╔á d∩ ì
no⌠ havσ ß modem¼ bu⌠ ╔ wil∞ asδ thσ edito≥ t∩ uploaΣ thσ librar∙ ì
ont∩ thσ MBUG RBBS.