Savia 84A brief description of the basic software, known as the monitor, was published together with construction instructions in the book Radioamatérské konstrukce 4 (Amateur Radio Constructions 4), published in 1990 by SNTL. First, a brief summary. Readiness to receive the following commands is indicated by display of the inscription SAVIA 84. Changing Memory ContentsAfter pressing the Ad (M) button, the message M0000 A1 will appear. Use the hexadecimal number buttons to enter the starting address. Confirm with the dA (=) button. The current contents of the selected memory cell will appear in the last two digits of the display. You can change the memory contents in the same way. Press dA (=) to move to the next address, press S to move to the previous address. An attempt to change the content outside the RAM area is indicated by the Er symbol. You can end the entry by pressing another function key (L, Br, Ad, R, Ex) Changing the Contents of RegistersAfter pressing the R button, the message rXXXX AF will appear, where the symbols XXXX represent the current contents of the register whose name is displayed on the right. The contents of the register can be changed by pressing hexadecimal digits. Confirming with dA (=) will move us to the next register in the AF, BC, DE, HL, SP series. You can exit by pressing any other function key. Setting BreakpointsAfter pressing the Br button, the message b0000 A1 prompts us to enter the address of the first breakpoint. After confirming with the dA button, the message b0000 A2 prompts you to enter the address of the second breakpoint, which you also confirm with the dA (=) button. The process automatically continues with the entry of the start address; see the following paragraph. Starting the User ProgramAfter pressing the Ex button, we are prompted with the message GXXXX, where the symbols XXXX represent a random or last used start address, or the address where the program was interrupted by a breakpoint. This can be changed by pressing hexadecimal digits. After pressing the dA (=) button, the character E will be displayed on the screen and the user program will be started. The following information is probably being published for the first time: BreakpointWhen the program is stopped at a breakpoint, ?XXXX BP is displayed, where XXXX represents the address of the current breakpoint. In this state, the monitor accepts all of the commands listed above. Monitor Variables
Character Encoding
Key Encoding
Available SubroutinesWhen writing our own programs, we can also use subroutines from the monitor ROM: 014Fh - Address Display: The contents of the HL register are stored in the variable in_addr and the display memory.1) 0160h - Data Display: The contents of register A are stored in the variable in_data and the display memory.1) 0179h - Wait: Only display is performed. The number of display cycles must be entered in register DE. 0188h - Clear Display: The character from register A is placed in the first segment from the left, the remaining segments are filled with spaces (turned off)1) 0196h - Wait for Key Press: While waiting, the display content is displayed. The code of the pressed key is returned in register A. The Z flag indicates the dA (=) key, the CY flag indicates a numeric key. 01FDh - Display: Performs display and keyboard handling. The CY flag indicates a pressed key. To display another memory area (custom text), it is possible to call from address 0200h. Then the HL register must contain the appropriate text address. For a readable display, it is necessary to call repeatedly. 1) For custom display, it is necessary to subsequently call subroutine 0196h or 01FDh. This English translation of the Savia 84 article from Malecky.cz is hosted on alex-j-lowry.github.io. |