WANTED: MITS Altair 8800 I/O Ports info - CP/M

This is a discussion on WANTED: MITS Altair 8800 I/O Ports info - CP/M ; Is anybody out there who has a MITS Altair 8800 running, and/or knows the signification of use of its I/O ports? I have re-created the source code of a little (2-KB) language for the MITS Altair 8800. (It was made ...

+ Reply to Thread
Results 1 to 10 of 10

Thread: WANTED: MITS Altair 8800 I/O Ports info

  1. WANTED: MITS Altair 8800 I/O Ports info

    Is anybody out there
    who has a MITS Altair 8800 running, and/or knows the signification of use of
    its I/O ports?

    I have re-created the source code of a little (2-KB) language for the MITS
    Altair 8800. (It was made in 1976.)

    The problem is that it does not run under the SIMH emulator...

    So,

    1) Either someone with a real MITS Altair 8800 (the program is said to use
    cassette tape for back-up, but it is not needed just to test that it is
    working correctly. Some samples programs can be retyped interactively.)
    could check that I got the assembly language source code correctly for this
    interpreter (you bet, man!).

    2) Or someone could tell me the reason for using the following I/O ports:

    Input: 0, 1, 6, 7, 16, 17, 18, 19, 255
    Output: 1, 7, 16, 17, 18, 19

    He was obviously not using a DOS, back then, since the interpreter calls
    directly the I/O ports listed.

    I was forgetting: there is not one single line of comment in either the
    sample programs provided or the assembly language source code of the
    interpreter... (Very funny when you try to understand why he is doing
    something, 30 years later!)

    Yours Sincerely,
    "French Luser"




  2. Re: WANTED: MITS Altair 8800 I/O Ports info

    On Tue, 18 Jul 2006 14:35:58 +0200, "French Luser"
    wrote:

    >Is anybody out there
    >who has a MITS Altair 8800 running, and/or knows the signification of use of
    >its I/O ports?
    >
    >I have re-created the source code of a little (2-KB) language for the MITS
    >Altair 8800. (It was made in 1976.)
    >
    >The problem is that it does not run under the SIMH emulator...
    >
    >So,
    >
    >1) Either someone with a real MITS Altair 8800 (the program is said to use
    >cassette tape for back-up, but it is not needed just to test that it is
    >working correctly. Some samples programs can be retyped interactively.)
    >could check that I got the assembly language source code correctly for this
    >interpreter (you bet, man!).
    >
    >2) Or someone could tell me the reason for using the following I/O ports:
    >
    >Input: 0, 1, 6, 7, 16, 17, 18, 19, 255


    The following are IO ports:
    Ports 0/1 are usually MITS SIO-C (serial line)

    Port 6/7 is usually a 88-ACR (basically a SIO-B with modem for casette
    tape via FSK tones).

    ports 16/17 and 18/19 are used by the 2SIO card (dual 6850 SIO).

    This from memory was input only:
    Port 255 is front pannel switch sense port (most of the loaders and
    various programs like MITS Basic would query this port for what IO
    to use for user interface and if 88-ACR was present.).

    Yes, I have several real Altair 8800s.

    Allison

    >Output: 1, 7, 16, 17, 18, 19
    >
    >He was obviously not using a DOS, back then, since the interpreter calls
    >directly the I/O ports listed.
    >
    >I was forgetting: there is not one single line of comment in either the
    >sample programs provided or the assembly language source code of the
    >interpreter... (Very funny when you try to understand why he is doing
    >something, 30 years later!)
    >
    >Yours Sincerely,
    >"French Luser"
    >
    >



  3. Re: WANTED: MITS Altair 8800 I/O Ports info

    Hello, Allison!

    Many thanks for your message. It confirms what I had guessed from
    studying the code. My biggest problem was that, since I could not run
    the code on the SIMH emulator, I could not be sure what was the usage
    of the 0/1 and 6/7 I/O ports. One pair was obviously going to deal with
    the ASR-33 Teletype mentioned in the doc, and the other pair of I/O
    ports going to deal with the cassette tape player mentioned, but which
    was which?

    > Ports 0/1 are usually MITS SIO-C (serial line)


    So, this should have been the pair of I/O ports that he used to connect
    his ASR-33.

    > Port 6/7 is usually a 88-ACR (basically a SIO-B with modem for casette
    > tape via FSK tones).


    So, this should have been the pair of I/O ports that he used to connect
    his cassette tape player.

    > ports 16/17 and 18/19 are used by the 2SIO card (dual 6850 SIO).


    I had noticed that 2 labels labeled "in" and "out" were calling, in
    turn, ports 16, then 18, then 0. I have no idea if it was "standard"
    for MITS Altair 8800 software to do this, to do their I/O with the
    terminals used at the time. The only thing that I had found was that
    I/O ports 16 and 18 were dealing with the 2SIO card, and port 0 with a
    "Single-SIO" card. Hence my question about the I/O ports.

    > This from memory was input only:
    > Port 255 is front pannel switch sense port


    Yes. I had found this on the Internet. This was the only I/O port whose
    purpose I found on the Internet.

    > Yes, I have several real Altair 8800s.


    OK. Now, a few questions:

    1) Do you have one MITS Altair 8800 fitted with an ASR-33 TTY and a
    cassette tape player?

    2) Even if you don't have one with the above-mentioned devices, would
    you mind just loading and playing with the interpreter, just to check
    that I did not made obvious error?

    Today, my regular cybercafe is closed, so I am using another one, via a
    "Google account" created "on the fly". Tomorrow, I will discover how it
    renders online, or if it worked. So, today I cannot send you the files,
    but maybe tomorrow, or after tomorrow.

    3) The SIMH emulator only recognizes I/O ports 16, 17, 18, 19, and 255.
    What would you recommend to Peter Schorn? Should he take into account
    the I/O ports 0/1 (since they were used by a standard MITS product, the
    "Single-SIO" card) and 6/7 (since they were used by the 88-ACR for tape
    handling -- one problem is that emulators don't expect to have a real
    cassette tape player connected to the real computer. And I am also told
    that Windows is more and more difficult with "foreign" hardware.)?

    4) I have tried Forte's "Free Agent", but I find it very different.
    Since I have limited time at the cybercafe, I had not enough time to
    find the answers to 2 questions. Would you mind answering them?

    (Since there is not one single comment in either the sample programs or
    the source code of the interpreter, I intend to extend the original
    paper with a few appendices, like a study of some of the sample
    programs with comments about how they work, and a better source code
    with an extensive study of the interpreter, with one version for the
    SIMH emulator, and another version running under CP/M 2.2.)

    Yours Sincerely,
    "French Luser"


  4. Re: WANTED: MITS Altair 8800 I/O Ports info

    On 20 Jul 2006 01:54:51 -0700, French.Hideout@Gmx.De wrote:

    >Hello, Allison!
    >
    >Many thanks for your message. It confirms what I had guessed from
    >studying the code. My biggest problem was that, since I could not run
    >the code on the SIMH emulator, I could not be sure what was the usage
    >of the 0/1 and 6/7 I/O ports. One pair was obviously going to deal with
    >the ASR-33 Teletype mentioned in the doc, and the other pair of I/O
    >ports going to deal with the cassette tape player mentioned, but which
    >was which?
    >
    >> Ports 0/1 are usually MITS SIO-C (serial line)

    >
    >So, this should have been the pair of I/O ports that he used to connect
    >his ASR-33.
    >
    >> Port 6/7 is usually a 88-ACR (basically a SIO-B with modem for casette
    >> tape via FSK tones).

    >
    >So, this should have been the pair of I/O ports that he used to connect
    >his cassette tape player.
    >
    >> ports 16/17 and 18/19 are used by the 2SIO card (dual 6850 SIO).

    >
    >I had noticed that 2 labels labeled "in" and "out" were calling, in
    >turn, ports 16, then 18, then 0. I have no idea if it was "standard"
    >for MITS Altair 8800 software to do this, to do their I/O with the
    >terminals used at the time. The only thing that I had found was that
    >I/O ports 16 and 18 were dealing with the 2SIO card, and port 0 with a
    >"Single-SIO" card. Hence my question about the I/O ports.
    >
    >> This from memory was input only:
    >> Port 255 is front pannel switch sense port

    >
    >Yes. I had found this on the Internet. This was the only I/O port whose
    >purpose I found on the Internet.
    >
    >> Yes, I have several real Altair 8800s.

    >
    >OK. Now, a few questions:


    First If you read all available Altair documentation you will find
    that it's both rather minimal and adaquate to answer these questions.
    IO port addresses and specific port bits are listed in the assembly
    pages for the particular boards. The otehr place where this
    information appears is in the various software package manuals
    as a listing of the loader and what the sense switches (port FF)
    should be set to for the various IO.

    If the 88-ACR casette card is use the loader has to understand that
    vs paper tape on TTY. Most of the software packages were available
    as Paper tape and Cassette tape.

    >1) Do you have one MITS Altair 8800 fitted with an ASR-33 TTY and a
    >cassette tape player?


    I haven't used either since 1976. Yes, I've had my first Altair since
    January 75 and active in micrrocomputing since before that. Still
    have them as artifacts of the struggle. The struggle was to have
    a micro that was as sophisticated as the PDP8 and PDP10 systems
    I'd used years before (disk based).

    I went with a Processor Tech VDM1 and external parallel keyboard for
    IO and only used TTY for loading the occasional tape or printing
    listings. The 88-ACR was replaced very early with a digital casette
    tape system of my design that was faster at 9600 baud and much more
    reliable.

    In mid 1977 I went with Northstar Z80 card and Floppy system (MDS).
    In 1978 I replaced the Altair with a NS* Horizon S100 crate for
    reliability and better looking package (wood cover fit the room
    decor better). In '78 I went from first generation hardware to second
    generation. The software progression was driving that.

    The tty was way too slow and noisy and the 88-ACR was unreliable
    and also slow (300 baud). I didn't view either at the time as the
    best only available and workable.


    >2) Even if you don't have one with the above-mentioned devices, would
    >you mind just loading and playing with the interpreter, just to check
    >that I did not made obvious error?


    No. I stopped using them as my fingers tired of the repeated need to
    toggle in the programs after the cassette read would crash. Waiting
    nearly five minutes for 8k basic to load was not fun then and less so
    now.

    I also do not use SIMH.

    >Today, my regular cybercafe is closed, so I am using another one, via a
    >"Google account" created "on the fly". Tomorrow, I will discover how it
    >renders online, or if it worked. So, today I cannot send you the files,
    >but maybe tomorrow, or after tomorrow.
    >
    >3) The SIMH emulator only recognizes I/O ports 16, 17, 18, 19, and 255.
    >What would you recommend to Peter Schorn? Should he take into account
    >the I/O ports 0/1 (since they were used by a standard MITS product, the
    >"Single-SIO" card) and 6/7 (since they were used by the 88-ACR for tape
    >handling -- one problem is that emulators don't expect to have a real
    >cassette tape player connected to the real computer. And I am also told
    >that Windows is more and more difficult with "foreign" hardware.)?


    SIMH was designed to simulate the IO as well so the "foreign" hardware
    could easily be simulated. Obviously the casette tape is a serial
    stream read or write.

    >4) I have tried Forte's "Free Agent", but I find it very different.
    >Since I have limited time at the cybercafe, I had not enough time to
    >find the answers to 2 questions. Would you mind answering them?


    Free Agent has a very good help facility. However since I've used the
    product since 95ish or before I haven't use help in years.

    >(Since there is not one single comment in either the sample programs or
    >the source code of the interpreter, I intend to extend the original
    >paper with a few appendices, like a study of some of the sample
    >programs with comments about how they work, and a better source code
    >with an extensive study of the interpreter, with one version for the
    >SIMH emulator, and another version running under CP/M 2.2.)


    No idea what your asking.

    Most altair software predated even CP/M or wasn't compatable
    as it used page 0 and also did all it's own IO. While I preserved the
    8K basic and Programming Package II, I never ported them to CP/M (or
    NS* dos) and have left them far behind. They really only existed for
    the base Altair and going with a disk system using NS* dos or CP/M I
    had access to far better tools and languages. From 8k MITS Basic in
    76 to NS* disk basic in '77 and UCSD P-System by late 1978 illustrates
    the jump in technology.


    Allison


  5. Re: WANTED: MITS Altair 8800 I/O Ports info


    "French Luser" wrote in message
    news:44bcd5ae$0$863$ba4acef3@news.orange.fr...
    > Is anybody out there
    > who has a MITS Altair 8800 running, and/or knows the signification of
    > use of its I/O ports?
    >
    > I have re-created the source code of a little (2-KB) language for the
    > MITS Altair 8800. (It was made in 1976.)
    >
    > The problem is that it does not run under the SIMH emulator...
    >
    > So,
    >
    > 1) Either someone with a real MITS Altair 8800 (the program is said to
    > use cassette tape for back-up, but it is not needed just to test that
    > it is working correctly. Some samples programs can be retyped
    > interactively.) could check that I got the assembly language source
    > code correctly for this interpreter (you bet, man!).
    >
    > 2) Or someone could tell me the reason for using the following I/O
    > ports:
    >
    > Input: 0, 1, 6, 7, 16, 17, 18, 19, 255
    > Output: 1, 7, 16, 17, 18, 19
    >
    > He was obviously not using a DOS, back then, since the interpreter
    > calls directly the I/O ports listed.
    >
    > I was forgetting: there is not one single line of comment in either
    > the sample programs provided or the assembly language source code of
    > the interpreter... (Very funny when you try to understand why he is
    > doing something, 30 years later!)
    >
    > Yours Sincerely,
    > "French Luser"


    I would point you to http://www.altair32.com/index.htm for a Win-32
    Altair
    simulator, along with its documentation. The simulator includes serial
    connections to files for a simulated cassette tape unit.



  6. Re: WANTED: MITS Altair 8800 I/O Ports info

    Ok. I am finally seeing the end of commenting those 14 pages of 8080
    assembly language source code for the MITS Altair 8800 without one
    single comment...

    However, one question remains.

    At cold-start, the program says:

    MVI A,3
    OUT 16
    OUT 18

    MVI A,17
    OUT 16
    OUT 18

    What comment(s) should I put in my disassembly?

    (If someone else has a MITS Altair 8800, or would be interested, I am
    looking for proof-readers, (1) to check that the doc (quite modified,
    since the original 8080 doc was copying the 6800 doc with errors...)
    corresponds, indeed, to the program, and (2) to run the interpreter on
    their systems or under an emulator (SIMH was not working, at the
    beginning...), and (3) to play the dozens of games that I retyped, to
    see if I made any errors (quite likely).)

    Yours Sincerely,
    "French Luser"


  7. Re: WANTED: MITS Altair 8800 I/O Ports info

    On 29 Jul 2006 05:06:27 -0700, "French Luser"
    wrote:

    >Ok. I am finally seeing the end of commenting those 14 pages of 8080
    >assembly language source code for the MITS Altair 8800 without one
    >single comment...
    >
    >However, one question remains.
    >
    >At cold-start, the program says:
    >
    >MVI A,3
    >OUT 16
    >OUT 18
    >
    >MVI A,17
    >OUT 16
    >OUT 18
    >
    >What comment(s) should I put in my disassembly?


    Those are configuration bytes to set up the 6850 serial device, look
    up the 6850 for what they do.


    Allison


    >(If someone else has a MITS Altair 8800, or would be interested, I am
    >looking for proof-readers, (1) to check that the doc (quite modified,
    >since the original 8080 doc was copying the 6800 doc with errors...)
    >corresponds, indeed, to the program, and (2) to run the interpreter on
    >their systems or under an emulator (SIMH was not working, at the
    >beginning...), and (3) to play the dozens of games that I retyped, to
    >see if I made any errors (quite likely).)
    >
    >Yours Sincerely,
    >"French Luser"




  8. Re: WANTED: MITS Altair 8800 I/O Ports info

    Look for the 2SIO manual at s100-manuals.com. Harte's Mirror is the
    best I think. The first byte resets chip and the second one sets up
    the clock and interrupts.

    I have a real Altair, and am working on a new Altair kit.

    I really don't want to toggle anything in over 50 bytes, so if you want
    me to test something then give me a raw binary file. I wrote a program
    to bootstrap the Altair off of my P4.

    I can load 12k extended disk basic from the 2SIO in 25 seconds.

    I also wrote a disk image creation tool if you have disks laying
    around. It reads the hard sectored disks and transfers them to the
    computer in a format that the Altair32 emulator can read.

    Grant

    > >At cold-start, the program says:
    > >
    > >MVI A,3
    > >OUT 16
    > >OUT 18
    > >
    > >MVI A,17
    > >OUT 16
    > >OUT 18
    > >
    > >What comment(s) should I put in my disassembly?

    >
    > Those are configuration bytes to set up the 6850 serial device, look
    > up the 6850 for what they do.
    >
    >
    > Allison
    >
    >
    > >(If someone else has a MITS Altair 8800, or would be interested, I am
    > >looking for proof-readers, (1) to check that the doc (quite modified,
    > >since the original 8080 doc was copying the 6800 doc with errors...)
    > >corresponds, indeed, to the program, and (2) to run the interpreter on
    > >their systems or under an emulator (SIMH was not working, at the
    > >beginning...), and (3) to play the dozens of games that I retyped, to
    > >see if I made any errors (quite likely).)
    > >
    > >Yours Sincerely,
    > >"French Luser"



  9. Re: WANTED: MITS Altair 8800 I/O Ports info

    Hello, Grant!

    >Look for the 2SIO manual at s100-manuals.com. Harte's Mirror is the
    >best I think. The first byte resets chip and the second one sets up
    >the clock and interrupts.


    Many thanks for your message.

    >I have a real Altair, and am working on a new Altair kit.


    Well, the MITS Altair 8800 is not exactly a novelty, but it is still
    very nice to hear that at least someone is still playing with it...

    >I really don't want to toggle anything in over 50 bytes, so if you want
    >me to test something then give me a raw binary file. I wrote a program
    >to bootstrap the Altair off of my P4.


    Again, many thanks for your offer. The only problem is that your offer
    seems to arrive after the battle, since this forgotten Programming
    Language (and another one, twice bigger) are going to be released
    "Real Soon Now"...

    >I can load 12k extended disk basic from the 2SIO in 25 seconds.


    A question: Is this the TDL 12K Extended BASIC? Or the Micro-Soft
    "Written for MITS for Royalties" "Extended BASIC" (also 12K in
    length)?

    >I also wrote a disk image creation tool if you have disks laying
    >around. It reads the hard sectored disks and transfers them to the
    >computer in a format that the Altair32 emulator can read.


    Good. But I encourage you to be compatible with SIMH, which seems the
    most widely known and used MITS Altair 8800 emulator. In addition, his
    author, Peter Schorn, is a CP/M Old Timer, and answer very kindly to
    any question.

    Yours Sincerely,
    "French Luser"


  10. Re: WANTED: MITS Altair 8800 I/O Ports info

    > >I can load 12k extended disk basic from the 2SIO in 25 seconds.
    >
    > A question: Is this the TDL 12K Extended BASIC? Or the Micro-Soft
    > "Written for MITS for Royalties" "Extended BASIC" (also 12K in
    > length)?


    The program is quite simple. Load a byte from the serial port, store
    it in 0000, inc memory pointer, receive next serial byte, store in
    0001, etc. until the memory pointer equals a predetermined constant.
    When it is equal it jumps to 0000.

    You can load pretty much any memory image this way as long as you don't
    overwrite the loading program. You might have to change the jmp
    address.


+ Reply to Thread