![]() |
![]() |
![]() |
|
|
|||||||
| Chit-Chat Relax for a bit and have a general conversation (off topic is allowed!) with other members. Please be polite and respect your fellow members. |
|
|
Thread Tools | Display Modes |
|
|
(permalink) |
|
Just like the title says; I need a z80 compiler/assembler. I don't want anything "C" based, just a normal Z80 Assembly compiler. Nothing fancy, just a hardcore assembler for the Z80. I don't want to buy parts, and then not be able to find a compiler...
Also, another question. If i assembled a z80 file, and then wanted to burn the file to a EEPROM, what would it be displayed as on the EEPROM? Does it just copy the ASCII number over the EEPROM, or is it encoded, or something? Like if i sent the word "Hello", would it be stored as; 1001000 1100101 1101100 1101100 1101111 on the EEPROM, or would it be something else? |
|
|
|
|
|
|
(permalink) |
|
Apparently some of the earlier TI graphing calculators (TI-83) were Z80 based before they switched to the 68000 series, so there seem to be a whole slew of assemblers out there. There's entire *fansites* for the architecture.
http://www.z80.info/ GPL'd assembler/disassembler. http://wwwhomes.uni-bielefeld.de/achim/z80-asm.html some nomenclature: 1) An assembler just translates assembly instructions into opcodes, handles relative addressing (i.e. jumps), and usually does macros. 2) An assembler isn't a compiler, compilers tend to do a *lot* more than assemblers. 3) Assemblers typically output binary files, and a secondary output is typically an annoted source file. I usually don't use linkers when dealing with assembly, but that's usually doable too (multiple .asm files -> assembled into multiple object files -> linked into a single binary file) 4) If you tell the assembler to allocate some memory and dump the ascii characters 'H', 'e', 'l', 'l', 'o', it'll happily put the ascii characters into the object file with the other opcodes. (unless you *really* *really* want to do unicode, utf, ebcdic or some other funky encoding...) James |
|
|
|
|
|
|
(permalink) |
|
I want to know what the data will show up as in the BootROM. If it is exactally what it shows up as in the file, before being burned, then i would beable to make an EEPROM burner on my BASIC Stamp?
|
|
|
|
|
|
|
(permalink) |
|
The typical "interface" for programming external EPROM/FLASH chips are intel ".hex" files ("intelhex"). These are in ascii and contain all the data in hexidecimal format with some checksum information. These are usually used since most EPROM/FLASH chips are rather sparse with information distributed over the chip at fixed addresses - typically for the processor reset address, interrupt vectors, and then chunks for the actual program code itself.
Some programs might be able to dump out an "image" of the data stored in the PROM, but it isn't that common, and it's easy to write a ".hex" file parser. You'll need to install the assembler and see what the typical output is. |
|
|
|
|
|
|
(permalink) |
|
So, would i beable to just send the file to my stamp and have it write it to the EEPROM? Or would i need something more?
|
|
|
|
|
|
|
(permalink) | |
|
Quote:
|
||
|
|
|
|
|
(permalink) |
|
Well, you'll have to deal with most EEPROM chips having oddball programming sequences - as well as needing 25+ IO lines to connect up all the busses (or adding address latches).
When you say "just send", You'll need to parse the intelhex file, convert the ASCII hex to binary, do the magical EEPROM programming dance, load the required address/data busses, wait for it to finish and then go onto the next data byte. But yeah, that would work. |
|
|
|
|
|
|
(permalink) |
|
My stamp has 16 I/Os (BS2). I have two of them, so i have 31 I/O's available(1 pin reserved for serial communication). So, all i have to do is convert the ASCII into Binary, and then send it to my stamp, which will write it to the EEPROM? Doesn't sound too complex. I am already getting ideas... Hopefully i find an EEPROM that has a lot of data available!
|
|
|
|
|
|
|
(permalink) |
|
Find an EEPROM data sheet and find it's programming section.
Buy some '573 or '574 latches and figure out how to connect them to the stamp. You'll probably need 3 of them to latch the address. Read the intelhex specification: http://www.precma.it/download/intelhex.pdf and figure out how to implement it on the basic stamp, or write some software which "prechews" the format into something simpler for the stamp to process. I guess that's the important stuff. |
|
|
|
|
|
|
(permalink) |
|
Well, once i figure out how to read that PDF, then i will make a DOS program to download the program to my Stamp, then to the EEPROM. Thanks!
|
|
|
|
|
|
|
(permalink) |
|
Like hjames pointed out buy some 74HC574's. You could even wire them up to be tri-stated shift registers and connect them in a daisy chain to the parallel port of an older computer. I say old computer because direct IO under XP is a pain in the... Well you know. You could then bypass the STAMP all together, but that is up to you.
Read the description of the circuit below. Substitute the Amtel Micro for a SRAM chip in your mind while reading this: it may give you some more ideas; http://saint.419.removed.us/pro2051.html
__________________
--- The days of the digital watch are numbered. --- |
|
|
|
|
|
|
(permalink) | ||
|
Quote:
Quote:
http://www.jameco.com/webapp/wcs/sto...roductId=40475 http://www.jameco.com/webapp/wcs/sto...oductId=242341 What do you think? |
|||
|
|
|
|
|
(permalink) | |||
|
Quote:
Quote:
Quote:
__________________
--- The days of the digital watch are numbered. --- |
||||
|
|
|
|
|
(permalink) |
|
Yep. Got a Z80A, and i am going to buy one or two more from jameco. I decided to go with 16k models instead. They are pretty much the same as the previous ones though. Thanks! The order should go out this weekend, or on Monday, then i am not sure when it sould come.
|
|
|
|
|