home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1984 November
/
Antic_Magazine_1984_11_Antic.atr
/
pmcursor.asm
< prev
next >
Wrap
Assembly Source File
|
2023-02-26
|
3KB
|
1 lines
1000 ; LISTING 2 PMCURSOR.SRC¢1010 ; PLAYER CURSOR BY JERRY WHITE¢1020 ; AND CARLOS REYES¢1030 ;¢1040 ;System Equates¢1050 ;¢1060 ROWCRS=$54¢1070 COLCRS=$55¢1080 DINDEX=$57¢1090 FR0=$D4¢1100 SRTIMR=$22B¢1110 SDMCTL=$22F¢1120 GPRIOR=$26F¢1130 TXTROW=$290¢1140 TXTCOL=$291¢1150 TINDEX=$293¢1160 BOTSCR=$2BF¢1170 PCOLR2=$2C2¢1180 CRSINH=$2F0¢1190 HPOSP2=$D002¢1200 SIZEP2=$D00A¢1210 COLPM2=$D014¢1220 GRACTL=$D01D¢1230 PRIOR=$D01B¢1240 DMACTL=$D400¢1250 PMBASE=$D407¢1260 SETVBV=$E45C¢1270 XITVBV=$E462¢1280 ;¢1290 ;Program Equates¢1300 ;¢1310 PSTART=0¢1320 PLAYER2=PSTART+$600¢1330 PSHAPE=PSTART+$600 ;Shape data¢1340 PCOLOR=10¢1350 PRATE=8¢1360 PFLASH=PSHAPE+8¢1370 ;¢1380 ;Call from BASIC where ROUTINE¢1390 ;is the address of this routine¢1400 ;CURSOR=USR(ROUTINE)¢1410 ;¢1420 *=$4000 ;Relocatable¢1430 ;¢1440 INIT¢1450 PLA ;# arguments=0¢1460 LDA FR0 ;FR0=INIT¢1470 CLC¢1480 ADC #MAIN-INIT&$FF¢1490 STA FR0¢1500 LDA FR0+1¢1510 ADC #MAIN-INIT/$100¢1520 STA FR0+1 ;FR0=MAIN¢1530 LDX #8-1 ;Move cursor data¢1540 LDY #SHAPE-MAIN+7¢1550 LOOP¢1560 LDA (FR0),Y¢1570 STA PSHAPE,X¢1580 DEY¢1590 DEX¢1600 BPL LOOP¢1610 LDY FR0 ;Enable VBLANK¢1620 LDX FR0+1¢1630 LDA #7 ;Deferred¢1640 JMP SETVBV ;Return¢1650 ;¢1660 ;Start of the VBLANK routine¢1670 ;¢1680 MAIN¢1690 LDA CRSINH ;PEEK(752)¢1700 BEQ ERASE ;No PM cursor¢1710 LDA SRTIMR ;Key pressed?¢1720 BEQ SKIP¢1730 LDA #0 ;Yes, show cursor¢1740 BEQ SKIP1 ;Forced branch¢1750 SKIP¢1760 LDA PFLASH ;Flashing logic¢1770 CLC¢1780 ADC #PRATE¢1790 SKIP1¢1800 STA PFLASH¢1810 BMI ERASE ;Cursor invisible¢1820 LDY #255 ;Clear the player RAM¢1830 LDA #0¢1840 LOOP1¢1850 STA PLAYER2,Y¢1860 DEY¢1870 CPY #8¢1880 BNE LOOP1¢1890 LDA #PCOLOR ;Init PM variables¢1900 STA PCOLR2 ;Player 2 color¢1910 STA COLPM2¢1920 LDA #1¢1930 STA GPRIOR¢1940 STA PRIOR¢1950 LDA #0¢1960 STA SIZEP2¢1970 LDA #PSTART/$100¢1980 STA PMBASE¢1990 LDA #2¢2000 STA GRACTL¢2010 LDA #2+32+8+16¢2020 STA SDMCTL¢2030 STA DMACTL¢2040 LDX COLCRS ;Check screen mode¢2050 LDY ROWCRS¢2060 LDA DINDEX¢2070 ORA TINDEX¢2080 BEQ SKIP2 ;Full screen¢2090 LDA BOTSCR¢2100 CMP #4¢2110 BNE ERASE ;No text window¢2120 TYA ;Add offset to line¢2130 CLC¢2140 ADC #20¢2150 TAY¢2160 SKIP2¢2170 TXA ;Find hor. pos.¢2180 ASL A¢2190 ASL A¢2200 ADC #48¢2210 STA HPOSP2¢2220 TYA ;Find vert. pos.¢2230 ASL A¢2240 ASL A¢2250 ASL A¢2260 ADC #32+7¢2270 TAY ;Move cursor into¢2280 LDX #7 ;position¢2290 LOOP2¢2300 LDA PSHAPE,X¢2310 STA PLAYER2,Y¢2320 DEY¢2330 DEX¢2340 BPL LOOP2¢2350 JMP XITVBV ;RETURN¢2380 ;¢2390 ERASE¢2400 LDA #0 ;Move player¢2410 STA HPOSP2 ;off screen¢2420 JMP XITVBV¢2430 ;¢2440 ;Data for underline shape¢2450 ;¢2460 SHAPE¢2470 .BYTE 0,0,0,0,0,0,0,240¢