AltairZ80 simulator updated - CP/M

This is a discussion on AltairZ80 simulator updated - CP/M ; The AltairZ80 simulator has been updated and is available for download at http://www.schorn.ch/cpm/intro.html New: - Updated to version 3.6-1 of SIMH - Fixed a bug in memory access breakpoints - Added Altair software packages MINOL and VTL-2 (courtesy of Emmanuel ...

+ Reply to Thread
Results 1 to 6 of 6

Thread: AltairZ80 simulator updated

  1. AltairZ80 simulator updated

    The AltairZ80 simulator has been updated and is available for download
    at http://www.schorn.ch/cpm/intro.html

    New:
    - Updated to version 3.6-1 of SIMH
    - Fixed a bug in memory access breakpoints
    - Added Altair software packages MINOL and VTL-2
    (courtesy of Emmanuel ROCHE)

    Features of the simulator:
    - Pre-built versions for PC and Macintosh (OS X and OS 9.x)
    - Full ANSI C source code and documentation available for download
    - Choice of processor (8080 CPU or Z80 CPU)
    - Optional banked memory (8 banks with 64 Kbytes)
    - Optional hard drive support for additional storage capacity
    - Support for up to 4 consoles
    - Timer generated interrupts
    - Memory access breakpoints
    - VT100 emulation via Telnet
    - Ability to set the clock speed for "real-time" simulation (useful for
    games)

    Ready to run disk images include:
    - Original Altair software such as the famous 4K Basic
    - CP/M 1.4 (for the historically inclined, with sources)
    - CP/M 2.2 (including all sources for CCP, BDOS and BIOS)
    - Personal CP/M (including source for CCP, BDOS and BIOS)
    - CP/M 3 (including sources for BIOS)
    - MP/M II (supporting banked memory and up to 4 consoles via Telnet)
    - DOS+, NovaDOS, P2DOS, SuperDOS, Z80DOS, ZSDOS
    - NZ-COM (Z-System based on CP/M 2.2, sources, PDF user manual)
    - Z3PLUS (Z-System based on CP/M 3, sources, PDF user manual)

    Ready to run disk images of CP/M application software:
    - Programming languages: Ada, Algol, APL, collection of various Basics,
    BDS C, COBOL, Forth, FORTRAN, Lisp, Modula 2, Mumps, muSIMP,
    Pascal, PL/I, SPL, MINOL, VTL-2
    - Office applications: dBASE, Wordstar, Multiplan, SuperCalc
    - Games: Adventure (Colossal Cave), Catchum, Worm, Ladder, Rogue,
    Wanderer
    - Development: M80, L80, CREF80, DDTZ,
    transfer between host file system and simulated file system

    Download at http://www.schorn.ch/cpm/intro.html

    --
    Peter Schorn
    peter.schorn at acm.org
    http://www.schorn.ch

  2. Re: AltairZ80 simulator updated

    I am so over-worked that I had forgotten to update my list.

    One year ago, it was published as containing (among other things):

    C. General Purpose PLs
    ------------------

    1) DOIT Compiler
    2) Flow
    3) WSFN (= Which Stands For Nothing!...)
    4) APL/Z
    5) BASEX
    6) COBOL
    7) FOCAL
    8) MUMPS
    9) STOIC
    10) Dr. Logo
    11) Augusta (ADA subset in 24K interpreted MBASIC)
    12) MINILANG (A full PL (source and doc) in 28KB...)
    13) WADUZIDO (The smallest interpreter known: 256 Bytes!...)
    14) BASIC-E
    15) Mallard BASIC
    16) Tiny Pascal (2 versions: BASIC and 8080 ASM)
    17) Tarbell BASIC
    18) CBASIC Compiler
    19) Tiny BASIC Version 3.0

    So, please add now:

    20) VTL-2
    21) MINOL

    Yours Sincerely,
    "French Luser"




  3. Re: AltairZ80 simulator updated

    Now that I have recreated from scratch the source code and doc of twenty
    programming language that once used to run under CP/M and/or old 8080
    microcomputer systems, I am finding less and less stuff.

    Too bad that I have been unable, year after year, to find a University
    interested in hosting them: apparently, programming is no longer taught. It
    must be an innate thing, so why teach it? (Especially since most of my PLs
    are, on average, about 8K big. I was once told: "Surely, you must mean 8
    MEGABYTES?" No, no: 1,024 times smaller. "Then, it must have been toys!" Yes:
    one of them was even called "Altair 8K BASIC"...)

    Anyway, I think that I will turn now my attention to editors.

    When you think about it, there were very, very few editors, and much less word
    processors, made for CP/M. The only problem is that word processors are much
    bigger than a simple PL.

    To begin, I will probably recreate the source code of the "Intel Super Editor"
    found in Volume 16 of the CP/M User's Group. I have always wondered if it was
    not a CP/M port of the editor that Gary Kildall had written after writing PL/M
    but before he was able to find an electronician who would finally (a one year
    wait!) make an interface card between his Intellec-8 and his 8" Shugart drive
    to boot CP/M.

    I would also be interested in 8080 assemblers written in BASIC but, as far as
    I know, there is not one. Not even in the Walnut Creek CD-ROM. If only I had
    the time and/or money to finish mine...

    Yours Sincerely,
    "French Luser"


  4. Re: AltairZ80 simulator updated

    French Luser wrote:
    > Now that I have recreated from scratch the source code and doc of twenty
    > programming language that once used to run under CP/M and/or old 8080
    > microcomputer systems, I am finding less and less stuff.
    >
    > Too bad that I have been unable, year after year, to find a University
    > interested in hosting them: apparently, programming is no longer taught. It
    > must be an innate thing, so why teach it? (Especially since most of my PLs
    > are, on average, about 8K big. I was once told: "Surely, you must mean 8
    > MEGABYTES?" No, no: 1,024 times smaller. "Then, it must have been toys!" Yes:
    > one of them was even called "Altair 8K BASIC"...)


    I would love to have that information and host it. Maybe I have some
    stuff you want too.

    > I would also be interested in 8080 assemblers written in BASIC but, as far as
    > I know, there is not one. Not even in the Walnut Creek CD-ROM. If only I had
    > the time and/or money to finish mine...


    I have one. It was used by ARP Instruments in the mid 70s on their
    digital synth project. The disks that I have from their project are
    very degraded and I haven't been able to actually use the disks. I
    think it was under Altair Disk Extended Basic 4.1.

    I've read the disks into image files compatible with Altair32, and
    maybe this AltairZ80.

    More interesting than the code, is the story behind it. Up until now,
    I don't think anything was ever known outside a few employees of these
    experiments. I want to setup a web page with all this code when I am
    done recovering it all.

    History from an ARP employee:
    =======================

    ARP filed Chapter 11 around 1981. I was working with them at the time
    as a hardware engineer. Alan Pearlman and I were working together. I
    remember he was into computer graphics when I was there. I think he
    used the Altair prior to my arrival (1979) and was experimenting with
    computer music. At that time, ARP only produced pure analog synths. It
    wasn't until about 1980 that they introduced their first microcomputer
    controlled analog synth (the Quadra). We were working on the Chroma, a
    much more substantial micro-controlled analog synth to compete with the
    Sequential Circuits Prophet 5, but we didn't finish it before the
    company ran into trouble. The designs, inventory, etc. were purchased
    by Fender and I continued work on this synth at a different lab
    location in MA, which finally was released as the Rhodes Chroma.

    I have a couple of 8" floppies for the Altair containing what appears
    to be Alan's computer music generation software. About that time, UCSD
    had a vibrant computer music degree program at their Center for Music
    Experiment. This was about the time Stanford and Ircam had vibrant
    computer music programs. Anyway, the UCSD Music 5 generation programs
    were public domain. Perhaps he was experimenting with them. Of course,
    he could have been working on a keyboard sequencer/recorder for analog
    synths as well.

    Anyway, since I don't have any way to read these disks and you might, I
    would be willing to send them to you temporarily so that you could read
    the data off of them, as long as you give me a copy of the data in a
    format I can use (i.e. email the binary files to me) as well as return
    the original disks back to me. Let me know if you have the floppy drive
    system working yet.

    =======================

    I tracked down the programmer (the guy who bought the Altair from the
    Magazine article, that I now own):
    =======================
    Well, I was hired at ARP as an op-amp engineer since at that point
    nobody was seriously considering computer-based synthesizers, though my
    thesis at MIT in 1971 was on that possibility. (I used a Digital
    PDP-15, an interesting machine similar to a PDP-9. As I recall it had
    a wordlength of 15 or 18 bits and character packing was unusual.)

    ....

    I did a fair amount of work towards patch management, partly based on
    my experiences with combination actions on pipe organs. However, as I
    mentioned, this work got abandoned in favor of the ARP guitar
    synthesizer. This may be what some of the slide pot management you
    found is about.'

    Oscillators, and therefore voices, were an expensive element. The ARP
    Odyssey was wildly popular because you could play two notes at once
    (compared to the Moog Mini-moog and other current instruments. (Later
    we hired both Bob Moog and Al Pealment (ARP) to do work at Kuzrweil.
    In fact, Al Pearlman and I did several companies together, mostly in
    computers. The ARP Odyssey (as well as the other instruments in 1975)
    used analog keyboards. The Odysssy had a rather clever design to get
    two separate voltages from an analog resistor-chain keyboard. Keep in
    mind that this was all 1V/octave stuff, not digital signals.

    So, I probably did one of the first digital synthesizer keyboards,
    multiplexing it a bit like a current computer keyboard. Some of the
    code you see may be for this keyboard decoding. Assigning osciallators
    to keynotes was a tough problem, especially if you were trying to make
    the top notes be one sound, the second highest another, etc. Then what
    happens when a note is released? This is such a subtle problem that
    few synthesizers address this now, instead just using key ranges to
    decide the note sound. But it isn't the same thing. One of my more
    impressive demos was doing four-part harmony using a woodwind ensemble
    (flute, oboe, clarinet and bassoon or French horn). Using the
    pro-soloists on the four-channel Bose system in the small lab sounded
    very grand. In fact, the lab was under tight security and not ever the
    VP of marketing was allowed in, though he tried. (We wanted them to
    sell what they had now, not get musicians waiting for things to come.)

    =======================

    >From what I can tell the assembler code was organized like a basic

    program using line statements. Maybe that made it easy for the basic
    program to read the lines? Here is a sample of the code that I copied
    from the disk image file using a hex editor:

    0000 org 03fah
    0010 jmp evcod
    0100 org 0067h
    0110 ************************************************** ************
    0120 *
    0130 * Module EVCOD
    0140 *
    0150 * Written by Bruce Cichowlas 8/25/76
    0160 * Copyright Circle C - ARP Instruments 9/18/76
    0170 *
    0180 * EVCOD - evaluates preset code by table lookup
    0190 *
    0200 * C contains input code on entry
    0210 * A has answer (-1 indicates invalid code)
    0220 *
    0230 ************************************************** ***********
    1000 evcod equ $
    1010 push h
    1020 lxi h,cdtab ;code table
    1030 evco1 mov a,m
    1040 inx h
    1050 inx h
    1060 cmp c
    1070 jz evco2
    1080 cpi -1 ;indicates end of table
    1090 jnz evco1
    1100 mvi a,-1 ;return invalid indication
    1110 pop h
    1120 ret
    1130 evco2 dcx h ;rr back up one
    1140 mov a,m
    1150 pop h
    1160 ret
    1170 cdtab dw 0101h
    1180 dw 0202h
    1190 dw 0304h
    1200 dw 0408h
    1210 dw 0510h
    1220 dw 0620h
    1230 dw 0040h
    1240 dw 0703h
    1250 dw 0806h
    1260 dw 090ch
    1270 dw 0a18h
    1280 dw 0b30h
    1290 dw 0c60h
    1300 dw 0ffffh
    9999 *END



    0000 org 03fdh
    0010 jmp presc
    0100 org 0040h
    0110 ************************************************** ************
    0120 *
    0130 * Module PRESC
    0140 *
    0150 * Written by Bruce Cichowlas 8/25/76
    0160 * Copyright Circle C - ARP Instruments 9/15/76
    0170 *
    0180 * PRESC - checks the preset panel and sets the previous
    0190 * preset reading (prvpr), as well as the preset request
    0200 * word (prerq). This routine should be invoked frequently,
    0210 * as it actually does the preset panel scanning.
    0220 *
    0230 * No arguments
    0240 *
    0250 ************************************************** ************
    1000 presc equ $
    1010 push b
    1020 lda ppadr ;preset panel addr
    1030 ora a ;set flags
    1040 jz pres1 ;none set
    1050 mov b,a
    1060 lda prvpr ;load previous reading
    1070 ora b
    1080 sta prvpr
    1090 pres2 pop b
    1100 ret
    1110 pres1 lda prvpr ;find out if any were set previously
    1120 ora a
    1130 jz pres2 ;none before
    1140 mov b,a
    1150 lda prerq
    1160 ora b ;include bits set in b
    1170 sta prerq
    1180 xra
    1190 sta prvpr ;store 0 for the previous reading
    1200 pop b
    1210 ret
    5000 ppadr equ 1800h
    6000 *RAM
    6001 prvpr equ 08ffh
    6002 prerq equ 08feh

    0000 org 03e8h
    0001 jmp rdsld
    0002 jmp clman
    0003 jmp nmmsk
    0004 jmp msknm
    0005 jmp swpnl
    0006 jmp clsw
    0100 org 009bh
    0110 ************************************************** ****************

    0120 *
    0130 * Written by Bruce Cichowlas 9/3/76
    0140 * Copyright Circle C - ARP Instruments 9/16/76
    0150 *
    0160 * CLSW - clears all switches. No arguments.
    0170 * SWPNL - sets the switches from the scratchpad. Just
    0190 * one byte of them for now. No arguments.
    0200 *
    0210 * MSKNM - Converts a one bit mask to a number from zero
    0220 * to seven indicating bit position, e.g. 01h becomes 0,
    0230 * 80h becomes seven. Input and output are from the A register.
    0240 *
    0250 * NMMSK - Performs the inverse operation of MSKNM.
    0260 *
    0270 * CLMAN - Clears the manual lights for the slidepots. No
    0280 * arguments
    0290 *
    0300 * RDSLD - Reads a slidepot. On input, A contains
    0310 * the slidepot number, and on return it contains the
    0320 * slidepot's current value.
    0330 *
    0340
    ************************************************** ******************
    1000 clsw equ $
    1010 sta swclr
    1020 ret
    1030 swpnl equ $
    1040 push h
    1050 push d
    1060 lhld prbas ;base of scratchpad
    1070 lda slcnt ;slide count
    1080 mov e,a
    1090 mvi dČ,0
    H
    1100 dad d ;calculate address of switch values in the scratchpad
    1110 mov a,m ;get word
    1120 cma ;since switches use negative logic
    1130 sta setsw ;set the switches
    1140 pop d
    1150 pop h
    1160 ret
    1170 msknm equ $
    1180 push b
    1190 mvi b,7
    1200 mskn1 rlc
    1210 jc mskn2
    1220 dcr b
    1230 jnz mskn1
    1240 mskn2 mov a,b
    1250 pop b
    1260 ret
    1270 nmmsk equ $
    1280 push b
    1290 mov b,a
    1300 mvi a,1
    1310 inr b
    1320 nmms1 dcr b
    1330 jz nmms2
    1340 rlc
    1350 jmp nmms1
    1360 nmms2 pop b
    1370 ret
    1380 clman equ $
    1390 push b
    1400 push d
    1410 push h
    1420 lda slcnt ;slide count
    1430 dcr a ;convert to offset
    1440 clma1 push m
    1450 lhld lgbas ;man/auto light copy base
    1460 call wrdbt ;get wrdbt offset
    1470 xra a ;for reset
    1480 call setwb ; adjust bit
    1490 lxi h,lgdev ; light device
    1500 mov e,b
    1510 mvi d,0
    1520 dad d
    1530 mov m,a ;store new value
    1540 pop m
    1550 dcr a
    1560 jp clma1
    1570 pop h
    1580 pop d
    1590 pop b
    1600 ret
    1610 rdsld equ $
    1620 sta mxadr ;slidepot's MUX addr
    1630 nop ;wait for MUX to settle
    1640 nop
    1650 sta strtc ;start conversion
    1660 mvi a,6
    1670 rdsl1 dcr a ;delay
    1680 jnz rdsl1
    1690 lda adout ;get a/d value
    1700 ret
    7000 *ROM parameter table
    7001 prbas equ 0400h ;base of scratchpad
    7002 slcnt equ 0402h ;slide pot count
    7003 lgbas equ 0403h ;man/auto light copy base
    8000 *Device addresses
    8001 swclr equ 3003h ;store to this location clears the switch settings

    8002 setsw equ 3004h ;store to this setting stores the complement of
    the
    8003 * ;input into the switches
    8004 mx88adr equ 3000h ;store to here sets the MUX slidepot address
    8005 strtc equ 3002h ;store to here starts the conversion
    8006 adout equ 3000h ;this is where the a/d output is put
    8007 lgdev equ 3001h ;store to here sets the man/auto lights
    9000 *Subroutine
    9001 wrdbt equ 03e5h
    9002 setwb equ 03e2h
    equ bins
    6060 *
    8000 swtch equ 01800h
    9000 sortn equ 03f4h
    9010 bncnt equ 03e


  5. Re: AltairZ80 simulator updated

    logjam wrote:>

    Your recent post refers to a number of people including yourself, but
    it's not clear to me who is whom. My interest, other than curiousity,
    is that I have a S-100 Web site and I track (and post on my site) early
    development history of the mid 1970's. So your post below caught my
    eye.

    So excuse me for asking, but who exactly is "logjam"? I've followed a
    number of your posts but you've not posted your name, as far as I've
    seen, except maybe your first name. You've described a number of ideas
    and projects, some very sophisicated, so I assume you want people to
    know who you are at some point. You also say below you plan to have a
    Web site, so I assume you don't have one now. And "cmosxray.com" as a
    Web site has no suggestion of any interests in old computing, to
    otherwise identify you.

    >[The assembler in BASIC I have]
    > was used by ARP Instruments in the mid 70s on their
    > digital synth project. ......
    > More interesting than the code, is the story behind it. Up until now,
    > I don't think anything was ever known outside a few employees of these
    > experiments. I want to setup a web page with all this code when I am
    > done recovering it all.
    >
    > History from an ARP employee:
    > =======================


    Is this employee you? You've not named him or her.
    >
    > I tracked down the programmer (the guy who bought the Altair from the
    > Magazine article, that I now own):
    > =======================
    > Well, I was hired at ARP as an op-amp engineer ..


    Is this yet another person, the same ARP employee, you?


    > 0110 ************************************************** ************
    > 0120 *
    > 0130 * Module EVCOD
    > 0140 *
    > 0150 * Written by Bruce Cichowlas 8/25/76
    > 0160 * Copyright Circle C - ARP Instruments 9/18/76


    ....and is Bruce this engineer, the ARP employee, ...? Years from now,
    someone will find these posts and it will be a little late to sort out
    who is who then.

    Herb Johnson

    Herbert R. Johnson, New Jersey USA
    web site
    domain mirror
    my email address: hjohnson AAT retrotechnology DOTT com
    if no reply, try in a few days: herbjohnson ATT comcast DOTT net
    "Herb's Stuff": old Mac, SGI, 8-inch floppy drives
    S-100 IMSAI Altair computers, docs, by "Dr. S-100"


  6. Re: AltairZ80 simulator updated

    > So excuse me for asking, but who exactly is "logjam"? I've followed a
    > number of your posts but you've not posted your name, as far as I've
    > seen, except maybe your first name. You've described a number of ideas
    > and projects, some very sophisicated, so I assume you want people to
    > know who you are at some point. You also say below you plan to have a
    > Web site, so I assume you don't have one now. And "cmosxray.com" as a
    > Web site has no suggestion of any interests in old computing, to
    > otherwise identify you.


    I just updated my Google profile. My website will be located at
    www.stockly.com. Right now there are database issues which I don't
    have time to fix right now.

    I have been working hard for the past 9 months on some really neat
    S-100 devices. I hope to announce everything by the end of September.

    Logjam was my Grandfather's CB radio handle. He had a cabin on the
    Salcha River near Fairbanks. The river came right up to the cabin
    giving it a nice waterfront. Then some beavers dammed the river and
    there is now a steep 6-8 foot bank...so I guess that's where Logjam
    came from.

    > Is this employee you? You've not named him or her.


    No. I don't know if he wants to be nammed yet.

    > ...and is Bruce this engineer, the ARP employee, ...? Years from now,
    > someone will find these posts and it will be a little late to sort out
    > who is who then.


    Bruce was the programmer.

    Are you interested in all of the information for your website? Once I
    am finished copying it all...

    I have a few of the interface cards used to hook the Altair to the
    music synth machine as well as a binder full of notes written on ARP
    stationary. Its very interesting stuff from a historical point of
    view.

    Grant


+ Reply to Thread