Showing posts with label Tech. Show all posts
Showing posts with label Tech. Show all posts

Saturday, March 28, 2026

80s BASIC



I'm currently reprogramming a game I did before called Seven/Eleven. The game looked a little dull so I'm remaking all the interfaces. This made me realize how much I enjoy some 80s BASICs over others.

Here is a list of my Favorite 80's BASICs that I use fairly regular, from favorite to least favorite.

1 TI-99 Extended BASIC

2 TI-99 BASIC

3 Tandy Extended Color BASIC 2.0

4 Tandy Extended Color BASIC 1.1

5 Tandy BASIC

6 Commodore BASIC V2

7 Atari BASIC

8 AppleSoft II BASIC

I should note that my first exposure to Tandy BASIC and Apple II BASIC was mostly as a teenager through public schools.

Why TI at the top? Most control in the easiest way. I really think if most companies and found someone better than Microsoft to develop their BASIC language, they could have been much better. What I like about Tandy and Commodore is that what ever they lack in BASIC features, they are quite hackable. It is possible to get to modes the physical computer could do that were not addressed in the BASIC environment.  Really, that is why Microsoft had the PEEK and POKE commands because there was so much they did not know how to translate into BASIC usefully.  And the way Microsoft used their graphics modes were so over complicated and stupid.  Really just limiting.  For the most part, programmers that understood the hardware capabilities and used assembler/machine language were really able to make the most of these computers.

It is not like TI-99 Extended BASIC was perfect as there were feature that were not addressed until the late 80s and early 90s with Super Extended BASIC by third party developers - but by that time most of the world had moved on from TI-99.  TI-99 popularity now is just mainly from people that remember fondly how much they enjoyed using TI-99 in the late 70s and early 80s.

Sadly the two most fun computers  TI and Tandy were the two most physically limiting computers.  TI-only made a 32K memory expansion for their computer that was shipped out with 16k.  TI also made their computers slower than need be by running code in video memory.  Tandy did not provide a dedicated 3 voice or better sound chip and a video processing chip that only handled 9 colors on both the CoCo 1 and 2. 

TI did make up in other areas though.  Best built in sprite capabilities, 16-bit processor, and S-Video output.  Tandy did make up for it with the easiest, but powerful, graphics and music programming commands. With some hacking past Microsoft's made limitations, graphically Tandy could put out some nice graphics with only 9 colors. 

Monday, July 7, 2025

TMS9900 CPU

Studying the TMS9900 processor of the 70s and 80s, I have learned that it was capable of Multi-user preemptive multiprocessing. This is very sad that I'm not aware of this every being utilized with the TI-99/4A computer. This can be done with workplace register pointers that can be handled by the CPU, but stored in memory.





Because we are using pointer, this can be changed on the fly. Because of the interrupt processes, we can go back and forth between tasks.






Tuesday, July 1, 2025

Texas Instruments Computer history

I have created a page that is a brief overview of Texas Instruments' Computer history.

This is the timeline of TI mini computers, TI desktop computers/home computers, and TI handheld computers.

 https://mrgibson.com/TI/ti-history.php



Saturday, June 21, 2025

My TI-99 machines.

This is just a show and tell post.

This is my two TI-99/4As - my 2nd and my 3rd side by side.


TI #3 On my primary Dell monitor using TI's S-Video/Standard Audio to RCA to HDMI


TI #3


TI #2 beside my file/audio file server


My video switching system between my computers.






Testing math functionality against other retro computers like Atari, Apple, Commodore, and IBM


My favorite game controller for the TI-99 is Sega's Genesis




TI #2 displaying a randomizer application on my TV


TI #2 displaying a different randomizer on my TV


TI #2 displaying on my TV.


My TI #2

Friday, June 20, 2025

TI-99 32K expansion

The most common TI-99/4A 32K RAM chip is the 28 pin AS6C62256 RAM chip.  Any solution I look at will likely use this chip.
The exact spec is 32k Ram AS6C62256-55PCN 28DIP 0.6″.  It is a 32kx8 memory array chip which was very common, but not when the TI-99/4A was released.  Texas Instruments used a totally different configuration.  Below has the pin description. 

