replica 1 firmware now available

17 replies [Last post]
vbriel
Offline
Last seen: 1 year 19 weeks ago
Joined: Old Guard
Posts: 249

I have finished making the firmware available for all to use, modify, and hack away. This is now free but not for commercial use.

here's the link:

firmware

Enjoy,

Vince

__________________

replica 1 The Apple 1 replica and the new Micro-KIM!
brielcomputers.com

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
supertrone's picture
supertrone
Offline
Last seen: 2 years 47 weeks ago
Joined: Old Guard
Posts: 5
assembler errors

I have been trying to assemble the video firmware with AVRstudio4 but keep getting the following errors:

(1427): error: Undefined symbol: i2cstat
(1427): error: Invalid register
(2328): error: jmp k: Unsupported instruction on ATmega8
(2405): error: Undefined symbol: i2cstat
(2405): error: Invalid register
(2439): error: Undefined symbol: i2cstat
(2439): error: Invalid register
(2618): error: jmp k: Unsupported instruction on ATmega8
The numbers in parenthesis are line numbers in the source, any help out there would be great.
regards,
Nathan Trone

skurk
Offline
Last seen: 2 years 20 weeks ago
Joined: Sep 22 2008
Posts: 5
Did you ever get it working?

Did you ever get it working?

I just downloaded the firmware and tried to compile the Video firmware in AVRStudio4 too. I get the error message "error: Illegal argument type or count" on the following lines in "R1 Video Rev C.asm":

1427: ldi i2cstat,0x00
2405: st Y,i2cstat
2439: ldi i2cstat,0x80

It was also a colon (":") instead of a semicolon (";") in one of the comment lines, so the code has obviously been modified and published without being tested.

Anyone have a fix? I don't have much experience with Atmel assembly (yet).

Are there any pre-compiled HEX files available for download?

vbriel
Offline
Last seen: 1 year 19 weeks ago
Joined: Old Guard
Posts: 249
The code posted was directly

The code posted was directly from working code. I've had compatibility issues with different revisions of studio 4.I'll see if I can upload that last known version.

Vince

__________________

replica 1 The Apple 1 replica and the new Micro-KIM!
brielcomputers.com

mp3mp
Offline
Last seen: 3 years 3 weeks ago
Joined: Aug 26 2008
Posts: 3
thanks for help

thanks for help

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
Code is broken

There are three issues with this code. I haven't burned a device to test it yet, but I did get it to compile.

One set of errors involve i2cstat. The way it is used implies it is a register. I noticed r22 isn't used so I added the following line:

.def i2cstat = r22

There is no jmp instruction in the ATmega8. I changed the two instances of jmp to rjmp.

Finally this code will never work as is.

Once the empty data is declared after the following line:

.ORG 0x900
emptydata:

You get to:

rjmp RESET ; Reset handler at $000
;------------------------------------------------------------------------------

RESET:
main:

The above places the reset vector a ways past 0x900 when it should be at 0x000.

I moved this to the beginning:

.ORG 0x000
rjmp RESET ; Reset handler at $000

.ORG 0x100
line1data:

I'm not an AVR expert but it is clear to me this code is broken. I'll post once I try burning a device and testing it in my replica1.

Mike

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
I've been poking around with

I've been poking around with the simulator. I noticed the initilization code puts blanks in the first two lines were the comments mention it will put @s in all 24 x 40 lines.

I'm not dissing the code or authors but it's going to be hard to work with this.

Mike

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
I changed the code to put bla

I changed the code to put blanks initially in all 24 x 40 lines and it seems to work the same as what is supplied on the Replica 1.

My next issue is mouser tells me a ATmega8-16pu is the same as an ATmega8-16pc. I have two pu parts, they don't work. I can program the original -pc Vince supplied with either my code or the original code read from the device and both work. The -pu parts don't work.

So there is a difference in the parts but with my mods the code seems to work with the original part.

Mike

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
Figured it out. I forgot to p

Figured it out. I forgot to program the fuses to select the external crystal. I now have a working image in a -16pu part.

Mike

vbriel
Offline
Last seen: 1 year 19 weeks ago
Joined: Old Guard
Posts: 249
Have you put the circuit toge

Have you put the circuit together to make sure it is working for you? Someday if I every find time, I'll post the final version with the flashing @ for the cursor that starts at the top like it is suppose to.

Vince

__________________

replica 1 The Apple 1 replica and the new Micro-KIM!
brielcomputers.com

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
If you're asking if it works

If you're asking if it works in a replica 1 then the answer is yes.

Mike

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
Fixed Vertical Sync

Here is a version that mimics the NTSC standard for vertical sync. It greatly improved the display on an LCD monitor.

http://home.comcast.net/~mffortuna/R1%20Video%20Rev%20C_fixed.asm

Mike

supertrone's picture
supertrone
Offline
Last seen: 2 years 47 weeks ago
Joined: Old Guard
Posts: 5
I finally managed to get a ch

I finally managed to get a chip to program and verify , thanks for the fixed code Mike! I have been trying to build a wire wrap version using Tom Owad's book and the online schematics. Pin 15 SH/LD appears to be unconnected in the schematics, is this correct? Hooked up like that I'm getting diagonal lines on my monitor (with the brightness turned way up) unless I hit the clear button which produces a blank screen. I appears the to me Atmel IC is producing sync signals but the video isn't getting shifted out. Has anybody else wire wrapped one of these out there? By the way I recently saw Vince in "Welcome to Macintosh", way to go Vince!

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
I can't find my CD with the R

I can't find my CD with the Replica SE schematics but I'm 99.9% sure you need to hook PB0 from the Atmega to the SH/LD pin 15.

Mike

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
I found my CD while looking f

I found my CD while looking for something else. Yes you need to hook Atmega PB0 to pin 15.

supertrone's picture
supertrone
Offline
Last seen: 2 years 47 weeks ago
Joined: Old Guard
Posts: 5
I hooked up PB0 to pin 15 as

I hooked up PB0 to pin 15 as suggested but it still isn't functioning properly, would you mind uploading the SE schematic?

mfortuna
Offline
Last seen: 2 years 6 weeks ago
Joined: Jan 29 2008
Posts: 44
Vince hasn't published it onl

Vince hasn't published it online so I don't feel comfortable posting it. You can ask him if it is OK.

One other thing to check is make sure you have the SUT_CKSEL fuse set correctly. I have it set to:

ext crystal/resonator high freq; start-up time: 16K CK + 64ms

vbriel
Offline
Last seen: 1 year 19 weeks ago
Joined: Old Guard
Posts: 249
PB0 goes to pin 15 on the shi

PB0 goes to pin 15 on the shift register. Check your fuse programming bits. EXTERNAL CRYSTAL, mike has the correct setting. I do wirewrap from time to time, just go back and check each wire, one at a time.

I'll try and get the SE schematics up on my site soon.

Vince

__________________

replica 1 The Apple 1 replica and the new Micro-KIM!
brielcomputers.com