VIRTUAÌ SYSTEMS      Beî Grey¬ Cedaò Milì Z-Nodå 24     Iî thió month'ó articlå wå arå goinç tï examinå thå dynamicó oæ memorù �     managemenô aó iô caî bå applieä tï writinç programó foò CP/Í anä ZCPR® �     Iî mù firsô article¬ wå brieflù toucheä oî thå limitationó placeä oî �     programó becauså oæ memorù sizå restrictions® Wå founä thaô systemó �     witè á fixeä memory¬ let'ó saù 64K¬ requirå largå programó tï bå �     segmented¬ oò "overlayed¢ iæ theù arå tï fiô iî thå availablå memory® �     Thió haó thå effecô oæ creatinç morå worë foò thå programmer® Hå musô �     bå awarå noô onlù oæ thå program'ó functionality¬ buô musô alsï bå �     concerneä witè "fitting¢ iô intï availablå memory.     Traditionally¬ programmeró foò singlå-user¬ noî-multitaskinç systems¬ �     havå tendeä tï assumå thaô alì oæ thå memorù froí thå enä oæ thå �     prograí codå tï thå Basiã Disë Operatinç Systeí (BDOS© waó availablå tï �     uså aó desired® Thió meant¬ iî reality¬ thå applicatioî programó coulä �     "oveò-write¢ thå Consolå Commanä Processoò (CCP© iî ordeò tï gaiî thå �     extrá 2Ë iô occupies.     Today¬ however¬ wå arå concerneä witè maximizinç thå programmer'ó �     efficiencù tï solvå thå probleí aô hand¬ anä tï minimizå thå "overhead¢ �     hå musô encounteò tï producå á workinç application® Iî otheò words¬ wå �     wisè tï allo÷ hií tï writå programó thaô wilì worë iî á minimuí memorù �     size¬ witè verù littlå regarä foò managinç thå availablå memorù space.     Whaô techniqueó arå available¿ Ho÷ dï wå implemenô them¿ Whù arå theså �     methodó sï importanô iî thå ¸-biô world¿ Whù can'ô wå gï on¬ "willù-�     nilly¢ thå waù wå havå donå foò thå pasô 1µ years?     Thå answeró tï theså questionó arå noô obvious¬ buô wå arå alì �     painfullù awarå oæ thå implications® Limiteä memorù spacå meanó �     restrictinç thå applicatioî programó tï ruî iî thå availablå memorù �     space® Aó á result¬ wå ofteî compromiså thå functionalitù oæ aî �     applicatioî tï conservå space® Yet¬ wå wanô thå prograí tï bå �     operationaì oî thå broadesô crosó-sectioî oæ ¸-biô CP/Í machineó witè �     aó mucè functionalitù aó ió possible.     Beforå wå caî reallù consideò "how¢ tï dï theså things¬ wå musô firsô �     looë aô thå waù standarä CP/Í systemó currentlù "loaä anä execute¢ thå �     programó wå run® Anä iî ordeò tï reallù looë aô thió problem¬ wå reallù �     neeä tï kno÷ whaô thå "memorù image¢ normallù lookó like.     [Therå arå severaì systemó thaô dï noô adherå tï thå "general¢ ruleó É �     wilì discuss¬ notablù somå oæ thå earlù Northstaò Systems® However¬ iæ �     yoõ havå onå oæ theså earlù systems¬ yoõ alreadù kno÷ thå differences.]     Memorù iî ¸-biô computeró generallù beginó aô addresó 0000È (thå È �     standó foò hexadecimaì oò baså 16© anä goeó tï addresó FFFFH® Iæ thió �     hexadecimaì numbeò ió converteä tï it'ó decimaì equivalent¬ wå finä �     thaô iô ió equaì tï 65,53µ oò 64Ë (1Ë iî computereså ½ 102´ bytes). Š     Iî manù currenô systems¬ thå operatinç systeí (OS© buildó froí thå toð �     (FFFFH© dowî towarä thå bottoí (0000H)® Thå memorù ió consecutive¬ oò �     sequential¬ oò contiguous® Thaô is¬ therå arå nï gapó iî iô froí thå �     lowesô bytå tï thå highesô byte.     Moreover¬ manù oæ thå OÓ segmentó arå á fixeä size® Foò example¬ iî thå �     mosô commoî implementation¬ thå CCÐ requreó ¸ 25¶-bytå pages¬ oò 204¸ �     bytes® Thå BDOS¬ requireó 1´ 25¶-bytå pages¬ oò 3584 bytes® Thå BIOS¬ �     oî thå otheò hand¬ haó á "variable¢ size¬ anä generallù runó abouô 409¶ �     bytes¬ anä disë bufferó perhapó aó mucè aó 204¸ bytes® Therå ió onå �     morå area iî memory¬ Pagå 0¬ thaô ió reserveä foò "communicationó"�     betweeî thå OÓ anä applicatioî program¬ iô ió fixeä aô 25¶ bytes.     Foò purposeó oæ discussinç thå CP/Í (ZRDOS© OS¬ iô ió generallù easieò �     tï thinë oæ memorù froí toð tï bottom¬ whilå foò applications¬ wå wanô �     tï consideò memorù froí thå bottoí tï thå top...     Baseä oî thå previouó discussion¬ then¬ wå finä á "typical¢ memorù �     imagå tï looë somethinç likå thå following:      FFFÆ +-----------------------------+      ü |      ü Disë Bufferó ü 204¸ ¨ 2.0k)      ü |      F800 +-----------------------------+      ü |      ü BIOÓ ü 409¶ ¨ 4.0k)      ü |      E80° +-----------------------------+      ü |      ü BDOÓ ü 358´ ¨ 3.5k)      ü |      DA0° +-----------------------------+      ü |      ü CCÐ ü 204¸ ¨ 2.0k)      ü |      D20° +-----------------------------+      ü |      | TPÁ ü þ 5340µ (52.5K)      ü |      010° +-----------------------------+      ü |      ü Pagå ° ü 25¶ (0.25k)      ü |      000° +-----------------------------+     Beaò iî mind¬ however¬ thió ió á "theoretical¢ systeí layout¬ anä ió �     NOÔ indicativå oæ thå systeí yoõ maù bå using® Iô ió provideä merelù �     foò purposeó oæ discussion® Wå wilì develoð aî imagå thaô wilì matcè �     youò owî systeí nexô month® TPÁ standó foò Transienô Prograí Areá anä �     ió thå areá iî memorù wherå applicatioî programó load. Š     Beforå wå caî reallù begiî ouò project¬ wå neeä tï kno÷ jusô á littlå �     morå abouô thå pagå ° anä whaô iô contains® Ratheò thaî presenô iô iî �     graphiã form¬ I'í goinç tï illustratå iô witè assembleò statementó sï �     wå caî uså thió informatioî iî writinç futurå programs.     É dï noô intenä tï explaiî thå rudimentó oæ assembleò languagå syntax¬ �     yoõ shoulä studù youò manualó anä yoõ shoulä feeì freå tï contacô må �     wheî yoõ havå questions® É woulä prefeò yoõ dï thió bù callinç Cedaò �     Milì Z-Nodå 2´ [503Ý 644-462± anä leavinç á messagå tï ALÌ USERS.....     [Noteº thå followinç codå examplå waó produceä usinç WordStaò (tm© anä �     shoulä noô bå "extracted¢ froí thå articlå tï assemble® Instead¬ á �     separatå filå calleä PAGE0.MAÃ (oò .Z80© wilì bå provideä tï assemble.]      TITLÅ 'PAGÅ ° Definitionó ­ CP/Í Computeò Systems'     » Prograí -------------­ » Noteº Undefineä aô moment     » Segmenô Pagå 0     » Authoò Beî Grey     » Languagå Z8° Assembler     » Datå 0´ APÒ 88     » Previouó None     » Conditionaì Definitions     NÏ EQÕ 000° » Definå NO     YEÓ EQÕ noô NÏ » Definå YES     » Assembleò Definition     M8° EQÕ NÏ » MicroSoft     SLÒ EQÕ yeó » SLÒ Systems     ZAÓ EQÕ NÏ » Echelon     » Versioî Levels¬ Date     VERSÎ EQÕ 0° » Versioî Number     REVSÎ EQÕ 0° » Revisioî Level     VMNTÈ EQÕ 0´ » Versioî Month     VDATÅ EQÕ 0´ » Versioî Date     VYEAÒ EQÕ 8¸ » Versioî Year     » Operatinç Systeí Definitions     CPM2² EQÕ NÏ » CP/Í Versioî 2.2     CPM3° EQÕ NÏ » CP/Í Versioî 3.° (CP/M+)     ZCPR³ EQÕ yeó » Usinç ZCPÒ 3.x     ZRDOÓ EQÕ yeó » Usinç ZRDOÓ 1.x     BASÅ EQÕ 000° » Baså oæ Memory     CCÐ EQÕ BASE+0D200È » Baså oæ CCP     BDOÓ EQÕ CCP+0800È » Baså oæ BDOS     BIOÓ EQÕ BDOS+0E00È » Baså oæ BIOS Š     » Starô oæ Pagå 0      iæ M8°      .Z80      ASEG      ORÇ 0000      endif     RST° EQÕ ¤ » Restarô Vectoò 0     WBOOTº JÐ BIOS+³ » Warí Booô Entry     IOBTYEº DÂ 0° » Input/Outpuô Byte     USRDSKº DÂ 0° » MÓ Nybblå ½ User¬ LÓ Nybblå ½ Disk     BDOSVº JÐ BDOS+¶ » BDOÓ Functioî Call     RST1º DÓ ¸ » Restarô Vectoò 1     RST2º DÓ ¸ » Restarô Vectoò 2     RST3º DÓ ¸ » Restarô Vectoò 3     RST4º DÓ ¸ » Restarô Vectoò 4     RST5º DÓ ¸ » Restarô Vectoò 5     RST6º DÓ ¸ » Restarô Vectoò 6     RST7º DÓ ¸ » Restarô Vectoò · (Debuç Utilities)      DÓ 1¶ » 004° ­ 004F      DÓ 1± » 005° ­ 005B     FCB1º DÓ 1¶ » Defaulô FCÂ 1     FCB2º DÓ 1¶ » Defaulô FCÂ 2      DÓ 0´ » 007Ã ­ 007F     DMABFRº DÓ 12¸ » 008° ­ 00FF      END     Thió examplå oæ codå actuallù generateó á Pagå 0® Thió ió NOÔ somethinç �     wå normallù neeä tï dï foò ourselves¬ sincå thå OÓ wilì alwayó insurå �     thå correcô valueó arå storeä iî thió area® Iô ió foò illustratioî onlù �     anä ió intendeä tï bå á littlå introductioî aó tï stylå anä form® Mosô �     oæ iô ió selæ explanatory¬ anä É wilì minimizå mù descriptioî oæ it.     Iî general¬ alì programó wå writå wilì begiî thå samå wayº á TITLÅ anä �     á brieæ fe÷ lineó oæ whaô thå program'ó namå is¬ whï wrotå it¬ whaô thå �     languagå useä is¬ thå datå anä somå commenô abouô previuoó versions® Iæ �     desired¬ á fe÷ (verù few© lineó caî bå addeä tï addresó itó function:     » Prograí     » Segmenô Pagå 0     » Authoò Beî Grey     » Languagå Z8° Assembler     » Datå 0´ APÒ 88     » Previouó None Š    » Functioî Thió ió á codå segmenô tï illustratå thå contentó of     » thå CP/Í Pagå 0® Iô ió "never¢ compileä iî reaì life.     Eveî experienceä programmeró takå timå tï creatå thå abovå sectioî iî �     EVERÙ prograí theù write® Thinë abouô it..® Woulä yoõ remembeò alì oæ �     thå stufæ fivå oò eveî teî yearó froí now¿ Probablù not¬ anä thió biô �     oæ documentatioî serveó tï inforí thå reader¬ aó welì aó refresè ouò �     owî memorieó iî thå future® Iô ió á gooä programminç practice® Dï it!     Thå nexô twï statementó arå directiveó tï thå assembler¬ defininç twï �     commonlù useä values¬ YEÓ anä NO® Wå coulä havå defineä OÎ anä OFÆ oò �     eveî TRUÅ anä FALSÅ iî thå samå way.     » Conditionaì Definitions     NÏ EQÕ 000° » Definå NO     YEÓ EQÕ noô NÏ » Definå YES     OFÆ EQÕ 000° » Definå OFF     OÎ EQÕ noô OFÆ » Definå ON     Oò wå coulä dï somethinç likå this:     TRUÅ EQÕ YEÓ » Definå TRUE     FALSÅ EQÕ NÏ » Definå FALSE     Theså statementó wilì permiô uó tï conditionallù selecô certaiî optionó �     iî thå prograí aô lateò points®     Thå followinç threå statementó definå whicè assembleò wå wilì uså wheî �     wå puô thå prograí together® Onlù ONÅ oæ thå optionó shoulä bå YES¬ thå �     resô shoulä bå NO® Already¬ wå arå usinç thå conditionaló wå defineä iî �     thå lasô fe÷ lineó oæ code® Whù dï this¿ Welì becauså iô ió importanô �     foò otheró tï kno÷ "how¢ yoõ assembleä thå program¬ anä whaô assembleò �     yoõ used® Noô alì assembleró arå createä equal!     » Assembleò Definition     M8° EQÕ NÏ » MicroSoft     SLÒ EQÕ yeó » SLÒ Systems     ZAÓ EQÕ NÏ » Echelon     Iî thió case¬ É usåd onå oæ thå SLÒ Systems§ assemblers¬ SLR180+¬ á �     virtuaì memorù assembler® Alì SLÒ assembleró uså thå samå syntax® Iæ �     yoõ arå usinç M80¬ theî yoõ woulä seô M8° EQÕ yes¬ anä SLÒ EQÕ NO® Thå �     samå ruleó prevaiì iî thå caså oæ thå lasô equatå foò ZAS¬ thå Echeloî �     Inc.¬ product® Therå coulä bå otheró addeä tï thå lisô aó well¬ buô foò �     ouò purposes¬ theså arå thå onlù threå assembleró thaô wilì concerî us.     Recalì mù discussinç versioî anä revisioî leveló aó á parô oæ thå filå �     name¿ Welì insidå thå prograí iô ió necessarù tï identifù thå samå twï �     values® Iî addition¬ I'vå includeä thå Versioî Datå sï wå caî telì wheî �     wå lasô modifieä thå program® Yoõ shoulä geô iî thå habiô oæ updatinç �     theså valueó EVERÙ timå yoõ ediô thå program® Iæ desired¬ thå timå may     alsï bå added¬ althï noô required: Š     » Versioî Levels¬ Date¬ Time     VERSÎ EQÕ 0° » Versioî Number     REVSÎ EQÕ 0° » Revisioî Level     VMNTÈ EQÕ 0´ » Versioî Month     VDATÅ EQÕ 0´ » Versioî Date     VYEAÒ EQÕ 8¸ » Versioî Year     VHOUÒ EQÕ 0· » Versioî Hour     VMINÓ EQÕ 0° » Versioî Minutes     VSECÓ EQÕ 0° » Versioî Seconds     Sincå wå wilì bå writinç programó tï ruî undeò botè CP/Í anä ZRDOS¬ anä �     wilì probablù bå usinç botè thå standarä CCÐ anä ZCPR¬ wå shoulä definå �     theså valueó also® Thió ió á furtheò aiä tï documentation® Aô thió �     point¬ iô ió noô significant¬ buô lateò iô wilì becomå quitå important.     CPM2² EQÕ NÏ » CP/Í Versioî 2.2     CPM3° EQÕ NÏ » CP/Í Versioî 3.° (CP/M+)     ZCPR³ EQÕ yeó » Usinç ZCPÒ 3.x     ZRDOÓ EQÕ yeó » Usinç ZRDOÓ 1.x     Thå nexô seô oæ equateó definå somå oæ thå importanô anä ofteî useä �     addresseó iî ouò systems:     BASÅ EQÕ 000° » Baså oæ Memory     CCÐ EQÕ BASE+0D200È » Baså oæ CCP     BDOÓ EQÕ CCP+0800È » Baså oæ BDOS     BIOÓ EQÕ BDOS+0E00È » Baså oæ BIOS     BASÅ defineó thå "bottom¢ oò "beginning¢ oæ memory® Noticå thaô thå CCÐ �     equatå ió defineä aó thå BASE+0D200H® Thió ió donå sï thaô thå prograí �     caî kno÷ noô onlù wherå thå CCÐ ió located¬ buô alsï tï keeð thå �     "symbol¢ CCÐ á relocatablå item® (I'lì discusó relocatabilitù later.©     Likewise¬ thå BDOÓ addresó ió aî "offset¢ oæ fixeä valuå froí thå CCP¬ �     anä sincå wå kno÷ thå CCÐ ió 204¸ bytes¬ oò 8*256¬ (notå thaô 25¶ iî �     hex ió 100© sï wå adä 8*10° (0800H© tï thå CCÐ beginninç address¬ tï �     finä thå beginninç oæ thå BDOS® Wå alsï kno÷ thaô thå BDOÓ ió 1´ 25¶-�     bytå pageó (1´ iî hex ió 0E¬ sï 0E*10° ½ 0E00H).     Iæ wå alsï wisheä tï includå thå usuaì 2Ë oæ buffeò spacå generallù �     founä afteò thå BIOS¬ wå coulä adä onå morå equatå ..® however¬ wå �     woulä havå tï kno÷ EXACTLÙ ho÷ biç thå BIOÓ is¬ anä rounä iô uð tï thå �     nexô eveî 1Ë boundary® Wå havå assumeä á 4Ë BIOÓ sï wå woulä have:     BASÅ EQÕ 000° » Baså oæ Memory     CCÐ EQÕ BASE+0D200È » Baså oæ CCP     BDOÓ EQÕ CCP+0800È » Baså oæ BDOS     BIOÓ EQÕ BDOS+0E00È » Baså oæ BIOS     EPROÍ EQÕ BIOS+1000È » Baså oæ EPROÍ oò Buffers     [Noteº iæ 2Ë ½ 8*256¬ theî 4Ë ½ 16*256¬ thuó 10*10° ½ 1000H.) Š     Confused¿ É hopå not® Hexadecimaì arithmetiã ió discusseä iî nearlù �     everù computeò textbooë É havå eveò seen® Remember¬ wheî dealinç witè �     computers¬ theù "think¢ iî baså 1¶ (hexadecimal)¬ noô baså 1° (decimal© �     likå wå do® Sï yoõ ask¬ whù couldn'ô wå uså decimaì numberó tï definå �     theså values¿ Thå answeò ió wå could¬ buô sincå wå arå talkinç abouô �     thå reaì hardware¬ anä wilì bå concerneä abouô "reaì memory¢ addresses¬ �     iô ió morå appropriatå tï worë iî hexadecimaì values® Afteò all¬ thå �     outpuô oæ thå assembleró alwayó provideó uó witè thå heø valueó iî thå �     listinç (NEVEÒ thå decimaì ones)...     Thå nexô fe÷ statementó arå significanô iæ yoõ arå usinç M8° aó thå �     assembler® Theù arå NOÔ requireä foò SLÒ oò ZAÓ anä thereforå wå wanô �     tï makå theí "conditional¢ oî thå assembleò wå arå using® Thaô is¬ iæ �     wå arå usinç M80¬ theî theså statementó wilì bå used¬ iæ wå arå not¬ �     theù wilì noô bå used® Pleaså notå thå style¬ thå conditionaì "if¢ ió �     offseô onå column¬ anä ió iî "loweò case"..® Thió makeó iô easù tï finä �     iî á largå listinç (dittï foò thå "endif").      iæ M8°      .Z80      ASEG      ORÇ 0000      endif     Iî thå caså oæ M80¬ whicè caî assemblå botè 808° Inteì anä Z8° Ziloç �     mnemonics¬ wå neeä tï inforí iô whicè seô oæ mnemonicó wå arå using® Iî �     ouò case¬ wå wilì ALWAYÓ uså thå Ziloç codes® (Thå .Z8° directive)    Thå ASEÇ statemenô telló M8° thaô thió ió aî "absolute¢ segment® Iô ió �     noô requireä bù thå otheò twï assemblers®     Thå ORÇ statemenô telló M8° wherå iî memorù wå wanô thió codå located® �     Thió directivå causeó M8° tï puô á speciaì valuå iî thå relocatablå �     filå thaô wilì bå generateä bù thå assembler¬ sï thaô L80¬ thå linkeò, �     wilì bå ablå tï "place¢ iô iî thå propeò memorù area¬ namelù Pagå 0.     No÷ wå havå thå basiã definitions¬ wå wilì examinå jusô whaô ió iî Pagå �     0¬ anä whaô thå valueó mean...     RST° EQÕ ¤ » Restarô Vectoò 0     WBOOTEº JÐ BIOS+³ » Warí Booô Entry     IOBTYEº DÂ 0° » Input/Outpuô Byte     USRDSKº DÂ 0° » MÓ Nybblå ½ User¬ LÓ Nybblå ½ Disk     BDOSFVº JÐ BDOS+¶ » BDOÓ Functioî Call     RST1º DÓ ¸ » Restarô Vectoò 1     RST2º DÓ ¸ » Restarô Vectoò 2     RST3º DÓ ¸ » Restarô Vectoò 3     RST4º DÓ ¸ » Restarô Vectoò 4     RST5º DÓ ¸ » Restarô Vectoò 5     RST6º DÓ ¸ » Restarô Vectoò 6     RST7º DÓ ¸ » Restarô Vectoò · (Debuç Utilities) Š     DÓ 1¶ » 004° ­ 004F      DÓ 1± » 005° ­ 005B     FCB1º DÓ 1¶ » Defaulô FCÂ 1     FCB2º DÓ 1¶ » Defaulô FCÂ 2      DÓ 0´ » 007Ã ­ 007F     DMABFRº DÓ 12¸ » 008° ­ 00FF      END     Thå firsô line¬ defineó (informationally© wherå thå firsô Restarô �     Vectoò begins® Iô jusô sï happens¬ thió ió thå samå addresó wherå thå �     jumð tï thå BIOÓ Warí Booô Entrù ió found® Thå EQÕ ¤ sayó: assigî thå �     addresó oæ thå Prograí Counteò (000° aô thió point© tï thå labeì RST0.     RST° EQÕ ¤ » Restarô Vectoò 0     Thå nexô linå defineó thå labeì WBOOTÅ (warí booô entry© aó á jumð (JP© �     tï thå BIOS+3® Iæ yoõ lookeä aô thå beginninç oæ thå BIOS¬ yoõ woulä �     seå thaô iô beginó witè á serieó oæ jumð instructions¬ pointinç tï thå �     variouó functionó thå BIOÓ provides® Normally¬ wå dï noô concerî �     ourselveó witè thió information¬ becauså thå BDOÓ alsï knowó abouô �     thió jumð table¬ anä wheî wå makå á functioî calì tï BDOS¬ iô locateó �     thå BIOÓ anä provideó thå necessarù linkagå foò us.     WBOOTº JÐ BIOS+³ » Warí Booô Entry     Thå nexô linå defineó thå labeì IOBYTE® Iô ió defineä aó á singlå bytå �     (DÂ ½ Definå Byte© witè á valuå iî thå bytå oæ 00H® Thió bytå ió ofteî �     useä bù thå BIOÓ anä otheò applicationó tï "rå-direct¢ thå input/outpuô �     oæ á program® (Iî standarä CP/Í systems¬ thå STAÔ commanä manipulateó �     thå contentó oæ thió byte.)     IOBTYEº DÂ 0° » Input/Outpuô Byte     Thå labeì USRDSË defineó twï valuesº thå fouò leftmosô bitó contaiî thå �     currenô "useò area¢ anä thå fouò rightmosô bitó definå thå currenô �     "disk¢ (thå loggeä iî oò defaulô disk)® Wheî á bytå ió divideä intï twï �     ´-biô values¬ wå refeò tï theí aó thå Mosô Significanô (MS© anä Leasô �     Significanô (LS© Nybble® Perhapó aî illustratioî wilì bå helpful:     USRDSKº DÂ 0° » MÓ Nybblå ½ User¬ LÓ Nybblå ½ Disk      Useò Disk      MÓ Nybblå --> 000° 000° <-­ LÓ Nybble      Biô · ----¯ \---­ Biô 0     Thå nexô linå     BDOSFVº JÐ BDOS+¶ » BDOÓ Functioî Call Š     defineó thå entrù poinô tï thå BDOÓ thaô wå calì tï havå aî OÓ functioî �     performeä foò us® Mosô programó loaä á "functioî code¢ intï Registeò C¬ �     anä appropriatå informatioî iî thå otheò registeró anä theî perforí thå �     instruction:      CALÌ BDOSFÖ » Perforí Functioî Call     Foò exampleº supposå wå wanô tï kno÷ iæ á characteò ió waitinç oî thå �     consolå foò input® Wå mighô uså Functioî Codå 1± (Reaä Consolå Status© �     tï determinå this® Thå codå woulä be:      LÄ C,1± » FÃ ½ Consolå Status      CALÌ BDOSFÖ » Perforí OÓ Function     Wheî controì ió returneä tï uó froí thå OS¬ (righô afteò thå CALL)¬ wå �     wilì havå á valuå iî Registeò A® Iæ iô ió 00¬ nï characteò waó waiting¬ �     iæ iô ió NOÔ 00¬ theî á characteò ió waiting® Buô É digress¡ Wå onlù �     havå á fe÷ morå lineó oæ codå tï go¬ anä wå wilì havå completeä thió �     article...    Unfortunately¬ thió kinä oæ explanatioî requireó lotó oæ wordó anä �     examples® Thå contentó oæ Pagå ° arå sï verù important¬ É wanteä tï �     starô witè iô sï yoõ wilì understanä somå oæ thå morå rudimentarù �     locationó iî youò memorù image.     Thå nexô seveî lineó represenô thå remaininç Restarô Vectors® Therå arå �     eighô oæ theí iî thå Z8° machine® Iî generaì theù arå unuseä aô presenô �     iî mosô machines® However¬ witè thå ne÷ OÓ anä somå ne÷ applications¬ �     theså byteó wilì bå used® (DÓ ½ Definå Storagå iî bytes)     RST1º DÓ ¸ » Restarô Vectoò 1     RST2º DÓ ¸ » Restarô Vectoò 2     RST3º DÓ ¸ » Restarô Vectoò 3     RST4º DÓ ¸ » Restarô Vectoò 4     RST5º DÓ ¸ » Restarô Vectoò 5     RST6º DÓ ¸ » Restarô Vectoò 6     RST7º DÓ ¸ » Restarô Vectoò · (Debuç Utilities)    Thå nexô twï lines¬ merelù allocatå 2¸ byteó oæ memory® Nothinç oæ anù �     interesô ió iî them® Thå addresseó tï thå right¬ iî thå commentó area¬ �     merelù indicatå whaô "memorù locations¢ theù allocate.      DÓ 1¶ » 004° ­ 004F      DÓ 12 » 005° ­ 005B     Alsï locateä iî Pagå ° arå twï "default¢ Filå Controì Blocks¬ aô �     addresseó 005CÈ anä 006CH® Theså FCBó arå generallù filleä iî bù thå �     CCÐ iæ wå havå specifieä "arguments¢ oî thå commanä line® É wilì noô �     botheò witè á discussioî oæ theiò structurå aô thió time® Wå wilì coveò �     iô iî detaiì aô á lateò time.     FCB1º DÓ 1¶ » Defaulô FCÂ 1     FCB2º DÓ 1¶ » Defaulô FCÂ 2 Š    Next¬ arå fouò bytes¬ merelù allocatinç memorù aó above:      DÓ 0´ » 007Ã ­ 007F     Anä lastlù comeó thå defaulô Direcô Memorù Accesó Buffer® Thió ió thå �     areá wherå CP/Í generallù storeó á recorä reaä froí onå oæ thå floppù �     diskó (oò harä disk)® Iô ió ALWAYÓ 12¸-bytes¬ becauså CP/Í thinkó ALL �     physicaì recordó arå 128-byteó iî length®     DMABFRº DÓ 12¸ » 008° ­ 00FF     Theî thå assembleò directive¬ END¬ tï definå thå obvious¬ thå enä oæ �     thå program.      END     Iî thió month'ó article¬ É havå describeä thå basiã layouô oæ memorù �     anä thå contentó oæ Pagå 0® Nexô month¬ wå wilì begiî á "real¢ prograí �     anä discusó morå memorù management® Iæ yoõ dï noô havå BUFFERS.DOÃ aô �     thió time¬ yoõ mighô retrievå iô foò nexô monthó column.     Youò assignmentº Yoõ shoulä trù tï assemblå thió prograí anä prinô ouô �     thå resultinç listing® Keeð iô handù foò thå future¬ aó wå wilì refeò �     tï iô oveò anä oveò again® Iæ yoõ dï noô havå M80¬ SLÒ oò ZAS¬ yoõ caî �     geô á copù oæ thå compileä listinç filå froí mù Ú-Node®    Yoõ musô havå á printeò capablå oæ printinç á minimuí oæ 12± columns® �     Mosô 8° columî doô-matriø machineó caî bå seô tï "condensed¢ modå anä �     wilì worë fine® Thå filå caî bå printeä witè PIÐ anä haó imbeddeä ^Ì �     (Controì-L© aô appropriatå placeó tï causå á Forí Feeä (ne÷ page)® Thå �     sourcå codå foò thió filå ió alsï availablå oî mù Ú-Node¬ Accesó �     Programminç anä PEÇ-3® Refeò tï youò printeò manuaì oò documentatioî oî �     PIÐ foò morå printinç details.     Onå morå poinô oæ interestº Somå assembleró displaù thå assembleä �     addresó aó iô ió actuallù storeä iî memory¬ lo÷ byte¬ theî higè byte® �     Thå SLÒ assembleró caî displaù iô botè ways® É choså tï sho÷ iô aó �     higè-bytå anä lo÷-byte¬ simplù becauså iô ió easieò tï read® M80¬ �     however¬ doeó jusô thå opposite.