I am building a laptop with a W65C02, lots of memory, SID-sound, decent graphics and a filesystem.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
plain - 32.79 kB - 06/03/2021 at 12:44 |
|
The PZ1_Pico project is now available at GitHub: https://github.com/NollKollTroll/PZ1_Pico
I wrote some low-level tests to make sure the buffers worked properly before implementing the simplest system. A version of EhBasic running in 16KiB ROM (in the Pico) and 48KiB of the external SRAM with one serial port via the Pico USB connection. Runs at a bit faster than 2.5MHz without optimizations or overclocking of the Pico.
I didn't think I'd get it correct on the first try, but the PCB really works as intended, YAY!
I'll wrap it all up neatly and make a decent Github repository of code/PCB/docs before going back to porting Fuzix.
I got the PCBs from China yesterday! 5 pcs, 75x100 mm, 4 layer. They are REALLY nice and professional looking, a far cry from the double-sided stuff I did in the kitchen 25 years ago :)
So far everything seems correct. Power supply lines are correct and the first 74LVC373 buffer works correctly. More soldering to be done and a lot more test-SW to write.
PCBs front, back and partly soldered
I got stuck in trying to debug what went wrong in the Fuzix boot.
To combat that frustration I've been working on learning Kicad 6 properly, while also trying to design a PZ1 PCB around the Raspberry Pi Pico instead of the Teensy.
The Pico is really cheap and readily available but has too few gpio pins, so I use five 74-chips to expand the usage of the available pins. This should work well but requires more cycles on the Pico.
Kicad 6 is really nice to work with, though the bus/wire concept in the schematic capture could really be more streamlined and documented better. I also got Freerouter running, so the resulting PCB is a 75x100mm 4-layer card. Compared to the commercial package I used before 2000, this is a very powerful, quick and easy tool to use!
I'll do a few more inspections spread out over a few days before I feel ready to order a PCB.
This revision of PZ1 has a proper 65C02 CPU and 512KiB SRAM with the Pico acting as glue logic and 6502-I/O. The 74-chips are gpio-expanders to the Pico.
Long time since last update, life got in the way.
Now I am back coding again, and I got some life-signs from my port of Fuzix:
FUZIX version 0.4pre1 Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha Copyright (c) 2013-2015 Will Sowerbutts Copyright (c) 2014-2021 Alan Cox Devboot 512kB total RAM, 448kB available to processes (15 processes max) Enabling interrupts ...
It hangs at this point, but I have something to work on!
I've started porting Fuzix to PZ1, which is very exciting. Much of my own scheduler ideas can be used in some fashion in the Fuzix kernel, but first I need to get it running.
I happened to read the sticker under the keyboard I'm using and it actually specs the supply voltage to 3.3-5V. This means I can get rid of the level converter.
Fewer components, YAY!
This is what it looks like right now. The left-most chip on the right board is the ATF22LV10C SPLD, next to the memory. The left board is a Raspberry pi Pico that together with 4 74LVC244 buffers form a 32-bit input bank. The Pico has only 26 usable GPIO, which is not really enough for what I need. Maybe more on that in the future.
The Pico runs a very simple program that reads CLK/RW/address/data from the 65C02 and the outputs from the SPLD so I can see what goes on as I single-step the clock from the Teensy. It is very useful to have a static CPU like the 65C02 that CAN actually work at human-readable speeds!
It took far too much time to track down the problem with programming the ATF22LV10C SPLDs.
I started out with the afterburner programmer trying to get the ATF750LVC to program, but failed. The chips are seemingly not compatible enough with ATF750C.
After getting the smaller ATF22LV10C I tried using them instead. The software claimed programming and verifying worked but the chips did NOT work properly in my testbench. I spent a lot of time searching for what was wrong. In the end I succeeded when recompiling all the code for the programmer from the main branch, that lacks support for ATF750C. Oh well, it sometimes takes a long time to travel small distances.
I am very happy to finally being able to program SPLDs, it makes the project so much easier to do properly.
I've built an atfblaster/afterburner that can now program my ATF22V10 chips. WinCUPL is not the most expressive software when trying to understand what is wrong in the source, but it works under wine/linux.
My main problem now is that I created a test setup with a Pico and the 22V10 to test the function, but I can't seem to get anything to work. More debugging and trial/error to go.
Create an account to leave a comment. Already have an account? Log In.
You coul;d probably make it run Fuzix but then you need decent I/O performance. The basic set up of the system is actually pretty similar to the RC2014-6502 and 65C816 based systems -down to the 74HC670 as MMU and the $FE00 I/O space.
The 6502 isn't as bad at C as people make out. It's funny when Z80 people say 'I've got an instruction for that and the 6502 needs a subroutine' and you point out the 6502 subroutine is still less clocks 8)
I've had a quick look at the Fuzix source and it sure is tempting! I still have to get to grips with how I could use my task/memory model which involves separate ZP, stack and memory for each process. I could probably use the RC2014-6502 code as-is, but I designed this HW to improve multi-tasking performance on the 6502.
Will spend some time looking deeper into Fuzix.
This project started because I wanted to code 6502 assembler. Early in the project I did some tests on code I wrote for cc65. The resulting binary runs fine, but is far from the "optimized" state of a semi-decent assembler program. So I agree, C on 6502 is very doable, just not what I wanted to use.
I'll probably have some technical questions for you later on, better suited for a PM.
Do You planing create a second revision? meybe better enclosure and power (mobility) Lipo or 18650
Yes, I am working on a better keyboard/enclosure. There is already an 18650-solution that works well. Many revisions have been done that change other aspects of the solution :)
[this comment has been deleted]
Theoretically it is very possible, but not something I have plans to port. I have a multitasking kernel of my own design that I still enjoy working on/with.
Fuzix on this platform would be a bit hampered because C-compilers on 6502 is all but effective... Works much better on Z80 or 6809 :)
such a nice project ... but a question ... at one of the pics i see a 65c02 .. but do you work with this or emulate a 6502 only with the teensy ???
It started as an NMOS 6502 emulation, and has changed into more HW. I'm using a W65C02 today. Sorry about the confusion but this page is treated as a build log, not a proper project documentation. That will come when I am sufficiently done in any sense.
[this comment has been deleted]
Yes, that is an interesting project that I follow. My current coding is all done in glorious 65C02-assembler though, it is so much fun!
[this comment has been deleted]
I'm testing out the possibilities of the Pico right now. It is very interesting in itself, but I'm not sure it is the best fit for PZ1. We'll see what happens in the future.
[this comment has been deleted]
I don't know the power draw of my current implementation. If I had low power as a requirement, the solution would be very different from the current one.
The three 18650-cells in the current version lasts >8 hours.
[this comment has been deleted]
I create this for my own amusement, I have no intention of collaborating with people to make a "product". Building real products is something I get enough of at work. The writing I do on these pages are done in the hope it will inspire or maybe teach something to someone. I appreciate reading other build blogs immensely.
The power will be handled by a simple USB power bank that I already own. Works well enough, will get more than 8 hours of runtime and can charge and run simultaneously.
The keyboard I use is in my opinion a very nice Cherry G84-4100, which will be incorporated into a laptop-esque enclosure in due time.
I absolutely don't want to be a dream breaker, but I want a laptop that runs on very little power.
I would like to have a laptop that has gcc/ssh/git/mc/ruby/lynx that will run a week on one battery charge.
Don't just think of yourself. A lot of people just need this computer. Give the possibility to put different machines in there (fpga/fom/esp etc). You will help others to use your favorite equipment.
Big corporations have completely different goals. They want to make people dependent on their equipment. You do something for ordinary hackers. Please think it over again.
nice design (similar zx88),
add potenciometer for sound, switches for turn on off whole computer or(and) component.
What You think about solar power .
The Z88 was a very nice but underappreciated laptop, I certainly have had my eyes on it design-wise. Also the Amstrad NC100.
There is a 50-turn pot for sound, which will be swapped to something decent later.
The battery bank I've tested with has its own on/off switch, which I'll use.
The total power draw is just shy of 1.5W, so I guess solar power would be feasible. However, this is not really the most efficient laptop I could think of, low power design would become a totally different beast.
Great! Just what I was hoping for so far. I plan to 3D-print an enclosure later so it will resemble a more commercial offering, but still from the 80's. I REALLY hope to be able to carry this thing around to play with :D
Become a member to follow this project and never miss any updates
This is one of the best ideas you can spend all the money to make it possible as you can see some laptop for drawing here you will get the right and secure guidance.