MONITOR.ASM Version 2.3 Gary M. Morin MTX Corp. 941 Ironwood #273 Rochester, MI 48063 INTRODUCTION MONITOҠ i syste monito progra designe t si u i hig memor providin facilitie fo performin basi syste functions Thes堠 includ memor manipulation Subroutin execution He math por inpu an output Th progra use th monito progra presente i Ala R Miller' 8080/Z8 Assembl Language Technique fo Improve Programmin a bas an the add th facilitie t mak i practica a programmin tool Thes includ hel facility redirectio o outpu t printe an gentl exit I include man o th facilitie o DDԠ o SI bu i smal an ca b allowe t resid i memor durin th whol debuggin process Sinc i ha it ow I/ driver i work wel whe messin wit CP/ itself Thi progra als work ver wel wit th facilitie o ZCP an it JUM function programme ca jum bac an fort betwee th monito an th operatin syste usin th facilitie o both Th tota progra lengt whe installe i hig memor les tha 2 an ca easil b modifie du t it modula construction. INSTALLATION Versio 2. i designe t ru o Nort Sta Horizo wit fre "window o memor abov th memor mappe dis controlle a EC00h Fo thi typ o machin yo ca jus assembl th cod an ru it I yo desir th monito t ru belo CC o abov FDO yo wil hav t relocat th fina addresse i th prope places Yo wil als hav t assig th correc inpu an outpu port an th statu bytes. Remembe tha program lik MBASI us al o th memor u t FDO unles specificall tol t d otherwise The wil kil an progra belo CC i yo don' protec it. EXECUTION Th monito i evoke initiall b typing: MONITOR fro tha poin i yo hav ZCP installe yo simpl nee t 1 jum t th runnin addres o th code. JUMP F800 to return to CP/M use the ^C or B commands. COMMANDS The following commands are available in the monitor: ASCII LOAD, DUMP -->A[ L D S ] [1ST ADR] [2ND ADR] or SEARCH BACK GENTLY -->B CALL SUBROUTINE -->C[ADR] DUMP MEMORY -->D[1ST ADR] [2ND ADR] FILL MEMORY -->F[1ST ADR] [2ND ADR] [HEX BYTE] -->F[1ST ADR] [2ND ADR] ''[ASCII] GO ANYWHERE -->G[ADR] HEX MATH + - -->H[1ST HEX] [2ND HEX] INPUT FROM PORT -->I[PORT NUMBER] LOAD MEMORY -->L[START ADR] ADR BYTE [NEW BYTE] ^X HALT MOVE MEMORY -->M[1ST ADR] [2ND ADR] [NEW START] OUTPUT TO PORT -->O[PORT NUMBER] [BYTE] PRINTER TOGGLE -->P REPLACE MEMORY -->R[1ST ADR] [2ND ADR] [TARGET] [BYTE] SEARCH FOR BYTE -->S[1ST ADR] [2ND ADR] [BYTE1] [BYTE2] COMMAND TABLE -->T COMPARE BLOCKS -->V[1ST ADR] [2ND ADR] [1ST ADR BLOCK2] DISP STACK POINT -->X ASCII LOAD or DUMP Typing AL transforms the Load command into an ASCII Input. see LOAD Typing AD transforms the Dump command into an ASCII dump. see DUMP Typing AS transforms the Search command into a search for one or two ASCII characters. see SEARCH BACK GENTLY Typing B will return you to the command level of CP/M. CALL SUBROUTINE Typin à followe b a addres wil cal subroutin startin a tha address Contro i returne t th monitor. Example: CF800 DUMP MEMORY Typin Ġ followe b tw addresse wil dum th memor 2 between those addresses. Example: D100 200 AD100 200 FILL MEMORY Typin followe b tw addresse an eithe he byt o a ASCI characte i singl quote wil fil th memor bloc defined by the addresses with the indicated byte. Example: F100 200 FF FF000 F800 '7' GO ANYWHERE Typin followe b a addres cause a unconditiona branch to the code at that location. Example: G100 HEX MATH + - Typin followe b tw hexadecima number wil generat two values, the sum and the difference. Example: H3401 5677 INPUT FROM PORT Typin ɠ followe b por numbe wil displa character retrieved from that port on the screen Example: I02 LOAD MEMORY Typin followe b a addres wil star displayin sequenc o addresse an th byte the contain Afte eac byt i displaye yo ma loa tha addres wit ne byt by typing that byte in. To terminate the process type ^X. Example: L500 500 6F 70 501 4E ^X AL This goes into memory including the cr lf ^X MOVE MEMORY Typin followe b thre addresse wil mov th bloc define b th firs tw addresse t th bloc beginnin a 3 the third address. Example: M100 200 A00 OUTPUT TO PORT Typin Ϡ followe b por numbe an byt wil sen the indicated byte out the port. Example: O04 1A PRINTER TOGGLE Typing P will toggle the list device REPLACE MEMORY Typin Ҡ followe b tw addresse targe byt an replacemen byt wil substitut al th occurence o th target between the two addresses with the replacement byte. Example: R100 200 1A 1B SEARCH FOR BYTE Typin followe b tw addresse an on o tw byte wil displa th th addres o th firs occurenc o tha byte which is located between the two addresses. Example: S500 A000 1D S100 300 1D 1F AS100 500 AB COMMAND TABLE Typin Ԡ wil generat cop o th comman hel fil o the user's terminal COMPARE BLOCKS Typin followe b thre addresse wil displa o th scree difference betwee tw block o memor define b th addresses Th firs tw addresse defin th bas bloc th thir addres define th beginnin o th bloc t b compared. Example: V100 200 FF0 1000 DISP STACK POINT Typing X will display the stack pointer on the screen DISCLAIMER Th MT Coprporatio doe no suppor thi cod no mak an guarante a t th suitabilit o applicabilit o thi progra 4 fo particula applicatio o compute system. 5  .