Wednesday, July 9, 2025

Computer intro 2 - Lets make it better

I believe I have mentioned several times that Odyssey 2's "Computer Intro!" was one of my first programming experiences. Before I was coding BASIC on and Extended BASIC on the TI-99/4A, I was pecking away on the Odyssey 2 keyboard.

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 00

No 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

Dice Roller for TI-95

 I have published my first version of the TI-95 dice roller: http://mrgibson.com/dd/dragon-n-dice-ti-95-v1-0.txt A couple of screenshots: