In the previous post we learned how to launch the computer in full configuration. Lets see how it works and what commands MONITOR-F has.
As you remember, Monitor-F can be launched from address F800H using the command 7 F800. MONITOR-F setups stack pointer, initialise some constants and variables in memory and makes keyboard initialisation.
After that it displays «UT-88» on screen (it is “ЮТ-88” on Russian). An arrow and coursor on screen means that the computer waits a commant to be entered. MONITOR-F commands are in the table below. They are all consist of one letter with hex parameters divided by commas. «ВК» button (“Enter”) is pressed at the end.
|D||ADR1, ADR2||Display memory range in hex format|
|L||ADR1, ADR2||Display memory range in character format|
|K||ADR1, ADR2||Calculate comtrol sum of memory range|
|F||ADR1, ADR2, Const||Write a constant to each memory cell of the range|
|C||ADR1, ADR2, ADR3||Two memory ranges comparison|
|T||ADR1, ADR2, ADR3||Copy a memory range to another address|
|S||ADR1, ADR2, Byte||Search a byte in a memory range|
|M||ADR||Display and change a memory cell|
|V||–||Change a constant of tape reading|
|G||ADR||Launch a program from the address|
|W||–||Launch a program from C000H|
|X||–||Display and change the CPU registers|
|O||ADR1, ADR2, Const||Write the range to tape|
|I||ADR, Const||Read data from a tape|
|B||–||Show time on 7-segment indicators of minimal configuration|
|R||ADR1, ADR2, ADR3||Read data from ROM range ADR1, ADR2 to RAM starting from ADRЗ|
Command «D» displays a memory range in two digit format as a table. Press “D”, start address, “,” (comma), end address and «ВК» (“Enter”).
Command «L» is similar to the previous one but it shows characters instead. If a code doesn’t have corresponding character, “.” (dot) is displayed.
Command «М» allows to show and change one or several memory cells. When the command and address have been entered, two digit hex number is shown which is data from the memory cell. If «ВК» is pressed than cell won’t be changed. It is possible to type in another two digit number instead and it will replace the existing one after «ВК» is pressed. To exit the command “.” (dot) can be pressed.
Command «F» writes the same code to each cell of the range. Press “F”, start address, “,” (comma), end address, “,” (comma), two digit hex number to be written to the range and «ВК» button.
Command «Т» copies a memory range to another address. Start of the range, end of the range and start address of the copy all divided by comma are typed in after the command. «ВК» button has to be pressed at the end as usual.
Command «С» compares two memory ranges. If data is different an address from the first range is displayed as well as data from mismatched cells.
Command «S» searches a byte in the memory range. As a result the list of addresses which contain the byte will be displayed.
Command «К» calculates control sum of the range. The sum is displayed as four digit number.
Command «О» is used to write data to the tape. The constant in parameters is for output speed. It is optional paramter and can be ignored. In this case a previous speed will be used. If it is the first tape output command after reset, then the standard value that is stored in cell F7D0H is used. Please make sure that a tape recorder is on before you press «ВК» button at the end of the command. When output is completed, the start and end addresses are displayed as well as control sum of the range.
Command «V» is used to calibrate input speed from a tape. Turn on tape recorder to play and press «ВК» after the command as soon as a program starts. A measured constant wil be displayed and recorded to cell F7CFH.
MONITOR-F, as well as MONITOR-0, can link program executions to real time clock. Switch SW on DE1 board needs to be turned on for this. There are two modes in case of simultanious use of both monitors. The first mode uses MONITOR-0. Clock setup straight after the computer is turned on. MONITOR-F is launched after that. Command “B” can be used to display current time on 7-segment indicators which is stored in cells C3FDH, C3FEH, C3FFH. The second mode uses only MONITOR-F clock subroutine. In this case current time is stored in cells F6FDH—seconds, F6FEH—minutes, F6FFH — hours. To launch the subroutine in MONITOR-F clock needs to be checked in MONITOR-0 before switching to full configuration. Then in MONITOR-F the following codes need to be loaded with command “M”: C000H—F3H, С001Н—СЗН, С002Н—00Н, С003Н—F8H, С038Н—СЗН, С039Н—С1Н, С0ЗАН—FFH, F6FDH—00Н (seconds), F6FEH—(minutes), F6FFH—(hours). Then switch RAM from С000—C3FFH to 0000—03FFH, turning off MONITOR-0 with SW. Then “RESET” button needs to be pressed which will run real-time clock in full configuration.
But what happenes if we try to read or write data from/to a tape when timer interrupts are on (SW)? MONITOR-0 commands «9» and «А» for operation with tape need to be used with care, because MONITOR-0 doesn’t turn it off during these operations which can lead to errors. So, it is better to turn it off manually by SW before these operations. MONITOR-F has an ability to turn off timer interrupts when commands «O» and «I» are executed but it leads to real time clock distortions. They can be corrected by use of “M” command after each tape operation.
Be aware, that tape output format in MONITOR-0 is different from it in MONITOR-F, as well as control sum calculation method.
MONITOR-F also uses LINE OUT jack to produce a sound for each pressed button. You can connect a headphones to the jack to hear them. But, please, be careful – the sound is quite loud. It is better to use a headphones with built in volume control.
There was an operation system “UT-88” for this computer published in one of the magazine issues, but it wasn’t popular, because the listing contained some errors. It can be downloaded here: OS UT-88.
CP/M, that was ported to the computer, was much popular because of amount of programs created for it.
Great! Lets launch this operation system on this computer. Please wait for my next post. See ya!