| WWW.ALTAIR32.COM | |
| 
     | |
| REAL PROGRAMMERS 
        DON'T NEED KEYBOARDS! | |
| Altair32 Project Status 
           2/18/2018 -- I received an updated copy of the 8800b manual with a missing page replaced; posted. 1/16/2015 -- I posted scanned manuals for the PCC Acounting Package. Scans include manuals for A/R, inventory, A/P, G/L and Payroll. 12/21/2013 -- I posted a new version today. This version includes support for hardware interrupts. While this is a great feature (thanks to Mike Douglas for the coding), there are only two programs that I'm aware of that use it -- AltairDOS and Timeshare BASIC. I'm going to work on getting TS-BASIC working, but it requires full support for the VI/RTC board. 2/1/2013 -- I posted a new version of the emulator today to correct a minor bug in the disk code. I also went back and compiled in VS2003 as a test to eliminate compilation anomalies with VS2008. 1/8/2012 -- Happy New Year! Today I uploaded a zip file containing WineBottle'd versions of Altair32 and Imsai32 as provided by Barr Nelson. It's a huge file (127mb) but it provides a way to use the emulator under Mac OS X without rewriting the code. 9/17/2011 -- The v.30 code refresh has been posted. There are still a few things to do, like fix the help file, but the code is up. There have been a few user-contributed big fixes and enhancements, making this a decent maintenance release rather than a wholesale re-write. 6/6/2010 -- I'm currently working on a code refresh to improve the "security" of the code since Visual Studio 2008 complains all the time. On the front panel, as with so many things, timing has slipped. Every time I promise a potential delivering timing, I miss it, so I'm going to stop doing it :-) But seriously, I really hope to have it done soon. 8/26/2009 -- The ACR->binary utility is done and it works. I have no idea how many people used or still have working ACR Revision 0 cassette tapes laying around, but writing a software DSP with Bob Grieb, was a great learning experience. I have some pending roll-up changes, including testing the hopefully-final DLL code for the front panel. We're getting quotes from several board houses and I hope that we'll be able to have boards made by the fourth quarter. 1/6/2009 -- I scanned three articles from BYTE Magazine from 1976 and 1979 regarding the Cromemco Dazzler. 11/26/2008 -- I was able to locate a better copy of the 88-ACR manual, so I replaced the copy posted here. I'm also working on adding direct support for reading 88-ACR audio cassettes. 7/27/2008 -- Here's a much needed update. With many hobby things, it just takes longer than expected. However, the revision 2 board design is done and we're getting ready to do a run of 20 of them. Most of the re-design was to make more parts through-hole and to add the capability to mount an FPGA. With the right software, this board can me made to work as a stand-alone Z80 Altair emulation. We're still finalizing prices and things, but I would expect to offer a partially-built PC board which contains only a few key parts (used for board verification), and possibly a complete parts kit. We're still firming-up costs and things. I've kept everyone's inquiry emails so look for something from me soon. 2/1/08 -- I'm waiting to hear from my partner about the boards we're having made. Update to come soon. 11/30/07 - The revision 1 board is complete and we're sending the design to the board shop to have an initial run of 20 made. There have been a lot of changes to the design, so I have to create a new bill-of-materials spreadsheet with prices, and do some live testing with the emulator and an updated DLL. 07/08/07 - Alright, it's been a long time since the last update but really not much has been going on. We just recently finished re-designing the front panel control board to reduce the size a bit and to substitute through-hole parts for most of the SMT parts. I think that I'll have a test article in a few weeks and I'll be able to make the necessary changes to the code to support the minor enhancements we made from the v.0 design. This week I hope to work on the final bill of materials and start setting pricing. Also, I started framing out an OS X port of the emulator. I purchased a Mac Mini a few months ago and now I'm re-immersed in the ways of the Mac (the last Mac I owned was a "Fat Mac" about 20 years ago). I bought some OS X programming books and I just started reading them this week. So, once I get comfortable with the XCode environment and the programming model, I can start porting the emulator. It's going to take some work particularly with the UI code but a lot of the core logic should port with no problem. 11/16/06 -- Version 3.20.40 has been released. Go to the Current Code page to download. 11/09/06 - Ok, work on the next release is nearly complete. I'm just putting some finishing touches on some things now and it'll be out by the end of the month. On the front panel side, I spoke to Howard a few days ago and the re-design is nearly complete, waiting for him to finish his VCF 9.0 stuff. I really do hope to close out that project very soon and begin selling board. 09/02/06 - Rodger had been helping me (well, he did most of the work) to fix the Dazzler implementation. It turns out that my implementation was seriously broken and although it did display something, once I got real programs, it didn't work too well. So, Rodger fixed it, made it threaded, and provided tested programs. The Dazzler implementation now includes support for the Cromemco JoyBox (a necessity for certain games) and supports a real joystick connected to the host. Great work, Rodger! Expect a release of this updated version shortly. On a related note, the Altair32 Front Panel is nearing completion. Howard has been redesigning it to reduce manufacturng cost (removing unpopulated components and reducing board size). I don't want to promise a release date -- since I can never get it right -- but I don't think it's too far off. 06/25/06 - I got the code for the updated Dazzler emulation and it uses the keyboard to emulate the JS-1 Cromemco joystick. I've tried the games and they work well but I find the keyboard (through Telnet) awkward to use. I'm investigating using a real joystick using DirectInput, so we'll see how that goes. 06/04/06 - A friend sent me pictures of the Altair32 running different Cromemco Dazzler games. I don't have the games from him yet to post, but when I do I'll be sure to post them. Yeah! See the pictures here. I've also posted some Dazzler-specific manuals. 05/20/06 - The time has come! I have posted version 3.1 of the emulator which includes several bug fixes and enhancements, in addition to support for the Altair32 Front Panel. The Front Panel hardware will be ready for release in the next month or so. Check out the A32 Front Panel page for more info. 04/07/06 - Good news. Yesterday, I received a pre-production sample 
            of the front panel board and it works beautifully! There are a few 
            changes we need to make before it's released, but the issues are very 
            minor. Overall I'm extremely pleased with the results. My partner 
            in this project has done an amazing job putting this together. Tonight 
            I'll start testing it with the Altair32 (it now works with SIMH on 
            a test basis). Pictures will be posted shortly.  03/10/06 - A quick update. I'm holding off releasing a new version 
            as the front panel test article will be out of manufacturing next 
            week. Expect to see a code release by tax day.  01/17/06 - Not much going on here. A refresh of version 3.0 should 
            be posted shortly which incorporates some minor internal changes but 
            no new features -- yet.  07/14/05 - This is a familiar refrain unfortunately. It's been several 
            months since I started adding support for the various hardware items 
            I mentioned previously. The big thing I'm waiting for is a test article 
            for the front panel code. I will probably continue to toy around with 
            the hard drive code, though. In the mean time, I got myself a real 
            Altair 8800b and a real IMSAI 8080 so I've been spending time restoring 
            them while I wait for some front panel hardware to play with.  
 11/25/04 - Happy Thanksgiving everyone! There are a few nifty improvements 
            on-tap for the next version of the Altair32. Among the enhancements 
            is a Z80 CPU core that does full cycle emulation. There are two more 
            significant enhancements but they are not far enough along in testing 
            for me to spoil the surprise for everyone. Expect more info sometime 
            in the first quarter of 2005.  08/12/04 - Well, it's done! Finally, version 3.0 has been completed 
            and posted. There have been many enhancements and I believe this is 
            the most stable version to date. Look for it on the Downloads 
            page.  07/17/04 - Vintage Computer Festival East Update. Well, I guess I 
            over-promised a bit. I had hoped to have the newest version (now renumbered 
            3.0) by VCFe yesterday, but it didn't happen. Over the July 4th holiday, 
            Scott completed a re-write of the timeslicing scheduler to make it 
            multithreaded. This results in greatly improved performance and reduced 
            host system load. The Altair32 can achieve prototypical 2MHz speeds 
            with as little as a Pentium III/500MHz (the slowest machine tested). 
            On an "unregulated" basis, I've achieved 80MHz. Imagine 
            the cooling necessary to over-clock the 8080 to 80MHz :-) Anyway, 
            the last piece of the puzzle is revised disk images which should be 
            ready shortly.  05/31/04 - Release 2.6 is done. Scott is preparing some updated disk 
            images with a revised CBIOS to support a separate "LIST" 
            device and is preparing some revised import/export utilities for use 
            under CP/M. I don't want to over-promise but I think that the release 
            should be ready by July 1st.  03/06/04 - The code for the next release is about 90% done. All that's 
            left to do, really, is beat on the code for a while, refresh the help 
            files and re-build the CP/M disks to include a revised CBIOS. I figure 
            that the next release will be before mid-March.  12/12/03 - It's been a long time and I needed to do an update. I've added four manuals to the Technical Links page: a schematic of the original 8800 front panel and the single-part (one-file) versions of the 8800 Construction Manual, 8800 Operations Manual and the 8800b Operations Manual. 
 On the code front, I didn't spend much time on the code until September when I decided that some of the dialogs needed renovation. I've gotten rid of the paper tape reader in favor of the 88-ACR audio cassette interface since it seemed that not many people used the paper tapes. Data on the audio cassettes was stored in the MITS Absolute Tape Format, which is the same format used for the paper tapes. So, although the interface looks like a Radio Shack CCR-81, it will read and write all paper tapes and cassette tapes. There also is a new line printer dialog box with a graphical 
          background. The printer now emulates, for the time being, the MITS 88-LPC/88-LPR 
          controller/printer combination. This really is a work in progress because 
          I don't think many people actually owned an 88-LPR. I'd rather support 
          a generic "Centronics" printer but I don't have a manual for 
          one so I don't know what control codes to emulate. With the help of Rodger, I made some enhancements to 
          the 8080 core to enable people to play "Kill the Bit" and 
          other front-panel games that were designed for a computer with a physical 
          data bus. Based on the work that still has to be done, I figure 
          that a new release will be made sometime in February. 04/30/03 - Rodger Smedley made a few minor enhancements to the TCP and scheduler code to greatly reduce the host CPU utilization when using Telnet as the connection method. A patch file is available on the Current Code page. 04/26/03 - OK, we're done! Another release of the emulator for all 
            to enjoy.  04/13/03 - I'm getting close to another release of the emulator. 
            The new help system is done. The Windows Console supports full VT100 
            control code interpretation (including color). Other contributors 
            to the project added support for a true serial terminal to be connected 
            to the emulator. There are new front panel graphics as well as a new 
            and prettier emulated disk drive. The last enhancement on the docket 
            is revised paper tape punch/reader graphics. The release of the new 
            version should occur in the next few weeks.  11/29/02 - I've begun work on enhancements for version 2.5 of the 
            emulator. Some of the enhancements completed include a configurable 
            telnet port, a new compiled HTML help file, adjustments to conditional 
            call and return instructions to properly record cycles, and the ability 
            to create blank diskettes on-the-fly. Other enhancements are to include 
            VT100 control code interpretation.  11/15/02 - Many improvements have been made to the emulator over 
            the last two months. Scott has re-generated new CP/M 2.2 disk images 
            from a real Altair, has added "large disk" support to the 
            CBIOS, built a CP/M source disk, modified the Turnkey Monitor to work 
            on the Altair32, wrote a file transfer utility and provided a working 
            copy of the very rare BASIC 5.0.. I've moved the Altair32 code to 
            a time-slicing model so that it's not so much of a CPU hog while spending 
            time in the message loop. The configurable memory ranges work perfectly, 
            and I've built the infrastructure to support saving configurations. 
            On tap for the next version is partial VT100 support for the Windows 
            Console, a toolbar, and a tabbed configuration dialog. Stability is 
            excellent, and with the time-slicer, x86 CPU utilization is around 
            20%. I've also posted a copy of the entire Simtel CP/M archive...see 
            the Current Release page for the download link.  09/24/02 - Recently I've been working on modifying the emulator to 
            support configurable memory ranges much in the way someone would plug-in 
            an 8k ROM board. Supporting this, of course, required changes elsewhere 
            in the code. I've also added support for using the Windows Console. 
            Available on all versions of Windows but most functional on NT/2000/XP, 
            it provides a built-in equivalent of a terminal. Unfortunately, it 
            doesn't support ANSI escape sequences, so certain programs that require 
            "real" terminal functionality (like VT100 support) won't 
            work properly.  08/23/02 - An eagle-eyed user of the emulator discovered that under certain circumstances, disk images experienced corruption. Upon close examination of the code, it seems that I introduced a "one-off" error in an array. As a result, I've posted a "dot 10" minor version that contains the fix. 
 07/09/02 - Well, here it is. Version 2.3 of the emulator. Only minor 
            changes to the core code to address a null pointer issue. Some major 
            changes to the debugger to accommodate source code overlays in the 
            disassembly window. Refer to the help file for more information.  06/06/02 - Jim Battle released version 3.1 of his Solace SOL-20 emulator. 
            The Altair Integrated Debugger code was derived from the Solace code 
            base, so I've spent the last few days merging the code changes into 
            the Altair32. The single biggest change was adding source-level debugging. 
            One can associate an assembler listing file with a loaded ROM and 
            when debugging, the user can see and follow the underlying source 
            code in the debugger window. I also made a small fix to the disk controller 
            code to prevent a NULL pointer fault if, when executing random code, 
            the Altair32 happens to execute an IN or OUT instruction to the disk 
            controller and there's no disk image attached.  04/18/02 - Nothing really happening here. I was asked to consider 
            writing an emulator for the Altair 680b, an MC6800-based computer. 
            The front panel is not as elaborate and neither is the list of available 
            peripherals. The hardest part that I can see is writing the 6800 emulator 
            from scratch.  02/08/02 - I'm getting ready to release the 2.2 version of the emulator. 
            A few last minute funnies have been fixed and Scott has been diligently 
            ironing out the problems with moving data onto and out of the disk 
            images.  01/19/02 - Happy New Year to all! I've been doing some minor tweaking 
            to the code lately, such as reducing the number available emulated 
            drives to four from eight since the CP/M image only supports four 
            drives. I've also solved all of the screen problems described below. 
            Apparently the Microsoft telnet client isn't as compliant with the 
            RFC as one would expect, causing lost characters and the like. Switching 
            to another telnet client software package such as Tera Term Pro solves 
            the problems. ^G (bell) now works, too. In the next month I should 
            be ready for a maintenance release--I have to get the program importing 
            to work properly.  12/30/01 - Jim Battle released version 3.0 of his Solace emulator, 
            the project from which I borrowed the debugger code. So, I've spent 
            the last few days merging the changes into my code base. Jim also 
            came up with a novel solution to getting programs into disk images. 
            Using code from Tim Mann's TRS80 emulator, an "import" and 
            "export" program uses invalid op-codes to trap I/O access 
            to the emulated disk subsystem. These accesses can then be redirected 
            to separate emulation code that can copy files from/to a PC filesystem. 
            This looks much easier to implement than writing separate image manipulation 
            tools.  12/15/01 - Yesterday version 2.1 was complied for the last time and 
            "went gold". You can download the official 2.1 release on 
            the Current Code page. The "readme" file contained therein 
            describes what's needs to be done next and what problems exist with 
            the 2.1 release.  12/09/01 - All disk images (except for the 5mb hard drive image) 
            work perfectly, as does 8k and Extended BASIC on paper tape. Unfortunately, 
            a regression failure has occurred and 4k BASIC no longer works (this 
            is giving me fits right now). The integrated debugger is fully functional 
            except for three commands which have been removed. The HTML help files 
            are almost complete. I expect the official 2.1 release to occur in 
            the next week.  11/12/01 - In the last month, I've made the final changes to the 2.10 beta version and forked the code so that I can begin working on the integrated debugger. I'm still having console input problems with 8k BASIC and CP/M. Arrrgh. 
 10/19/01 - I've been able to improve the tape speed by buffering 
            the entire tape in a RAM buffer and "reading" from there. 
            It still doesn't work properly but at least it doesn't work properly 
            faster :-) I've also changed the screen appearance slightly by moving 
            the windows around at startup to give a less random appearance. I've 
            started work on the AID -- Altair Integrated Debugger. AID was borrowed 
            from the Solos project by Jim Battle. Solos is a Processor Technology 
            SOL emulator which uses a Z80 processor (available here).  10/3/01 - It seems that I've gotten the paper tape emulation working. 
            Unfortunately, it's dog slow; something on the order of less than 
            10 baud. I think that even the ASR33 worked faster than that. I'm 
            going to let it run until completion and see if the front panel loader 
            program bootstraps BASIC 3.2. If that works, I'm going to freeze the 
            code and work on the debugger. The key to using tape images is to 
            strip any leader bytes out of the image. It's OK to have the punched 
            leader for archival purposes in generating another physical paper 
            tape, but it mucks with the loader code.  9/27/01 - I've been able to get CP/M to boot!!! I have a disk image 
            of CP/M 2.2 that I've been able to boot -- whoo hoo! That's the good 
            news. The bad news is that it seems to crash at the A> prompt. 
            I won't know why this is until I get the integrated debugger working. 
            I've asked the original author of the CP/M port to provide the source 
            for the modified BIOS to aid in debugging this issue.  9/20/01 - I've been working feverishly to get true paper tape emulation 
            working so that one could use a toggle-in loader to load a real tape 
            image instead of a "memory image" which is what I've been 
            using to date. That's almost complete. After that, I'm going to freeze 
            the code so that I can work on an integrated debugger.  9/3/01 - Now that the emulator works fairly well, I decided to benchmark 
            it against a real ALtair. So, I found a simple benchmarking program 
            (about 15 lines) and a friend calculated the theoretical completion 
            time using the 8080 data book. Although the full results are on the 
             Specifications 
            page, the short answer is that Altair executes as if 
            it had a 2.5MHz 8080 CPU, slightly better than the original 2.0MHz 
            one supplied with the Altair.  8/30/01 - I've been working on minor fixes and enhancements, sort 
            of lining-up for a "dot 1" release. Some of the enhancements 
            include an improved start-up register state, the elimination of extra 
            notification dialogs when loading and saving files, direct support 
            for a true PTP device (enables using real paper tape images), minor 
            fixes to correct data LED synchronization after loading a file and 
            on "immediate" CPU instructions, and finally some simple 
            debugging tools (a register display, a "core dump" command 
            and a "loaded disk" dialog. The final enhancement, which 
            may not make this intended release is an integrated debugger with 
            breakpoints.  8/19/01 - This weekend brought the official release of Altair32 v2.0. 
            Theo got the CPU to finally pass the verification test. Then, after 
            a few last minute tweaks, he got BASIC working. Now that I have a 
            proven platform, I can get the diskette images to work.  8/7/01 - The telnet code works great. Theo found three more bugs 
            in the processor code which he has fixed. He also attempted booting 
            Altair BASIC 3.2 (4k BASIC) and have gotten as far as the "Terminal 
            Width?" prompt. I hope that by the end of the week, he'll have 
            BASIC running in the emulator. One nice side effect of the telnet 
            code is that it's not restricted to "localhost". It will 
            work over any network.  
 7/21/01 - Having nothing to do around the house recently, I picked 
            up on the Altair code again. For now, I've dropped ODT support. On 
            the plus side, I started working with the telnet code again. The H19 
            code was blown out of the water because it uses named pipes, which 
            only work on Windows NT or 2000 (and probably XP). I bolted the telnet 
            code into the I/O space of the emulated 8080 processor and have Theo 
            looking at some of the changes I made. I can't seem to get the server 
            code to "accept" a remote connection, so the state machine 
            is hanging.  6/7/01 - I think that I've nailed all of the funnies in the processor 
            core and the use of macros for the register variables seems to work 
            well. I'm not attempting prototypical execution speed, so I will probably 
            only put in a half-hearted optimization effort on the core. I've had 
            one report about the "rotate through carry" instructions 
            not, well, rotating through carry. The code looks fine, so I have 
            to think about this one. I've also started working on a hex keypad 
            and display add-on called the "ODT" (for Operator's Debug 
            Terminal). My ODT is really loosely modeled after the ODT console 
            on the PDP 11/34a I have in my basement. What's wrong...you don't 
            have an 11 in your basement???  5/24/01 - I've made all of the modifications relating to using register 
            macros. In the process, I found more errors in the processor core 
            that required recoding some instructions like RST. I also came across 
            an anomaly with the stack pointer because of the 88-DSK ROM located 
            in the last page of memory. Actually, the result is prototypical -- 
            the stack doesn't work with the ROM in page 0xff. The Intel manual 
            even admonishes that the first thing a user program should do is to 
            set the stack pointer to the "top of stack", which in this 
            case should be 0xfeff. Otherwise, the code is going through regression 
            testing now.  5/18/01 - Darren Gillis has found more problems with some CPU instructions 
            that use word registers, like INX and DCX which I suspect is an issue 
            with how C stores word values in an array. The solution, provided 
            by Sean Conner, involves using macros to synthesize word variables 
            out of the byte registers.  5/8/01 - Possibly found a solution to the VDT problem by using "named 
            pipes" and an H19 VDT emulator.  4/14/01 - Someone sent me an 8080 processor test program that exercises 
            all of the valid 8080 opcodes. This has enabled me to find further 
            errors in the original processor emulation core. However, I'm not 
            able to test certain instructions because the assembler that I'm using, 
            A85, appears to output invalid opcodes for MVI instructions (every 
            variant resulting in 06h).  3/4/01 - I've fixed all of the CPU instruction funnies that have 
            been reported to date. I also have scanned and converted two 8080 
            programs: the Amsat-Golem 8080 Monitor program from BYTE Magazine 
            and the Lawrence Livermore Labs BASIC from Dr. Dobbs Journal January 
            1977 issue. I haven't tested them on the emulator, but I've fully 
            proofed them, so they should work.  2/18/01 - Some users have notified me that there are some "funnies" 
            in the CPU instruction routines. These errors appeared to be a carryover 
            from the initial source from Claus. I'm in the process of testing 
            them now, but I think that the errors (and the fixes) are fairly obvious. 
             1/21/01 - The last few weeks have been busy, so work has progressed 
            slowly. All major functions (except for the VDT module) have been 
            coded and lightly tested. Disk code appears to work, but I'm waiting 
            for some "live" test software in order to try it out. Printer 
            output also appears to work. I'd say that the source should be ready 
            to post shortly.  
 12/04/00 - The floppy emulation code has been integrated into the 
            emulator. Emulation support is limited to the MITS 88-DSK 8" 
            disk controller even though there were other controllers available 
            from many manufacturers. I'm waiting for the VDT code to be completed 
            so that I can attempt to boot the Altair from a disk image that I 
            was able to get.  11/25/00 - File save and load in Intel Hex and straight binary formats 
            works. Installable ROM facility works using a text configuration file. 
            The base code compiles with no errors or warnings. Work progresses 
            on the disk code. Right now, I'm working on connecting disk image 
            files to each virtual drive.  | |
| 
      Copyright (c) 1998-2014Richard A. Cini, Jr.  All Rights Reserved. 
        All copyrights of any third parties referred to herein are hereby acknowledged. 
        There is no warranty, either express or implied, relating to any 
        of the content contained herein. The site maintainer shall in no event 
        be liable to anyone for damages, including any loss of profits, lost savings, 
        or other incidental or consequential damages arising out of the use or 
        misuse of the information contained on this Web site. You may use the 
        information contained herein for NON-COMMERCIAL purposes only and AT YOUR 
        OWN RISK. Batteries not included. Contents may settle during shipping. 
        Updated 
        18-Feb-2018 21:54 -0500
         Website Design by www.DressageArt.com | |