Jump to content
IGNORED

TI professional computer (not ti-99) for now


Recommended Posts

The rundown on my 2 systems:

 

Both motherboards work (64k ram)

Onboard floppy controller works fine.

 

Both video cards work

Only 1 monitor works 

 

There is only 1 expansion card(198k) 

 

There is a single parallel card

 

There is 1 only I/O/clock/RAM card with serial port.

Features 198K rampack board, verified working 

Clock is not functioning (corrosion and missing traces on board). Fixable?

 

There are 2 Winchester controller cards, functioning 

 

There are 2 MFM drives.

1 spins up and down, not working correctly.

1 has corrupted fat1,fat 2 that I can't seem to correct.

 

2 serial keyboard's 

One keyboard has one sticky key once in a while at the F1 position (I'm sure this needs a cleaning),

 

The other keyboard receives an error as soon as the computer boots. Can't find any sticking keys on it. This sounds more of a hardware issue.

 

There are two floppy drives 

One needed cleaning and it's working fine 

 

The other barely spins if it's spins at all.

 

Regarding the monitor that doesn't seem to get video:

 

It gets a red power light on the front panel and the side switch turns it off and on. 

But it's not getting high voltage on the board, only the initial heat lamp glows on the base of the filament tube.

Flyback issues?

 

The monitor cases are very very fragile. 

If you ever go to handle these be sure to be extra extra careful. 

 

The cases for the computer are extremely heavy and solid. 

One of my computers had a distinct cigarette smoke smell to it, I was able to clean each chip and the circuit board using a lot of q-tips and alcohol and getting the black off of the boards to where now there's no smell when you put your nose the next day..

I'm glad I didn't kill any parts while doing that sometimes doing that kind of crap you end up killing stuff,  but it works in my case today. 

I didn't touch any of the cards that way though, as they looked okay and I didn't smell anything on them for some weird reason. 

 

I also pulled apart the power supplies and cleaned them along with the fan that sits between the case and power supply. 

 

So all in all I'm pretty damn lucky to have what I got working.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • Like 2
Link to comment
Share on other sites

I don't know the system quite Good enough to be able to use ms basic via peek, poke and pixel placement routines.

 

MS basic does not have an accept at routine,  but if I'm able to place a value in the memory to change the cursor location then I can create that in basic. 

I played with some color combinations, this is stuff that's not in the manual. 

 

IMG_20240723_195105247_HDR.jpg

IMG_20240723_194943326.jpg

  • Like 1
Link to comment
Share on other sites

Posted (edited)

It's going to take somebody smarter than me to figure the peeks and pokes for my cursor location changes id like to do using a basic program.

So I included a couple of manuals

In the MS basic manual there's very little information about how to use peek and poke, but it's enough to know how to use the command but there are no illustrations about what The addresses would be for the screen..

 

In the 8080 assembly it does talk about the addresses and how to locate a byte at a screen location. But I couldn't figure out how I would convert that into a basic command. 

I know that once I understand it for basic I'd be able to use it in forth too, or vice versa.

8080 Programmers Manual.pdf 2223216-0001_TI_PC_TechRef_May_1984.pdf BASIC-80_MBASIC_Reference_Manual_text.pdf

Edited by GDMike
  • Like 1
Link to comment
Share on other sites

Posted (edited)

Here's a snippet of the only information I could find regarding cursor location. 

So I would need two things answered. 

What is the address that holds the two values and what does that format look like and how do you address it, I mean what does the syntax look like in basic?

 

I'm going to try out setting DH  and DL variables and seeing if poke will accept the syntax.

Screenshot_20240724-074141.png

Edited by GDMike
  • Like 1
Link to comment
Share on other sites

So in the IBM PC this could be done in the early days by calling code in the BIOS ROM.   This was done with software interrupt 17 if I recall correctly. 

 

The other way was to call the operation with the DOS version and that was software interrupt 21. (software interrupt was a weird intel name for a "call" that saved things like a hardware interrrupt.)

 

So the way it was done was load the arguments into the correct register(s) and the do instruction  INT 21   or INT 17. 

From the manual info you would X in register DH  (D high)  and Y in DL ( D low)  and call one of those interrupts depending on what that section of the manual is descriibing (DOS or BIOS)

 

One way to see some code would be to find this function in F83. :)  All the source code is there.

At-XY is the modern standard name but back then it code GOTOXY or anything else the implementor liked. 

Check the F83 dos for cursor position word and then use VIEW <that word>   to see the soucce code.  If it's using the DOS call you will probably see the Assembler code you need to use. 

 

However in that BASIC there must be a command to position the cursor no?

  • Like 2
Link to comment
Share on other sites

1 minute ago, TheBF said:

So in the IBM PC this could be done in the early days by calling code in the BIOS ROM.   This was done with software interrupt 17 if I recall correctly. 

 

