Third and final attempt at the Altair project

Vintage Events and off topic talk

Third and final attempt at the Altair project

Postby vbriel » Feb Fri 27, 2009 4:50 pm

Well, I started the redesign of the Altair project again. This will have the 8080 compatible 8085 CPU. Anybody wondering why I didn't go with the 8080, it is simple, it is a multi voltage processor whereas the 8085 is not. The 8085 should be 100% software compatible with the 8080 unlike the Z80 as I found out too late.

I'm going the same route where I'm going to have a microcontroller take charge of the CPU to handle the singlestep, and programming of the memory and exam, exam next features.

The prototype I'm making will have 32K RAM, probably no EPROM, but I may change that, and a 6850 based serial port for Altair compatibility. The end result should be 4K, 8K and extended basic being able to run.

I'll start posting pictures of the schematic progress as I progress. I might even have some preliminary stuff tomorrow but I'm swamped with PockeTerm orders so I can't be sure.

Vince
Last edited by vbriel on Jan Sun 31, 2010 3:16 pm, edited 1 time in total.
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby AndyC » Feb Sat 28, 2009 8:43 am

I am very much looking forward to seeing your progress on this one, third time lucky and all that:)

The previous prototypes look amazing, there's very little i wouldn't do to get the money together to purchase the finished item:)

Andy.
http://vectrex.playntradeonline.com - Home of the 72 in 1 Vectrex Multicart
http://www.rastervision.co.uk - UK based electronic design, prototypes, and manufacture
AndyC
 
Posts: 8
Joined: Jan Sat 03, 2009 10:24 pm

Postby vbriel » Feb Sat 28, 2009 12:08 pm

This project has cost me more in development than all my other projects combined. I don't want to just throw something together just so I can say it's finished. I want it to have the specifications and Altair BASIC functionality. Some of the status LED's won't be exactly the same since it isn't a 8080 but stepping, storing and running programs will be the same.

Plus, I'm going to control the CPU differently this time. The microcontroller will receive an interrupt every clock cycle when doing certain functions. This should give me even greater control of the CPU. I am concerned about inserting instructions into the data stream, but I will work that out.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby Bill Loguidice » Mar Wed 11, 2009 12:52 pm

Good luck! This is perhaps what I'm most excited about of all the projects to date.
User avatar
Bill Loguidice
 
Posts: 35
Joined: Jun Mon 04, 2007 9:05 am
Location: Central New Jersey, USA

Postby scelbi8h » Mar Wed 11, 2009 6:18 pm

Agreed with Bill Loguidice. It's a GREAT project :D

Being able to run basic for Altair 8800... Sounds like a dream for a retro-computers user 8)
scelbi8h
 
Posts: 21
Joined: May Sun 07, 2006 12:36 pm

Postby vbriel » Mar Thu 12, 2009 7:33 am

dex,

Grant's Altair 8800 kit is very special. He desoldered his rev 0 Altair boards to get them reproduced. This cost him $$$. The case is made by the original company that made them for MITS. That being said, his kits are high end kits, you get a true clone for that price.

My goal is functionality at low cost. The hard part is the switches. Any good switch cost over $3 each so that makes the panel more than a replica 1 in cost.

Just to note, the PockeTerm has kept me busy for the last few weeks but I should have more done on the Altair this weekend. I'm working on port 255 front panel switch read circuit now. It is differs from the Z80 version because of different signals on the CPU's.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby vbriel » Mar Sat 21, 2009 10:29 pm

Ok, finally I had 30 minutes to work on the Altair 8085 project. Here's a picture of the IO port 255 front panel switch circuit. The Altair Basic checks port 255 "Sense switches" to help with serial port settings. The circuit below shows that it put a low on the signal BNK2 that goes to a 74LS245 latch if the IO/M, S1, and S0 conditions are met. Also BNK2 goes low if BANK2 signal coming from the microcontroller tells it to latch.

http://www.brielcomputers.com/wik/image ... ort255.JPG


Somebody out there want to check my math?

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby xprt » Mar Sun 22, 2009 1:51 am

Your bus transceiver should be enabled when the RD signal is active (low).
You shouldn't use the S0 and S1 signals at all.

You want BNK2 = 0 when
A8..A15 all = 1,
and IO/M = 1,
and RD = 0,
or BANK2 = 1

BNK2 = !(A8 * A9 * A10 * A11 * A12 * A13 * A14 * A15 * IO/M * !RD + BANK2)
xprt
 
Posts: 23
Joined: Jun Sun 15, 2008 8:05 pm

Postby vbriel » Mar Sun 22, 2009 9:02 am

Thanks xprt, I changed the circuit to this:



Image

Hows that look? My list doesn't include RD but it is there in the circuit

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby xprt » Mar Sun 22, 2009 10:57 am

That looks good.

By the way, I did use the S1 line for the 6850. The 6850 has an E input and an R/W input. The R/W input has to be set before the E input.
The S1 output is set by the 8085 near the beginning of the machine cycle and is valid through the rest of the cycle. As the datasheet says, it can be used as an advanced R/W status, since it's low for write and high for read. So I used S1 to drive the 6850 R/W input. I nand'ed the 8085 RD and WR signals to generate the 6850 E signal.
xprt
 
Posts: 23
Joined: Jun Sun 15, 2008 8:05 pm

Postby vbriel » Mar Mon 23, 2009 1:29 pm

Adjusted the settings. By the way, I found this free document online:

http://www.scribd.com/doc/6670390/The-8 ... chitecture

Very nice details to the timing structure of the 8085. It will really help me get the JMP instruction inserted for the examine and examine next switches.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby vbriel » Mar Fri 27, 2009 7:20 am

Just an update, I've been working on the design and added a mux chip to seperate the RD, WR, and chip select signals going to the RAM from the CPU and muxing with signals from the AVR microcontroller. This way, the RD, WR signals have no signal contention when trying to access RAM when doing a DEPOSIT from the front panel.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby vbriel » Apr Thu 09, 2009 11:02 pm

Well, in order to replicate the Altair, you have to be able to take control of the CPU. When you pull ready, it puts the status signals in a weird state. S0, S1 are always high and ALE is always low. Without being able to hold the CPU and read the status signals, it's like driving a car blind.

I'm going to sleep on this, I thought that there might be trouble controlling the 8085 steps.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby vbriel » Apr Fri 10, 2009 5:09 pm

Well according to the datasheet, the ALE is never tristated so I must conclude that I have either not been able to stop it with ALE high or you can't stop it when it is high. The other issue is S0 and S1 are always high when I stop the CPU, can't get any other state out of it.

To get a singlestep Altair compatible machine that runs Altair Basic the only choice might be microcontroller emulatiion or use a 8080A CPU.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Postby vbriel » Apr Fri 10, 2009 10:38 pm

Ok, more work on this. The 8085 is just going to be more work, I can do this. I put a STA instruction on the data bus and ran the CPU. Now I can see S0 and S1 change and RD and WR change. I can thus verify the status working when READY is pulled low.

It will still be a challange to program it, but I am pretty sure I can. I think I will wirewrap a small test board to a uController and a switch to run some tests before I prototype a board.

The good news is I can read the status signals so I can insert JMP when S0 and S1 are high, run a specific number of clock cycles, then insert the switch values in the jump. It's a little tricky with the timing but I should be able to get it.

Vince
User avatar
vbriel
Site Admin
 
Posts: 1184
Joined: Jul Tue 19, 2005 12:10 pm
Location: Ohio

Next

Return to Venues, projects and off topic stuff - NO SPAM

Who is online

Users browsing this forum: No registered users and 0 guests

cron