formix / retroz Goto Github PK
View Code? Open in Web Editor NEWAn S80 Single Board Retro Computer
License: Apache License 2.0
An S80 Single Board Retro Computer
License: Apache License 2.0
Hi all,
I need some help regarding my board. I'm not able to make the SIO/2 chip work. There is a chance that there is some physical issues I guess but I spent 3 months reviewing with some help from other people. For now, I would like to tackle this issues from the software angle.
First to make a quick and dirty 8k ROM, I slapped together Dr Scott M. Baker's ASM files for SIO initialization and 8k Basic. I fixed a few labels and changed SIOA_C, SIOA_D, SIOB_C and SIOB_D values to fit with my architecture (0x00, 0x01, 0x02 and 0x03 respectively). See my mashed-up file here.
I expected that to be working but it's not doing anything. To make sure its is not related to my FTDI chip, I removed the SIO/2 chip and connected TX and RX together. The RX and TX leds are flashing with each letter I'm typing and I can see the "echo" in my terminal window.
I spent maybe two hours analyzing the SIO and BASIC asm code but I must admit that I'm still lost. I did slap the two files together within my ASM source file but it is basically what another shell script from @sbelectronics did (I can't find it anymore though). The JP $0290
at the end of the first script and the .ORG $0290
at the beginig of the second comforted me that It was ok like that. Other than a few lost clock cycles, I don't think that the CTC initialization stuff has anything to do with my issue.
I'm working in Ubuntu Bash with zasm.
One strange thing is that the generated ROM file has its instructions and operands inverted. For example, If I create an ASM file containing the following code:
.ORG $0000
LD A, 0
.END
I'm expecting to see 3e00
(3e = LD A
; 00 => the value 00
) in the resulting ROM file.
But what I see in the hexdump is this:
0000000 003e
0000002
The operand and the instruction are inverted!!! I was expecting to see big-endianess for 16 bits operands but not a flipped instruction! Why are the instruction and operand inverted? Is it an issue? Any idea what might be the overall problem here?
Hi @formix,
First of all: great job! I like the schematic and the PCB even more. It's great that u use the Z80 SIO IC and that you join the schematics for UART to USB. The way you integrate your RetroZ with possible S80 extension cards is very well done and to my opinion flawless!
However, I have some minor questions.
You don't pull down the -BusRq- pin of the CPU. Is there a special reason to keep it floating? I'm attentive to this element, since it's my major mistake on the design of the cpu board of the S80 Version 2.0 :-)
I'm a bit puzzled on the -Reset- circuit. The switch pulls it down to Gnd when pushed, and the resistor pulls it up by default. However, I don't see what IC1 is doing.
Is there a chance that your button will bounce and disturb the reset process of your RetroZ?
Please ignore my remark on pulling down the MEM_EXT pin in the S80 issue u've opened. You already do so (which I missed at my first reading of your schematics). Sorry for that.
If I'm not mistaking, by using the 74xx138, you reserve all addresses of the format 111001xx (base address 0xE4). Is that correct?
I'm I correct that you don't implement the UART to USB on your PCB?
Is there a reason why u use males for the 2x20 connector on the top side of your PCB? The S80 uses the female side of the connectors on the top side and male connectors on the bottom side.
I like your documentation very much. It's clear, extensive, and complete. If you ever feel the urge to document the S80 repository in the same way, please do not hesitate.
If you like, I can put your RetroZ-SBC repository (or a copy of the final version, the files that you choose) as a third party made S80 CPU/SERIAL/MEMORY card in a subdirectory of the S80/hardware. e.g. S80/Hardware/RetroZ-SBC. This can include documentation, libraries, your name and copyright notices, ...
Once you have software for your RetroZ, I can also put versions of your software in the S80/Software directory.
I like to copy in stead of linking, since that way, I prevent having dead links in the future, and I'm sure to have a stable version to distribute to the public.
Splendid job, respect !
Instead of oscillating between 0 and 5 vols, it oscillates between 3 and 5v. Nothing works with that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.