The other way was to call the operation with the DOS version and that was software interrupt 21. (software interrupt was a weird intel name for a "call" that saved things like a hardware interrrupt.)

 

So the way it was done was load the arguments into the correct register(s) and the do instruction  INT 21   or INT 17. 

From the manual info you would X in register DH  (D high)  and Y in DL ( D low)  and call one of those interrupts depending on what that section of the manual is descriibing (DOS or BIOS)

 

One way to see some code would be to find this function in F83. :)  All the source code is there.

At-XY is the modern standard name but back then it code GOTOXY or anything else the implementor liked. 

Check the F83 dos for cursor position word and then use VIEW <that word>   to see the soucce code.  If it's using the DOS call you will probably see the Assembler code you need to use. 

 

However in that BASIC there must be a command to position the cursor no?

Very cool I will go into the f-83 prg..

Link to comment
Share on other sites

Posted (edited)
3 hours ago, TheBF said:

However in that BASIC there must be a command to position the cursor no?

Nope. Not that I've found 

I spent the last 4 hours trying to make a self bootable kernel in f83 using the docs.

The process starts but ends in error after a 30 seconds of doing actual work and echoing a number starting at 1, and erroring at 65, with a blk error. But never created the new kernel file.

 

So, I moved on and created a myfile.blk, however doing a 1 edit ends in error and lockup after entering an invalid 10 digit edit entry code once enter is pressed with no other characters, or 10 random characters.

Anyway, like you said, looking through other source files, I should be able to find a word that is similar to gotoxy,.

I've found another forth program, that utilizes the "screen" syntax/scr format. But I've yet to install it..

But I might.

 

 

 

 

Edited by GDMike
Link to comment
Share on other sites

I found a screen for variables and registers..no comments..I couldn't get an idea what they were.

I like this flavor of forth, but I just can't get past the edit code.

I found the definition in utility.blk screen 21

Get-id

But there's no FORGET and doing a 

: GET-ID ; didn't change anything 

Link to comment
Share on other sites

OK I think I have what you are looking for.  From inside F83:

6.1. The BIOS I/O Calls to the Operating System 
The fundamental interface between Forth terminal I/O commands and the CP/M or DOS is the 
Forth command BDOS: 

\ Load function code into C register and entry parameter into D register. Call the BIOS. Return result are then pushed on the data stack. 
CODE BDOS ( entry function -- return-value ) 
 CX POP    \ Load function code into C register. 
 DX POP    \ Load entry parameter into D register. 
 33 INT    \ Call BIOS by a software interrupt. This is the MS-DOS interrupt vector. For CP/M, it is 224 INT. 
 AH AH SUB \ Clear the high byte in the AX register. 
 1PUSH     \ Return with the result on stack. 
END-CODE 
 
 BDOS is not only used for terminal I/O, it can also be used for most of the disk I/O calls, making 
Forth I/O commands very neat and simple.

 

So so the TI book said 

image.png.33256dbbc814a18a9b5387ebecdca810.png

**edit**

So try pasting this into F83 and see if it moves the cursor. 

HEX 
: GOTOXY  ( X y -- )  100 * +  2  BDOS ; 

 

 

 

Link to comment
Share on other sites

7 hours ago, TheBF said:

OK I think I have what you are looking for.  From inside F83:

6.1. The BIOS I/O Calls to the Operating System 
The fundamental interface between Forth terminal I/O commands and the CP/M or DOS is the 
Forth command BDOS: 

\ Load function code into C register and entry parameter into D register. Call the BIOS. Return result are then pushed on the data stack. 
CODE BDOS ( entry function -- return-value ) 
 CX POP    \ Load function code into C register. 
 DX POP    \ Load entry parameter into D register. 
 33 INT    \ Call BIOS by a software interrupt. This is the MS-DOS interrupt vector. For CP/M, it is 224 INT. 
 AH AH SUB \ Clear the high byte in the AX register. 
 1PUSH     \ Return with the result on stack. 
END-CODE 
 
 BDOS is not only used for terminal I/O, it can also be used for most of the disk I/O calls, making 
Forth I/O commands very neat and simple.

 

So so the TI book said 

image.png.33256dbbc814a18a9b5387ebecdca810.png

**edit**

So try pasting this into F83 and see if it moves the cursor. 

HEX 
: GOTOXY  ( X y -- )  100 * +  2  BDOS ; 

 

 

 

The statement got an ok as a definition, but didn't result in anything except ok when called, as in, 

5 5 Gotoxy ." Place"

As if, the register was reset with previous values??

Link to comment
Share on other sites

4 hours ago, GDMike said:

I came across this assembler book..

 

Screenshot_20240725-035222.png

Screenshot_20240725-035247.png

OK this is what you needed. Int 10  calls the ROM BIOS routines.  

So you need the F83 ASSEMBLER loaded and then make a code word for function 3. :)

 

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...