|
Post by bjonte on Mar 27, 2021 20:43:32 GMT
To celebrate the start of the new Commodore club Svenska Commodoreklubben, a small invitation intro was created. It runs on a couple of different Commodore 8-bit machines, including C128. VDC support was partly done, but sadly didn't make it to the release.
|
|
|
Post by bjonte on Mar 17, 2021 4:59:46 GMT
ASL multiplies by two. LSR divides an unsigned value by two. CMP #$80, ROR divides a signed value by two.
|
|
|
Post by bjonte on Mar 4, 2021 16:28:20 GMT
Is there any way too keep basic in, and kernal, while possible storing code from $A000-$BFFF, $8000-$9FFF? Well, BASIC owns RAM from $1c00 to $ff00 so if the program grows your code could be overrwritten. If you know it won’t happen you can use memory where you want in that range plus the small gap in the last page. There’s some ROM code copied to RAM high up, I don’t remember exactly where, which you have to avoid also. But you should be able to simply tell the MMU that you want RAM instead of BASIC and Kernal, run the code and turn on BASIC and Kernal again. You can just toggle BASIC if you keep your code below $e000. I/O registers is usually best to leave turned on unless you really need the memory at $d000-$dfff.
|
|
|
Post by bjonte on Mar 2, 2021 6:59:51 GMT
let's say the accumulator is holding #80. LDA #80, what's a quick and dirty method of simply dividing it in 1/2? I’m going to assume you want to divide by 2. Shifting is the way to cheaply multiply or divide by 2. LSR will divide by 2.
|
|
|
Post by bjonte on Feb 28, 2021 17:15:47 GMT
Nice video!
I’d say banking is technically not that difficult but in practice it is hard to juggle when trying to use most of the memory.
|
|
|
Post by bjonte on Feb 13, 2021 11:46:38 GMT
I have also just found thicker rubber feet.
|
|
|
Post by bjonte on Feb 11, 2021 20:36:22 GMT
So the problem is really to print a 16 bit decimal integer value to the screen in assembler?
|
|
|
Post by bjonte on Feb 9, 2021 21:23:55 GMT
I’m still not sure what you want to do. Search the memory for something? Just print values to the screen?
Can you make a BASIC program that does what you want so we can understand how to convert it to assembler?
|
|
|
Post by bjonte on Feb 9, 2021 11:21:52 GMT
Im trying to find an integers hi/lo, setup a kernal call, and store the integers value in a segment of memory. like ac%=1234:sys(addy) and the routine i want to send the integers value to the screen. I appreciate help. You can feed three bytes to register A, X and Y using the SYS command. SYS ADDR,A,X,Y So you can feed the address like this. SYS ADDR, AC%AND255, INT(AC%/256)
|
|
|
Post by bjonte on Feb 8, 2021 21:16:31 GMT
// put address in zero page location lda #<array_addr sta $fb lda #>array_addr sta $fc
// write to array ldy #0 // <- element index here lda #64 // <- what to write here sta ($fb),y
// read from array ldy #0 // <- element index here lda ($fb),y // a now has the value at index
|
|