Recently, I have created an extended "Computer Intro!" manual that that has functions never documented in the original manual.
https://mrgibson.com/o2man.php
One thing that bothered me the most, or should I say, disappointed me the most when I was young, was that output being limited to one line on the screen.
Output placement was implemented by specifying the position in register B starting with position 00.
Example:
00 6B LDV.B.00 ;Load display register B with position 00No matter what value you entered into the position field, you were limited to one line of text, numbers, and special charactrs.
This is where if they had expanded this, this would have been a better and more entertaining programming environment.
Given that valid input could range from 00 to FF, in theory, that would have given us 256 different positions on the screen. Where 00 could have been the upper left corner. I'm going to try to reverse engineer the code and try to see if this functionality can be added.
Although it is true that in this environment there are 16 Registers, some have special purposes. Like Register B and Register C. So here is an example of the limits of text programming on "Computer Intro!" that uses Register B and C.
Example:
Odyssey2 Computer Intro! Assembler has multiple ways of displaying the text "Hello World", one of the better methods is using the MOV instruction. 00 6B LDV.B.00 ;Load display register B with position 00 01 00 02 60 LDV.0.00 ;load register 0 with NULL 03 00 04 6C LDV.C.12 ;Load data space register C with step 12 05 12 06 09 MOV ;Move data space to accumulator 07 30 BEQ.0.24 ;If NULL go to end 08 24 09 0B OTA ;Display accumulator 10 12 GTO.06 ;go back to move at step 06 11 06 12 1D ;H Start of data space 13 12 ;E 14 0E ;L 15 0E ;L 16 17 ;O 17 0C ;space 18 11 ;W 19 17 ;O 20 13 ;R 21 0E ;L 22 1A ;D 23 00 ;NULL end of string 24 00 NOP

No comments:
Post a Comment