[Coco] ASM Coders - please help!

William Astle lost at l-w.ca
Tue Aug 29 01:31:02 EDT 2006


David Roper wrote:
>          orcc #$50
>        lda #$30 first block of graphics screen at $60000
>        sta $FFA1 mapped to $2000
>        andcc #$AF

Since someone else already corrected the X/Y loading problem, I'll 
comment on the above:

The CC operations are actually spurious and not needed. You only need to 
disable interrupts if you are switching the stack and/or the interrupt 
handlers out of the logical address space. Since you're moving only 
$2000-$3FFF, you're not going to be touching either unless someone has 
loaded something odd before you run your code.

Also, note that you are reenabling interrupts immediately after swapping 
the memory block. That's rather pointless as it turns the two CC 
operations into essentially NOPs because there is no possible danger to 
switching the MMU with interrupts enabled except as noted in my previous 
paragraph.

Also, from an "optimizing the initialization code" point of view, I'd 
probably use U for the index register and X for the counter. Saves 1 
byte of code. (LDU opcode is 1 byte, LDY opcode is 2). Of course, 
optimizing that case is rather pointless. Of course, if you were using U 
for something else before, that would be a different story. :)

-- 
William Astle
finger lost at l-w.ca for further information

Geek Code V3.12: GCS/M/S d- s+:+ !a C++ UL++++$ P++ L+++ !E W++ !N w---
!D !M PS PE V-- Y+ PGP t+@ 5++ X !R tv+@ b+++@ !DI D? G e++ h+ y?



More information about the Coco mailing list