dbuchwald / 6502 Goto Github PK
View Code? Open in Web Editor NEWDB6502: 65C02 based computer inspired by BE6502
License: MIT License
DB6502: 65C02 based computer inspired by BE6502
License: MIT License
I've flashed my ATTiny4313 with the keyboard_4313 sketch, using an Arduino as ISP:
I also flashed the rom withSoftware/rom/19_keyboard_test
.
When I boot the computer (with a ps2 keyboard plugged in) the lights briefly flash on the keyboard.
It then shows key 4
as being pressed intermittently, but I am unable to type anything.
I checked my solder joints on the ps/2 connector, and they look ok.
Currently it waits forever, should fail after several attempts
The BOM for the clock module lists a value of 10K for RV1 (a Piher PT10-LV10-105 potentiometer).
That must be a typo: the Piher part number is actually for a 1M potentiometer.
With a 10K pot, the astable circuit generates a square wave with frequency between 62 and 481 Hz, which may be too fast for troubleshooting. Changing to a 1M pot yields a frequency range of 0.72 to 481 Hz.
Also verify the following mappings:
$5c, $7c, \ and |.
I added a C source file common/source/lcd.c and its header common/include/lcd.h to my source tree.
In the project directory makefile I added lcd.o to COMMON_DEPS.
When I run make I get the following output:
cc65 --cpu 65C02 -t none -O -I ../common/include -o ../build/common/lcd.s ../common/source/lcd.c
ca65 --cpu 65C02 -o ../build/common/lcd.o -l ../build/common/lcd.lst ../build/../common/source/lcd.s
Fatal error: Cannot open input file '../build/../common/source/lcd.s': No such file or directory
../common/makefile:74: recipe for target '../build/common/lcd.o' failed
It should be looking for build/common/lcd.s (which has just been created by cc65) for the ca65 step.
I am unsure how to compile the .c files in the 6502 projects ROM folder im not sure what to use crygwin? cc65? and what commands do I type into these to compile the .C file into an .out file ive been looking on the internet for days and cannot find anything Im looking for, so some pointers on how to do this would be appreciated :)
Seems everything dropped off 2 years ago. Is this project dead? I would rather not put time into something that is dead.
The whole circuitry could be largely simplified and the board size reduced if certain components are replaced by SMD counterparts
Currently BASIC lists strings with special characters in not so nice way:
New program will be stored at location 0x331e
OS/1 Basic>100 print "Hello \"World\" \\!"
OS/1 Basic>run
Hello "World" \!
OS/1 Basic>list
100 PRINT "Hello "World" \!"
OS/1 Basic>
Currently only receive works
Currently 20x4 size is assumed, but it would be great to make all the software to work correctly on 20x2.
This enables localization (less functional), but also makes implementation of "mini shell" much easier
I suspect several people will come to this board/project while watching Ben Eater's tutorials on YouTube. The board design has variations from what Ben's doing though so nothing from Ben's tutorials will work directly.
Add documentation that explains the differences between Ben's design and this design, and provide specific steps on how to adapt Ben's code to work on this board:
This documentation is clear enough when I can take Ben's code with updated address locations, assemble it using the assembler he uses, and have it work on this board.
Currently this is possible to pass starting address after end address - to be corrected
Quite a few places where this has been done, and it's ugly
Currently cursor position is not retained during scroll up/down operation
Unnecessary indirection enforced by limitation in software
The idea is to have single PCB pluggable into expansion port to function as both clock module and bus analyzed with address-bound breakpoint definition
33de 6f af 82 40 20 00 00 01 09 00 60 08 00 01 91 f0 |o..@ .....`.....|
33ee 18 88 5b be b0 d3 7f 7d e2 fd 6b 1f f1 3f 8f d7 |..[..}..k..?..|
33fe d3 b8 |.. |
Add a readme to the firmware folder that explains what each app does, and whether they work with the current board design.
Currently, due to usage of R6551 chip for ACIA, clock speed is limited to 2MHz, but when WDC65C51 is supported (#11 ), it should be possible to increase up to 14MHz
Fix issue with backspace and newline characters on LCD
tried some other programs and they work but I am unsure on how to make this one work I have the os1 code installed on my eeprom but when I turn it on nothing happens from the comments I read the lcd should say something like shell connected and should have a bootup message I have this hooked up to a terminal using tera term and usb to ttl converter but nothing is displaying, am I missing something here?
Add links to Jameco and/or DigiKey for purchasing the items on the BOM.
Currently it's failing on MacOS due to lack of md5sum by default - document brew install md5sha1sum
Currently only handful of methods work with C compiler without translation, due to parameter handling. To be reviewed.
When keyboard is connected and keystrokes sent before the detection routine, keyboard connection message is not sent
Instead of using the 555 timer for power on reset, use a DS1813. See https://old.reddit.com/r/beneater/comments/f9oanx/6502_power_on_reset/fitvhyv/
Currently you cannot take a look at the schematic using build-in GitHub file preview.
Could you add schematics in PDF format, please? (can be done using File -> Plot... in KiCad).
Schematics would also be much easier to read if they where stored into a single directory as a hierarchical sheet. Then you can have one PDF with hierarchy on the first page and all the schematics on the following pages.
Currently it's not possible to abort receive operation
The silk screen on the 6502 board doesn't have an indicator for pin 1/up for the UART SMD. I had to crack open the board design in KiCad to see which one was pin 1 and make sure I put the SMD on the right way.
It'd be nice to have an indicator right on the board for which way the UART goes, just like there are for the larger ICs.
Currently all RODATA items are aligned to page boundary, while it's needed only for CRC checksum calculation table
105f: jsr $1109
1062: tax
1063: beq $115f
Should be:
105f: jsr $1109
1062: tax
1063: beq $105f
00000050 a2 12 20 03 11 a9 0a 20 00 11 a9 0d 20 00 11 20 |.. .... .... .. |
00000060 09 11 aa f0 fa 20 f7 10 20 0c 11 92 00 20 00 11 |..... .. .... ..|
Not sure if this can be done, but currently working with strings is not that easy
Add information somewhere that you need to build with fastclock=0 if you're doing anything involving the LCD with the external clock module connected.
Currently it simply doesn't work - keypress is registered, but apparently it requires command to be sent back to keyboard to enable.
Not that it's high priority defect, but should be fixed.
Currently only hex values are displayed, but for printable characters it would be good to print them "as is" as well
Assuming that the keyboard used would fall back to PS/2 compatibility mode. Will be tested first with simple PS/2->USB homemade adapter.
Currently parse is successful if there are trailing characters - not correct
Currently the software is not compatible with WDC65C51 chips due to TX-buffer-empty bug exhibited by these ICs.
This needs to be designed - the idea is to enable expansion port to take over system bus for direct memory/ROM access. This could be used to program EEPROM without chip removal, hardware memory monitor and other things like DMA.
In certain cases it is actually possible to disconnect keyboard, connect it again and send keystrokes to computer - in that case connection signal is not sent to CPU
I'm unable to connect via serial until I attach a keyboard. Once I plug in a ps/2 keyboard I get "shell connected", and can disconnect the keyboard. However if I disconnect serial, I must reconnect the keyboard in order to connect again.
Currently all the code has been changed to work around this, but it can have negative impact on future code maintainability
Do you plan to add any kind of video output to the computer? You currently have a ATtiny4313 that is only used for the ps/2 keyboard interface that could probably also be used to generate some rudimentary VGA signal https://hackaday.com/2015/12/17/attiny-does-170x240-vga-with-8-colors/
I'm having some issues but not sure where the best place to get help is.
I have the PCB and have mounted everything but the 6551 (in transit someplace between here and China). No matter what I try I can't get the VIA (#1) to output anything. All of the lines in seem to be set properly but there's nothing on V1PB0-7. This means that neither the blink sketch nor any of the others (LCD etc..) work. I have the mega debugger setup and I can step through the program and see that it's writing to the via (8800) but nada. I have checked/re-checked/checked again to make sure there are no cold solders or bridges. Checked voltages, used a logic probe to make sure that the various input lines are set. I can see Chip Select working etc...etc...
I realize this isn't the right place for help with the board so if someone could either point me in the right direction or give me some pointers it would be extremely helpful.
Update the readme.md (or some other doc) with instructions on what to do after all the parts are soldered onto the board to verify things work correctly. Include things like:
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.