wonderful .... i love this easy assembler working form basics ... i want to make it too but i thought the ssd1306 libraries are to big for 6502 ... but now i knew it better ... thank you ....i still work with my old EMUF 232 boards .... i love it sooo much ... have a nice time ... greetings forn North-Sweden ... Carlo SA2KHG ...
Congrats on leveling up! Instead of using xtmp, is it not more typical do a PHA, TYA, PHA, TXA, PHA on entry to subroutine then PLA, TAX, PLA, TAY, PLA, RET on exit from subroutine. This way all calls to subroutines preserve the A/Y/X registers on return. Of course if a register isn't used in a subroutine then no need to push/pop it from stack.
It's always a tradeoff between speed, ROM and RAM space.. and laziness. In this case STA xtmp is 3 cycles + 2 bytes(ROM), whereas TXA PHA is 5 cycles + 2 bytes. So the former wins because it's faster and we don't need the subroutine to be reentrant :)
Cool cool cool! It’s a shame we don’t have more RAM in this SBC to be able to load programs using a serial port and ditch constant fiddling with flash chip. It’s a nice challenge to fit your variables in 128 bytes but fitting code in that space does cripple one’s ability to have fun.
128 bytes isn't much for code + variables, but you can do quite a lot with 100 bytes of code along with a bunch of generic subroutines in ROM. I'd certainly like to demo that before I start adding RAM :D
I am curious when you didn't add the control characters like carriage return or newline (time around 10:18 in the video) How would the computer know how to enter or create a new line? Also you know someone is going to say play "Doom" on it. Congrats on your marriage!
Thanks! Actually you're on to a core issue with running the SSD1306 via i2c :) Since it doesn't allow reads via i2c or SPI we can't check the current "cursor position" and since we don't use a framebuffer the 6507 has access to, we'll have to find other ways to keep track of the cursor position. That's also why I didn't have that part in the video I released today - the best I can come up with is to increment a counter every time we write a character to keep track of which page we're on.. And if we get a CR/NL we skip to the next page. It'll make it a bit slower but won't eat too much RAM. Gotta play 2D Doom on it :)
@@AndersNielsenAA Come on you can't play "Doom" on it or can you? I enjoy your videos although I can only imagine how painful it is to constantly update the memory chip with new code. By the way is this a different project from the make "pong" on an old 386 machine? I was looking forward to adding ms-dos and making a newer version of the pong game.
@viperjay1 I imagine the best "Doom" I can do for the 65uino is to port "Rogue" and call it "Doom 2D" :D Oh, that wasn't a 386! That was an 8088 PC XT - and next step on that project is to make the floppy drive controller. I'm afraid I'm confusing the TH-cam algorithm a bit with 6502 and 8088 content on the same channel, but seems crazy to make another just for that project.
Congratulations on the Level Up Anders. Continue to really enjoy this series, looking forward to the next installment.
Majestic! And Congrats!
Thank you!
Congratulations 🎉🎉🎉🎉
Thank you!
wonderful .... i love this easy assembler working form basics ... i want to make it too but i thought the ssd1306 libraries are to big for 6502 ... but now i knew it better ... thank you ....i still work with my old EMUF 232 boards .... i love it sooo much ... have a nice time ... greetings forn North-Sweden ... Carlo SA2KHG ...
Thanks for watching, Carlo! :)
That PCB layout looks wild! Nice video
Maybe too late, but congrats on the wedding🎉
Excelente proyecto, gracias por compartir 🎉
Congrats on leveling up! Instead of using xtmp, is it not more typical do a PHA, TYA, PHA, TXA, PHA on entry to subroutine then PLA, TAX, PLA, TAY, PLA, RET on exit from subroutine. This way all calls to subroutines preserve the A/Y/X registers on return. Of course if a register isn't used in a subroutine then no need to push/pop it from stack.
It's always a tradeoff between speed, ROM and RAM space.. and laziness.
In this case STA xtmp is 3 cycles + 2 bytes(ROM), whereas TXA PHA is 5 cycles + 2 bytes. So the former wins because it's faster and we don't need the subroutine to be reentrant :)
Congratulations on the wedding
Thank you!!
Cool cool cool!
It’s a shame we don’t have more RAM in this SBC to be able to load programs using a serial port and ditch constant fiddling with flash chip. It’s a nice challenge to fit your variables in 128 bytes but fitting code in that space does cripple one’s ability to have fun.
128 bytes isn't much for code + variables, but you can do quite a lot with 100 bytes of code along with a bunch of generic subroutines in ROM. I'd certainly like to demo that before I start adding RAM :D
I am curious when you didn't add the control characters like carriage return or newline (time around 10:18 in the video) How would the computer know how to enter or create a new line? Also you know someone is going to say play "Doom" on it. Congrats on your marriage!
Thanks!
Actually you're on to a core issue with running the SSD1306 via i2c :) Since it doesn't allow reads via i2c or SPI we can't check the current "cursor position" and since we don't use a framebuffer the 6507 has access to, we'll have to find other ways to keep track of the cursor position.
That's also why I didn't have that part in the video I released today - the best I can come up with is to increment a counter every time we write a character to keep track of which page we're on.. And if we get a CR/NL we skip to the next page. It'll make it a bit slower but won't eat too much RAM.
Gotta play 2D Doom on it :)
@@AndersNielsenAA Come on you can't play "Doom" on it or can you? I enjoy your videos although I can only imagine how painful it is to constantly update the memory chip with new code. By the way is this a different project from the make "pong" on an old 386 machine? I was looking forward to adding ms-dos and making a newer version of the pong game.
@viperjay1 I imagine the best "Doom" I can do for the 65uino is to port "Rogue" and call it "Doom 2D" :D
Oh, that wasn't a 386! That was an 8088 PC XT - and next step on that project is to make the floppy drive controller. I'm afraid I'm confusing the TH-cam algorithm a bit with 6502 and 8088 content on the same channel, but seems crazy to make another just for that project.
Hello. did the mole agree to let you program the 6502 in his area??
I’m a member of 6502’s without borders - no permission needed
What's Ukraine like as a honeymoon destination?
Not quite that part of the former Soviet Union.