All the additional pieces you will need for a TIPI setup. 

SN74HCT245N IC TXRX NON-INVERT 5.5V 20DIP
CD74HCT21E IC GATE AND 2CH 4-INP 14DIP
SN74HCT138N IC DECODER/DEMUX 1X3:8 16DIP
2N3904BU Transistor NPN 40V 0.2A TO92-3

ICS-314-T 0.3″ IC SOCKET, DIP, 14P 2.54MM
ICS-316-T 0.3″ IC SOCKET, DIP, 16P 2.54MM
ICS-320-T 0.3″ IC SOCKET, DIP, 20P 2.54MM
ICS-628-T 0.6″ IC SOCKET, DIP, 28P 2.54MM

CONN EDGE DUAL FMALE 44POS 0.100 395-044-524-202 (Requires Modification)

44 PIN (Two Row 22PIN 2.54mm Pin Header) (Made with Smaller pieces)

3 PIN 2.54mm Pin Header (For Power Jumper)

2.54mm Jumper

DC 2.1×5.5mm power jack

3mm RED LED

680 Ohm 1/4W Resistor

2 ) 1k Ohm 1/4W Resistors

10k Ohm 1/4W Resistor

4 ) 0.1uf (104) capacitors

2.54mm Round Female Socket Pin Header Strip (88Pins are required)

Tuesday, December 3, 2024

Less than a week

Less than a week before I get my new office/computer play ground (if you will).
I will have new cabinets, desk, storage, wire management, conduit, network switches, monitor switches, USB hubs and switches, ect....

I'm becoming quite familiar with the Magnavox Odyssey2 computer and realizing it is well within my means to create software for it now. I'm hoping to create one of the best manuals for this also.

http://mrgibson.com/

Wednesday, November 27, 2024

joystick programming with Odyssey2

I wrote a couple of examples of joystick programming with Odyssey2's Computer Intro! cart.
I also added this function to my o2 programming manual for Computer Intro!
http://mrgibson.com/o2man.php
Super simple version Joystick test
STEP HEX  Assembler Remarks
00   6B   LDV.B.05  ;sets display position with Register B
01   05             ;loading 05 for position to register B
02   0A             ;grab joystick status and save to accumulator
03   B1   UNP.1     ;Unpack to Register 1 and 2
04   C1   OUT.1
05   C2   OUT.2
06   00   NOP       ;No Operation, to cut on flicker
07   12   GTO.00    ;Goto step 00
08   00

shows characters for values of UP, Down, and Center
STEP HEX  Assembler Remarks
                    ;Set our fixed values
00   61   LDV.1.FF  ;set register 1 with value
01   FF             ;FF for center stick
02   62   LDV.2.FE  ;set register 2 with value
03   FE             ;FE for stick up
04   63   LDV.3.FB  ;set register 3 with value
05   FB             ;FB for stick down 
06   6D   LDV.D.23  ;set register D with value
07   23             ;23 Hex for C
08   6E   LDV.E.15  ;set register E with value
09   15             ;15 Hex for U
10   6F   LDV.F.1A  ;set register F with value
11   1A             ;Hex for D
                    ;this is our loop start, always resetting to position 5
12   6B   LDV.B.05  ;sets display position with Register B
13   05             ;loading 05 for position to register B
14   0A             ;grab joystick status and save to accumulator
15   31   BEQ.1.23  ;check if Accumulator and Register 1 are equal
16   23
17   32   BEQ.2.26  ;check if Accumulator and Register 2 are equal
18   26
19   33   BEQ.3.29  ;check if Accumulator and Register 1 are equal
20   29
21   12   GTO.12
22   12             ;Goto/loop back to step 12
23   CD   OUT.D     ;Display C for center from Register D 
24   12   GTO.12    ;set goto
25   12             ;Goto/loop back to step 12
26   CE   OUT.E     ;Display U for up from Register E
27   12   GTO.12    ;set goto
28   12             ;Goto/loop back to step 12
29   CF   OUT.E     ;Display D for down from Register F
30   12   GTO.12    ;set goto
31   12             ;Goto/loop back to step 12

