Model T DocGarden

From Bitchin100 DocGarden
Jump to navigationJump to search

These pages are devoted to the Model T:

TRS-80 Model 100, Tandy Model 102, KC-85, NEC 8201A, NEC 8300, Olivetti M10, Tandy Model 200, and the WP-2

Community

The community gathers at Club100.org

Classic Article Repubs

We hope to republish one or more articles from the Golden Era of the Model T every month:

One-Liners

This is a collection of Microsoft BASIC programs that

  • Do something interesting or useful
  • With only a single line of code

One-liners are bite-sized computer programs on a human scale. You are encouraged to type them in manually (by hand) and study their operation.

Model 100/102 Compatible One-Liners

File-Transfer and Storage

We still use Model Ts today, so file transfer to/from desktop and modern laptops is an important issue. There are multiple alternatives, from simple text file transfers using TEXT, TELCOM, or BASIC, up to dedicated file transfer protocol client and servers.

Model T File Transfer

Model T Developer Reference

Articles on Model T programming topics

Model 100 LCD Progamming

Model T Software

Model T Hardware Hacks and Troubleshooting

Model T Hardware Projects


Other Topics

M100 LCD direct programming.

(John I have no idea how to add a file to the category, or how to edit a category...)

The LCD has 10 driver chips, which store graphics bits directly. The driver chip is the HD44102. I would recommend reading the datasheet for HD44102. Each driver chip controls a specific reqion of the LCD, as follows-

---------------------
| 0 | 1 | 2 | 3 | 4 |
---------------------
| 5 | 6 | 7 | 8 | 9 |
---------------------

Drivers 0-3 and 5-8 all drive 50 x 32 of dots each, while 4 and 9 only drive 40 x 32 dots.

(the unused dots in 4 and 9 represent some 'free ram' for use by programmers).

The dot content is updated by writing data to each of these chips. To select a driver for access, you must write a 1 to a specific bit on port B9 or BA.

LSB                            MSB
|      B9       |      BA       |
 0 1 2 3 4 5 6 7 8 9 X X X X X X

You must preserve bits 2-7 of BA at all times. You can select as many drives as you want at any one time.

Note - since the timer uses these ports, you must do your graphics updates with interrupts disabled, or your chip selects get modified. Once selected, you should update that driver within the same disabled interrupts window.

Rather than describe all the different things you can do with these driver chips, the simplest thing to do is describe the standard way to program them. They are pretty flexible parts, and the M100 does not really leverage the capabilities well. Hardware scroll is an example.

Each driver divides it's bit field into 4 banks, each bank representing one line of text on the screen. They run top 00 to bottom 11.

Port FE is the control port for the driver chip, and FF is the data port.

First, write the control byte to the driver, which specifies bank in bits 6 and 7, and then the column number in bits 0-5. Column number ranges from 0 to 49.

Control Port
LSB               MSB
|      FE          |
 0 1 2 3 4 5   6 7 
| column    | bank |   

Then, write the data for the selected column to port FF. I believe that the LSB represents the dot at the bottom of the column, while MSB is the dot at the top.

Those are the basics.


Model T Links

Rick Hanson's Club 100

Steve Adolph's Remem Site

Chris Osburn's Calculating Instruments

Ken Pettit's Model T Projects