home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1984 November / Antic_Magazine_1984_11_Antic.atr / pmcursor.asm < prev    next >
Assembly Source File  |  2023-02-26  |  3KB  |  1 lines

  1. 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¢