Wednesday, November 6, 2024

More on 80s math processing.



I can see why Atari was so frustrated in the 80s. They were making better 8-bit and 16-bit computers than IBM and Apple for a whole lot less.



How were they better? First lets look at simple number storage in memory.

Here is IBM with a 16-bit Intel processor with Microsoft's GW-BASIC. This would have been standard with the 8086, 286, 386 processors.






With IBM, there are two interesting things going on. First, only 8 places after the decimal point is stored for processing and display.  Secondly, even in the code, the hard coded numbers past the 17th spot are cut off.


Next, I tried with the TI-99/4A. I had gotten some pretty good responses with math on this computer. The TI-99 has a 16-bit TMS9900 CPU also (the first home computer to ever to be 16-bit)




>LIST                         
 100 TEST=.123456789123456789 
 200 PRINT TEST               
>RUN                          
  .1234567891                 
  ** DONE **                  

The TI-99/4A has neither problem the IBM has.  All numbers are stored and the TI-99 display 10 digits behind the decimal.

With Atari's 8-bit MOSS 6802 CPU, we get a little bit better response than the IBM, but not much.
The better is we get 9 decimal places to work with instead of IBM's 8. Unfortunately, the hard coded value also get's changed:





100 TEST=.1234567891123456789    
200 PRINT TEST                   
RUN                              
0.123456789                      
                                 
READY                            
LIST                             
100 TEST=0.123456789             
200 PRINT TEST                   
                                 
READY                            
One additional decimal place (9) and the 0 before the decimal.

I would love to see how the Atari ST 520 , Apple Mac, or the Apple IIe stacked up against these three.

But back to the TI-99/4A.  Why did it do better than the 16 bit intel IBM computers and the 8-bit Atari computers?

Key points about the TI-99/4A's math capabilities:

