janroesner / sixty5o2 Goto Github PK
View Code? Open in Web Editor NEWMicro Kernel / Bootloader for Ben Eater's 6502 Computer
License: MIT License
Micro Kernel / Bootloader for Ben Eater's 6502 Computer
License: MIT License
Jan, I apologize in advance as I am not at all good in GIT so no pull request.
I have modified the bootloader and also the lib-example to fully support the five button version (with a middle button) as also depicted in Ben's official schematics on his website.
Buttons assigned as follows:
PA0 Middle
PA1 Up
PA2 Down
PA3 Left
PA4 Right
Modification was quite easy. Just remove the ROR , additionally evaluate $10 and reaarrange all menu controlls to th new key mapping.
I attach both asm-files. Maybe, you can update!
Cheers
Armin
Hi,
Thanks very much for a great piece of work.
I'm having trouble getting it to work with the Nano. It works perfectly with the Mega.
On the Nano it just fills the RAM with FF and after data load completes it goes back to awaiting data...
For the Nano I changed the pins to data= 5 up to 12 and for interrupt I used 13. Same as what's in the Nano branch.
I'd appreciate any pointers to what I missed.
Hi!
First of all, great job!!!
I've question.
My current 6502 setup has 32Kb of RAM (from $0000-$7FFF) 16Kb of I/O (from $8000-BFFF) and 16 Kb of ROM (from $C000-$FFFF)
I'm trying to change your asm code to "break" $3FFF current memory address.
Code seems to works (upload program to RAM not tested yet) , but for example if I go to "about" or "credits" nothing appears on LCD and freeze the system.
How can I do this?
Thank you!
Hi, I've compiled hello_world example and loaded into RAM
At $0200 in monitor first 4 Bytes are 0200: 25 02 20 30 but in Hex file format first 4 Bytes are 20 25 02 20 that corresponds to the opcodes of instruction jsr init_via_ports
It seems to upload lost first Byte of code and of course code doesn't works.
Otherwhise when I select Load option in LCD Screen allways stays in "Awaiting Data...." and when transfer finish doesn't back to main menu.
It's normal?
Thank you again.
I sort of wonder about this and any list of extra hardware?
Hi!
Thanks for a splendid project and tool for the 6502 computer! I have tried it and finally got it to work after some required tuning of the Arduino program read delay (READ_BUFFER_DELAY).
As a tip for other people having problems, it may help to tune the Arduino SW read delay. I've found that no other tuning of baudrates (config files and hardcoded in Arduino SW) seems to work. However by increasing the READ_BUFFER_DELAY to 40ms, it worked perfectly for me. The original value of 20ms and also 30ms resulted in a large number of retransmissions, and corresponding timeouts.
In Readme.md/ Hardware Requirements/ Possible Mitigation Strategies there is the statement
“Should your keyboard be built in a way so the buttons are normally tied high and when pressed turn low, then you need to adjust the routine VIA__read_keyboard_input and XOR A with $ff after it was AND'ed with #$0f. “
The code in lines 543-548 of bootloader.asm reads:
VIA__read_keyboard_input:
lda PORTA ; load current key status from VIA
ror ; normalize the input to $1, $2, $4 and $8
and #$0f
rts
It is not clear what the could should be in order to accommodate the buttons being tied high ( as in the original schematics). What should the code be?
Thank you.
Hi, thanks for this project, it makes loading programs to the 6502 so much easier!
For those who have the buttons with pulldowns by default I'd suggest to replace the eor #$0f
line with two nop instructions rather than commenting it out. That way it will not mess up the addresses of the library functions.
Here are the proposed changes in the bootloader.asm file
555,557c555,557
< eor #$0f ; deactivate / comment this line, if your keyboard
< ; is built with buttons tied normal low, when
< ; pushed turning high (in contrast to Ben's schematics)
---
> eor #$0f ; deactivate / comment this line, and activate / uncomment two lines below if your keyboard
> ; nop ; is built with buttons tied normal low, when
> ; nop ; pushed turning high (in contrast to Ben's schematics)
and in the Readme.md file
53c53
< 2. Should your keyboard not be built according to the schematics (so the buttons are normally tied _low_ and when pressed turn _high_), then you need to adjust the routine `VIA__read_keyboard_input`. Simply comment out line 555 in `bootloader.asm`. This will disable the XOR of the read value with 0xf. This way the keystrokes will be interpreted correctly.
---
> 2. Should your keyboard not be built according to the schematics (so the buttons are normally tied _low_ and when pressed turn _high_), then you need to adjust the routine `VIA__read_keyboard_input`. Simply comment out line 555 in `bootloader.asm` and uncomment lines 556 and 557. This will disable the XOR of the read value with 0xf and replace it with two NOP instructions. This way the keystrokes will be interpreted correctly and the addresses of library functions will remain unchanged.
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.