Jump to content

kl99

Members
  • Content Count

    1,055
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by kl99


  1. Here are some challenges:
    Hex-Bus Wafertape Drive

    Hex-Bus Rs232 Interface

    Hex-Bus Video Interface

    Sideport - Hex-Bus Interface for the 99/4(A)

    Sideport - P-Code Interface

    Sideport - Video Controller

    Sideport - Speech Synthesizer with Speech Module Interface
    PEB - Video Controller Card

    PEB - IEEE-488 Bus Controller Card

    PEB - EPROM Programmer Card

    MBX

    F18A Video Chip

    Infrared Analog Joystick Support as planned for the 99/4 and supported by Monitor/Gpl system software.

    CC 40+

    • Like 2

  2. Thanks for the many replies so far.

    I thought it is just me being so stupid, but it seems there is a problem. The test program for CALL IO in the RXB Doc seems to work fine.

    It is only covering hitting special keyboard keys though.

     

    It could also be related that the GPL IO routine was written when there was a 99/4 only, and infrared analog controllers were in the supported list.

    As far as I know even the actual real iron of the 99/4a emulates the 99/4 keyboard, so I wonder in which layer of emulation the joystick fails to work.

     

    The description of the 9901 interrupt mapping is different for the 99/4 versus the 99/4A, as we know the keyboard was replaced:

    Quote

    Technical Data for TI Home Computer (1980)

    Address CRU bit 9901         Pin Function
    0006     3        INT3         9     Clock interrupt, Keyboard ENTER line, Joystick FIRE
    0008     4        INT4         8     Keyboard L line, Joystick Left
    000A     5        INT5         7     Keyboard P line, Joystick Right
    000C     6        INT6         6     Keyboard 0 (zero) line, Joystick Down
    000E     7        INT7 (P15)     34     Keyboard SHIFT line, Joystick Up
    0010     8        INT8 (P14)     33     Keyboard SPACE line
    0012     9        INT9 (P13)     32     Keyboard Q line
    0014     10      INT10 (P12) 31     Keyboard 1 line

     

    Quote

     

    TI-99/4A Console Technical Data, 1049716-2

    Address    CRU bit    9901        Pin    Function

    0006     3         INT3         9     9901 Internal Timer Interrupt, Keyboard = (equals) line, Joystick FIRE
    0008     4         INT4         8     Keyboard SPACE line, Joystick Left
    000A     5         INT5         7     Keyboard ENTER line, Joystick Right
    000C     6         INT6         6     Keyboard 0 (zero) line, Joystick Down
    000E     7         INT7 (P15)     34     Keyboard FCTN line, Joystick Up
    0010     8         INT8 (P14)     33     Keyboard SHIFT line
    0012     9         INT9 (P13)     32     Keyboard CTRL line
    0014     10         INT10 (P12) 31     Keyboard Z line

     

    Further the 9901 I/O mapping for the 99/4A features a before unused CRU bit 21 for Alpha Lock, which could be by mistake always checked by a TI-99 Emulator, even on a 99/4 emulated machine.

    Quote

     

    TI-99/4A Console Technical Data, 1049716-2

    9901 I/O mapping

    Address    CRU bit    9901    Pin    Function

    0024     18         P2         26     Bit 2 of Keyboard Select
    0026     19         P3         22     Bit 1 of Keyboard Select
    0028     20         P4         21     Bit 0 (MSB) of Keyboard Select
    002A     21         P5         20     Keyboard (ALPHA LOCK) [this line shows as unused on the Technical Data manual for the 99/4]

     

    Maybe the GPL Programmer's Guide give a clue on how to properly use the GPL IO routine to read the joystick.

    Will have to read and try a bit further it seems.

    • Like 1

  3. Hi,

     

    If I put this in RXB in Classic99, I would expect it check for Keyboard L Line and Joystick Left Input.

    I am interested in Joystick Input in this test case.

     

    100 CALL IO(2,16,8,A,B)
    110 CALL HPUT(2,1,"   ",2,1,A,4,1,"   ",4,1,B)
    120 GOTO 100


    I have connected an actual Gamepad to the USB Port and have configured it in Classic99 for Joystick #1.

     

    According to Tech Data Manuals, the TMS 9901 has
    Address: >0008
    CruBit: 4

    9901: INT4

    Pin: 8

    Function: Keyboard L Line, Joystick Left.

     

    For me the result is that the Joystick movement and the Button has no impact on A and B values.

    They keep showing 226 and 255.

     

    So I wonder what am I doing wrong?

    Or is it a limitation of the Emulation in Classic99 or a bug in CALL IO?

     

    There are so many things to consider:

    Alpha Lock Bug, 99/4 vs 99/4A Keyboard, 5 Keyboard Modes, Infrared Analog Joysticks in the System Software and Documentation, Wired Joysticks.

    There is a SCAN Routine in GPL and one in Assembler, there are certain locations in Ram that store the XPOS and YPOS from the Joystick.

    ...

     

    Can anyone give me some hints here?

     

     

     


  4. Hi,

    I was asked by blackbox to send best wishes to all on atariage.

    Quote

    ...and pass on my regrets that I am now unable to access the forum at all, following the recent changes.

    I am unable to answer any messages sent to me via the forum- I have email notifications of messages but I cannot then access the site to see them. Nor can I access the forum to remove my email address!

    So- no more scanned TI manuals from me.

    The first brick wall- as far as I can get- is that the new servers have been set to use ONLY HTTPS and ONLY the latest very highest level of HTTPS. I am not going to buy a new PC to access a website about a 40 year old computer.

    So please can you pass on a "farewell" from me. I leave because I am locked out, not due to lack of interest.

    Thanks.

     

    Is there anything we can do for blackbox? I assume it is connected to the used operating system, not the browser, is it?


  5. Hey Rxb :)

    What about expanding HCHAR and VCHAR by allowing a negative repetition number?

    If the number is negative, it reverses the direction.

    HCHAR by default repeats to the right. If negative it would repeat to the left instead.

    VCHAR by default repeats downwards. If negative it would repeat upwards.

    Just an idea from reading your RXB documentation.

    • Like 1

  6. While some consumer NTSC TV sets support a PAL signal on their normal Video Inputs (Video Composite In, Y/C In, YUV In, Hdmi In, ...), I doubt there is a single one that can decode a high frequency modulated PAL signal (output of the PAL modulator) back down to a low frequency PAL signal. For this you would require a PAL compatible TV Tuner.

     

    You have a higher chance to have success if you use the output from the 6 Pin DIN port directly. It is a YPbPr PAL signal. With some luck you might get an awesome flawless picture by going in to your Multinorm TV on its YUV Input. Or you modify a PAL modulator to output a low frequency Video Composite signal (still PAL, but now low frequency!).

     

    The downside of using a PAL TI-99 is really the different speed when playing games. I wish you the best!


  7. During my tests the voltage peaks at the output of the LM358 were not sufficient to light the two LEDs, everything actually matches the fact that they were placed in the circuit to operate as a conventional diode and clipping the cassette OUT signal. The forward voltage of a 1N4148 is not sufficient.

     

    would this change if you use the AC-9201 for powering the unit? The Wafertape drive had a similar issue, where stability if ever could only be reached via non-battery mode.


  8. from the Basic Interpreter Design Specification:

    CPU Ram:

    >8345 unassigned

    >8388 FLAG ... described as "Error flag bits."

     

    from the XB (Product 359) Basic Interpreter Design Specification:

    CPU Ram:

    >8345 FLAG ... described as "General flag byte."

    >8388 unassigned

     

    You could trigger some action that causes a change to FLAG.

    Like checking the current AUTO NUM status and toggling it to trigger the Auto Num bit switching in the FLAG Byte.

    If you see the bit changing in >8345, you are in XB or a XB variant.

    If you see the bit changing in >8388, you are in TI Basic.

    After your identification toggle it again to restore the memory state as before.

     

    At least when using the pure command line (not programmatically), this approach just worked in Classic99.

    Now the question is how to toggle Auto Num programmatically :)

     

    Another approach I could think of is using the condition of SDD99 that you always run XB with memory expansion, so it will store numerical variables in expansion ram in contrast to TI Basic.

    So:

    1. check for the non-existance of variable RALPHB

    2. assign Value 1 to variable RALPHB

    3. check where the variable got stored by going the path from the CPU pointers.

    4. if you end up in CPU Ram you run XB, if you end up in VDP Ram, you run TIB.

    4. remove variable RALPHB

    • Like 1

  9. I assume Ralph means programmatically from the DSR that he is writing for SDD99.

     

    Do you want to know if XB is in the cartridge port or the active language?

    You can still call TI BASIC with XB being in the cartridge port.

     

    If you only want to know whether it is plugged in, then check for the GROM Header for the Program name.

     

    If you want to know whether XB is active, it might help to know whether this mechanism has only to be checked at a specific time during the init, or whenever the DSR is called?

    Meaning can you cache the value somewhere?


  10. Hi Fabrice, I understood that Curtis want to setup outside arrangements and not use ebay to by the platform to sell the item.

     

    ...the highest bidder will be contacted by me and we will set up outside arrangements

    • Like 1

  11.  

    Hi Lee!

    Big thank you for scanning this.

    In case nobody else noticed, this document contains a not yet released updated version of the "GPL interface specification for the 99/4 Disk Peripheral".

    So far we had Version 2.0.

     

    This one from Lee is updated and got renamed to also covers the 99/8: "GPL Interface specification for the 99/4 and 99/8 Disk Peripheral".

    It also explains when the Buffer is not in VDP but in CPU Ram like on the 99/8.

     

    Many thanks again!

    • Like 1

  12. If you want to have a modern and compact PEB, then get a nanoPEB. This just sold out but contact the seller schmutzig1952 for more.

    https://www.ebay.com/itm/TI-99-4a-CompactFlash-Drive-RS232-Port-nanoPEB-Version-1-w-256mb-SanDisk-/202572030264.

     

    It gives you like a PEB the 32K Memory Expansion, a Disk Controller, 3 Disk Drives and a serial or parallet port.

    The CompactFlash Cart holds disk images that can be mounted into the 3 Disk Drives.


  13. In the year 1993, when I was 13, our children room looked like this.

     

    TI PEB, 2 Consoles, Navarone Expander, Speech Synthesizer, some cartridges, a Sharp Tape Recorder.

    Each time we wanted to use the TI in our room we had to get permission to get the televison from another room :)

    Only during school holidays the television was permanently in our room.

     

    We never had a printer, a modem, or an accustic coupler to connect to the outer world.

    We had no IBM compatible computer at that time.

     

    post-27826-0-21939200-1548074412.jpg

    • Like 6

  14. The Tms9900 Cpu can address up to 64KB of memory.

     

    Certain spots in the computer are hardware wired to certain addresses of the Cpu Memory.

    This can not be changed, even if you would have 1 GB of memory available at one of the spots.

     

    1. Bank #1 >0000 - >1FFF

     

    This goes to two 4K Rom chips which define the System Rom and make the first 8K of memory.
    In our case this is read only memory.

    So not usable to store anything.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >0000 to >1FFF.

    You can not move to other memory locations.

     

    2. Bank #2 >2000 - >3FFF

     

    Lower Expansion Memory. This is wired to the optional Memory Expansion that is going via Sidecar. It doesn't matter whether in a PEB or not.

    If you have no memory expansion, you can not write here.

    If you have a memory expansion, then 8K of its 32K go here.

    This is meant to store user data/programs.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >2000 to >3FFF.

    You can not move to other memory locations.

     

    3. Bank #3 >4000 - >5FFF

     

    This goes to the maximum of 8K of Rom chips of the active Device. The CRU chip is involved in setting active Devices and is similar like IRQ.

    That memory is meant to define the DSR, the Device Service Routines.

    In case of the Disk Controller it is the Routines to format, read, write,...

    In case of the RS232 it is the routines to open, close, read, write from that device...

    In most cases this is read only memory.

    In case of the RS232 HDX and the Ramdisk we have Ram chips with batteries for updates.

    Anyhow not meant for storing your data.

    As soon as another device is active its DSR is now "blended" in that >4000 - >5FFF spot.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >4000 - >5FFF.

    You can not move to other memory locations.

     

    4. Bank #4 >6000 - >7FFF

     

    This is connected to the cartridge port.

    Some cartridges contain a Rom chip, some a Ram chip, many don't have anything.

    Only when a Ram chip is connected to these address lines you can use this memory to store stuff.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >6000 - >7FFF.

    You can not move to other memory locations.

     

    5. Bank #5 >8000 - >9FFF

     

    This is the most complicated one. The TI-99/4A comes with 2x 128 bytes Ram chips, making 256 bytes total Cpu Ram.

    You can access it from >8300 to >83FF.

    There are many not connected memory areas here, meaning unless you hardware modify the mainboard, you can not make use of those.

    This is further the area where the memory mapping ports are: for Grom, Speech, Video Ram and Sound.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >8000 - >9FFF.

    You can not move to other memory locations.

     

    6. Bank #6 >A000 - >BFFF

    7. Bank #7 >C000 - >DFFF

    8. Bank #8 >E000 - >FFFF

     

    The last 3 banks (24KB) can be adressed via the Sidecar bus and therefore are meant for the 32K memory expansion, again not relevant if in a PEB or not.

    If you have no memory expansion, nothing can be written to here.

    If you have a memory expansion, this is your 2nd data/programs spot.

     

    A bank switching project at this spot would still keep all the total memory within the Cpu Memory area of >A000 - >FFFF.

    You can not move to other memory locations.

    • Like 4
×
×
  • Create New...