home *** CD-ROM | disk | FTP | other *** search
- ****************************************************
- ;
- ; Example program for testing the Cross64 assembler
- ;
- ; Expanding screen borders vertcally.
- ; After expansion a sprite placed under the top or
- ; bottom screen border will be visible.
- ;
- ****************************************************
- ORG $C000
-
- * Initialize the interrupt.
- START SEI
- LDA #>IRQ ; interrupt vector
- STA $FFFE
- LDA #<IRQ
- STA $FFFF
- LDA #$7F ; disable IRQ interrupt
- STA $DC0D
- LDA #1 ; enable raster interrupt
- STA $D01A
- LDA #$F8 ; interrupt at $F8
- STA $D012
- LDA #$1B
- STA $D011
- LDA $DC0D
- CLI
-
- L001 JMP L001
-
- * Expanding top & bottom borders.
- * Interrupt at raster line $F8.
- ;IRQ STA REMA+1 ; store registers
- ; STX REMX+1 ; note that arithmetic operations are not implemented
- ; STY REMY+1 ; in Cross64 yet...
- IRQ STA REMA ; store registers
- STX REMX
- STY REMY
- LDA $D019 ; acknowledge the interrupt
- STA $D019
- LDA #$13 ; shrink screen vertically
- STA $D011 ; (24 lines)
- LDA #$FC ; wait for raster line $FC
- L002 CMP $D012
- BNE L002
- LDA #$1B ; restore screen height
- STA $D011 ; to normal (25 lines)
- REMA LDA #0
- REMX LDX #0
- REMY LDY #0
- RTI
-