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 :)
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 RUclips algorithm a bit with 6502 and 8088 content on the same channel, but seems crazy to make another just for that project.
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
Majestic! And Congrats!
Thank you!
Congratulations on the Level Up Anders. Continue to really enjoy this series, looking forward to the next installment.
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! :)
Maybe too late, but congrats on the wedding🎉
Excelente proyecto, gracias por compartir 🎉
That PCB layout looks wild! Nice video
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 :)
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 RUclips algorithm a bit with 6502 and 8088 content on the same channel, but seems crazy to make another just for that project.
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
Congratulations on the wedding
Thank you!!
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.