First, it had an advanced (for it's time) 16-bit CPU for processing. Unlike most other home computers at the time which were 8-bit, the TI-99/4A's 16-bit processor allowed for more complex calculations with greater precision. But it still beat the x86 (that was also a 16-bit CPU).  

Although I would love to, I have not compared the TI-99/4A to computers that used the 6800 CPU.

But the TI-99/4A had another trick, The TI-99 computers had a dedicated floating-point unit. The TI-99/4A had a dedicated hardware component for handling floating-point operations, which significantly improved the speed and accuracy of mathematical calculations. 

Optimized floating-point format:
The way the TI-99/4A represented floating-point numbers internally was specifically designed for efficiency, further enhancing its mathematical performance. 


Monday, November 4, 2024

Program a SS and Compare BASICs (and stuff)

I have changed my mind.  My next project is going to be a multiplatform spreadsheet in BASIC.  This would not be the first time I have programmed a spreadsheet, but the last time I programmed it in C for Windows and Linux.  This time it will see how well I can make a SS for older computers like Atari 800, TI-99/4A, and old DOS computers.

First to see what I am dealing with, I did a math accuracy test:

100 PRINT ATN(5)
RUN

TI-99/4A TI BASIC         displays 1.373400767
Atari 400/800/800XL/130XE displays 1.37340076
IBM PC GW-BASIC/PC-BASIC  displays 1.373401



My guess is Microsoft purposely chose this accuracy level to promote paid products.

The cable I purchased has worked really well. still factory sealed, from 1979! Just opened it, looks, feels, and smells like brand new! I dumped a hundred TI-99/4A WAV files on my virtual tape drive and it is great!



So another successful experiment with my TI-99/4A 


Sunday, November 3, 2024

BASIC Manuals

Now that I have both my Atari Computer and My Texas Instruments Computer hooked up to the KVM system, I plan on doing even more programming on them this winter.



So this weekend, I started writing two BASIC programming manuals, one for each system.

For the TI-99/4A
http://mrgibson.com/TI/Basic.php

For the Atari 800/800XL/800XE
http://mrgibson.com/atari/atari_basic.php

I got a lot done with both manuals, and have a lot of useful information, but neither completed.

As soon as I have my PEB completed for my TI-99/4A, I plan on loading a lot of BASIC games on my website in both BASIC text and WAV file audio.

My next programming project will be to complete that slots program for the Atari computers.

Thursday, October 31, 2024

This is my [virtual] PEB and tape drive for my TI-99/4A



This dusty looking computer is my [virtual] PEB and tape drive for my TI-99/4A
I thought about getting my self a PEB and tape drive for my TI-99/4A and then I thought to myself, "why?". Both of those things really suck. People put up with those because we had to back then. So, I'm using a PC for those purposes, and it is soooo much better!

My next few posts will be on this topic.


Monday, October 28, 2024

game controller geeking-out on TI

I spent a good chunk of time this weekend continuing working on the game controller stuff for the TI-99/4A. I built and tested several adapters. I then documented everything on my website here:

http://mrgibson.com/TI/CX30.php

Honestly, the Sega Genesis controller felt and responded the best on the TI-99.

The Atari Video Touch Pad is the least useful device. Because of the build of the internal circuit and how TI-99/4A reads joystick input - As far as I can tell, the best you can do with the device is get 6 of the 12 button to work on the TI-99/4A. Even at that, 3 buttons read at/on joystick 1 and 3 buttons read at/on joystick #2.  And that is only after building an adapter to redirect to different pins.


So for the time being, I'm considering this project done.


Wednesday, October 23, 2024

Non TI-99 game controllers on TI-99 part III

I have found and purchased a product that is going to make testing all the different DB9 (9-pin) game controllers on the TI-99/4A

With screw tightened connections, wire can be swapped easily to try different connections.  There are more condensed versions of these plugs, but for testing purposes only, I think this will work great.  

Additionally I now have the pinout of the Colecovision Flashback controllers. 

Pin  Use          
1    Down
3    Common/Ground
4    Up
8    Right
9    Left




It will take a while to get these parts to me via mail, so I'll pause this topic here.

Non TI-99 game controllers on TI-99 part II

After my "experiments" yesterday, I would like to make two adapters. One adapter would allow an
Atari CX-30 and Sega Genesis. The second Adapter would be fore the Atari Video Touch Pad. It is possible, only one would need to be made for all three of these.
TI-99 41 Joystick port
     ___________
    ( 1 2 3 4 5 )
     \ 6 7 8 9 /
# Use \_______/
- -------
1 not used
2 joystick 2 ground / common
3 Up
4 Fire button pressed
5 Left
6 not used
7 joystick 1 ground / common
8 Down
9 Right


Atari 2600 CX-30 Joystick port
     ___________
    ( 1 2 3 4 5 )
     \ 6 7 8 9 /
# Use \_______/
- -------
1 Up
2 Down
3 Left
4 Right
5 Paddle B
6 Trigger
7 +5 volts
8 ground / common
9 Paddle A


Sega Genesis Joystick port
     ___________
    ( 1 2 3 4 5 )
     \ 6 7 8 9 /
# Use \_______/
- -------
1 Up
2 Down
3 Left
4 Right
5 +5 volts
6 Button C / Trigger
7 ground / common
8 Select Button
9 Button B and A

TI-99 has one joystick port and the Atari 2600 has two joystick ports.

With the Atari 2600, on either controller, if  pin 8 to pin 4 is a closed circuit, the joystick is pushed Right.

With TI-99/4A if joystick #1 has a closed circuit with pin 7 to pin 9, the joystick #1 is pushed Right.

So from our experiments yesterday, it makes sense that only down worked for the CX-30 and genesis as this is the only mapping that is the same (except reversed) and had a closed circuit. 

So with this information, I should be able to make an adapter that would allow me to use two Atari CX-30 Joysticks or genesis controllers to the one TI-99/4A port.  But the easier (first option) would make 1 joy to 1 port for testing the concept.

Thinking though this, it looks like I would need to create a separate adapter for the touch pad.  By the mapping above, Button five would have done pin 2 and pin 5 for button 3 and pin 2 and pin 9 for button 4.  So I'm going to concentrate first on making a 1:1 CX-30 to TI-99 joystick port adapter.


Tuesday, October 22, 2024

Non-TI game controllers on a TI (no special adapters) - Part I


This post is about testing controllers on the TI-99/4A without adapters or special hardware. How am I testing? I wrote a super simple joystick read:

100 call joyst(1,x,y)
200 print x,y
300 goto 100

Next change the 1 to a 2 to test for the other controller.

1st, what about the Atari Video Touch pad?

Controller #1... nothing appears to send a valid signal. How about controller #2? With controller #2, two (2) buttons out of the 6 work. Button 4 sends the left control input and Button 5 sends the right control input. So mostly unusable, but if you wanted to make a game that only used left and right set for controller #2... it is something.

How about the Atari Joystick (original CX-30)?


Controller #1 reads nothing and Controller #2 only reads and sends out the down position. That is even worse and pretty much unusable.

Next I tried the 6 button Sega Genesis game pad. How did it do? Exactly the same as the Atari CX joystick. Only down on the controller #2 input.  Worthless. 



Next I tried the new Coleco controllers for the Colecovision Flashback. Controller 1 has two (2) buttons that worked and Controller 2 only had one. A failure.

No worries, I have more to test!
Next I have a Chinese NES knock off controller.
Controller #1 - nothing!
Controller #2 - nothing!

So next I'm going to try the Atari 7800 Pro controller (US). Don't have high hopes for this.


the 7800 controller was STRANGE.  It actually changed the mapping of the keyboard when I plugged it in!!!  Also, no inputs were registered.

Thursday, July 4, 2024

TI-99/4A tips and tricks

How to print memory:

at TI-BASIC command line, type:
1 m=m+8
2 gosub 1
run
The screen turns green and runs for a bit until the following error:
* memory full in 1 
Now type:
print m

-----------------------------------

Editing Tip
Using the delete function
Since the TI-99/4A doesn't have a backspace or delete key, you can hold 
down Function and press Cursor Left by pressing Function S. 

Then, continue holding down Function and press Delete (DEL) to delete the 
character to the left of the cursor.

Friday, June 14, 2024

The TI-99/4A

Computer      TI-99/4A
Manufacturer  Texas Instruments

Media         ROM, cartridge, cassette, floppy disk

CPU           TMS9900 @ 3 MHz 16-bit

Memory        16 KB RAM default - can add 32k memory expansion
              256 bytes scratchpad RAM
              Despite having a 16-bit processor, standard TI can not use 64K or more of memory
              There are alterations to the TI that allow this.

Graphics      TMS9918A, TMS9918ANL 

Sound         TMS9919, later SN94624

Friday, March 29, 2024

Now that I have the 400

 Now that I have the Atari THE400 mini, overall I am pleased with it.  Playing Time Pilot allows me to tweak the game that Altirra was not to get the best experience for my monitor.  The fact that it keeps the setting separate for each game is awesome and remember when you go back to each game.

The CX-stick was a little frustrating for me playing Donkey Kong. Mostly with the use of ladders. But possibly a me issue.  With Altirra, I was playing using the keyboard.  On the other hand I play a lot of Berzerk on the 2600 with the standard CX Joystick.  Again, the stick did not give me the same play. The Atari computer line Berzerk appears to be a much better version of the game than the 2600 (which is great), but if I'm having trouble aiming my shots, it is a little frustrating.  With those complaints out of the way the CX-stick makes a great control device for navigating the system

I tried to use the PlayStation Mini USB controller, but did not have much luck.  I also tried to use the Hyperkin Trooper 2 Premium USB joystick, also not much luck.

I noticed that this is running Linux with a nice shell that allows you to run the 6502 Atari platform.  I think if we give it enough time, the community will find great ways to make the most out of this device.

One day after the order opening and my serial # is 2369


Wednesday, March 27, 2024

Atari THE400 mini secrets

1 - There are more than 25 games installed

2 - more hardware secret with controllers

So how many easter eggs will people find?  How long till this is completely hacked?

By the way, tomorrow is opening day!




Ford Racing Makes History with First Overall Victory and Podium Sweep at 2026 Rebelle Rally

Ford Racing Makes History with First Overall Victory and Podium Sweep at 2026 Rebelle Rally 4x4 Class Standings (Top Finishers) Rank ...