mads 2.1.3 Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/program.asm 1 ; @com.wudsn.ide.asm.mainsourcefile=program.asm 2 ;Atari 8-bit Scorched Earth source code 3 ;--------------------------------------------------- 4 ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski 5 ;Warsaw 2000,2001,2002,2003,2009,2012,2013 6 ;you can contact us at pecus@poczta.fm or pirx@91.pl 7 ;home page of this project is http://pecus.pigwa.net/pliki/Atari/scorch/ 8 9 ;this source code was compiled under OMC65 crossassembler 10 ;and on 2012-06-21 translated to mads 11 ; 12 ;game source code is split into 5+1 parts: 13 ;program.asm is the main game code (with many assorted routines) 14 ;grafproc.asm - graphics routines like line or circle 15 ;textproc.asm - text routines like list of weapons and shop 16 ;variables.asm - all non-zero page variables and constans 17 ;display.asm - display lists and text screen definitions 18 ;ai.asm - artificial stupidity of the computer players 19 20 ;we were trying to use as much macros and pseudoops as possible 21 ;they are defined in atari.hea and macro.hea files together with many 22 ;atari constans. This way it shoud be relatively easy to 23 ;port this code to e.g. C64 24 ; 25 ;After those N years of working on this piece of code 26 ;we are sure it would be much wiser to write it in C or 27 ;Action!, but on the other hand it is so much fun to type 150 chars 28 ;where you want to have y=ax+b :) 29 ; 30 ;originally most variables were in Polish, comments were sparse 31 ;but we wanted to release this piece of code to public 32 ;and due to being always short of time (to finish the game) 33 ;we decided it must go in 'English' to let other people work on it 34 35 .zpvar xdraw .word = $80 ;variable X for plot 36 .zpvar ydraw .word;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen) 37 .zpvar xbyte .word 38 39 .zpvar ybyte .word 40 .zpvar CharCode .byte 41 .zpvar fontind .word 42 .zpvar tanknr .byte 43 .zpvar TankSequencePointer .byte 44 .zpvar oldplot .word 45 .zpvar xc .word 46 .zpvar temp .word ;temporary word for the most embeded loops only 47 .zpvar temp2 .word;same as above 48 .zpvar tempXROLLER .word;same as above for XROLLER routine 49 ;(used also in result display routine) 50 .zpvar xtempDRAW .word ;same as above for XDRAW routine 51 .zpvar ytempDRAW .word ;same as above for XDRAW routine 52 ;--------------temps used in circle routine 53 .zpvar xi .word ;X (word) in draw routine 54 .zpvar fx .byte ;circle drawing variables 55 .zpvar yi .word ;Y (word) in draw routine 56 .zpvar fy .byte 57 .zpvar xk .word 58 .zpvar fs .byte 59 .zpvar yc .byte ;ycircle - temporary for circle 60 .zpvar dx .word 61 .zpvar tempor2 .byte 62 .zpvar dy .word 63 .zpvar tempor3 .word 64 .zpvar dd .word 65 .zpvar di .word 66 .zpvar dp .word 67 .zpvar modify .word 68 .zpvar weaponPointer .word 69 70 ;------------------------------- 71 ;constants 72 = 0096 FlyDelay = 150 73 = 00C8 screenheight = 200 74 = 0028 screenBytes = 40 75 = 0140 screenwidth = screenBytes*8 76 = 0030 margin = 48 ;mountain drawing Y variable margin 77 = 1010 display = $1010 ;kill dos with the casette recorder! 78 = 0006 MaxPlayers = 6 79 80 icl 'lib/atari.hea' Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/lib/atari.hea 1 .enum @dmactl 2 = 0000 blank = %00 3 = 0001 narrow = %01 4 = 0002 standard= %10 5 = 0003 wide = %11 6 = 0004 missiles= %100 7 = 0008 players = %1000 8 = 0010 lineX1 = %10000 9 = 0000 lineX2 = %00000 10 = 0020 dma = %100000 11 .ende 12 13 = 003F scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b 14 = 003E scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b 15 = 003D scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b 16 17 .enum @pmcntl 18 = 0001 missiles= %1 19 = 0002 players = %10 20 = 0004 trigs = %100 21 .ende 22 23 .enum @gtictl 24 = 0000 prior0 = %0 25 = 0001 prior1 = %1 26 = 0002 prior2 = %10 27 = 0004 prior4 = %100 28 = 0008 prior8 = %1000 29 = 0010 ply5 = %10000 ; Fifth Player Enable 30 = 0020 mlc = %100000 ; Multiple Color Player Enable 31 = 0040 mode9 = %01000000 32 = 0080 mode10 = %10000000 33 = 00C0 mode11 = %11000000 34 .ende 35 36 37 * --------------------------------------------------------------------------------------------- 38 * --- GTIA 39 * --------------------------------------------------------------------------------------------- 40 = D000 HPOSP0 = $D000 ; pozioma pozycja gracza 0 (Z) 41 = D001 HPOSP1 = $D001 ; pozioma pozycja gracza 1 (Z) 42 = D002 HPOSP2 = $D002 ; pozioma pozycja gracza 2 (Z) 43 = D003 HPOSP3 = $D003 ; pozioma pozycja gracza 3 (Z) 44 = D004 HPOSM0 = $D004 ; pozioma pozycja pocisku 0 (Z) 45 = D005 HPOSM1 = $D005 ; pozioma pozycja pocisku 1 (Z) 46 = D006 HPOSM2 = $D006 ; pozioma pozycja pocisku 2 (Z) 47 = D007 HPOSM3 = $D007 ; pozioma pozycja pocisku 3 (Z) 48 = D008 SIZEP0 = $D008 ; poziomy rozmiar gracza 0 (Z) 49 = D009 SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z) 50 = D00A SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z) 51 = D00B SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z) 52 = D00C SIZEM = $D00C ; poziomy rozmiar pocisk�w (Z) 53 = D00D GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z) 54 = D00E GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z) 55 = D00F GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z) 56 = D010 GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z) 57 = D011 GRAFM = $D011 ; rejestr grafiki pocisk�w (Z) 58 = D012 COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z) 59 = D013 COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z) 60 = D014 COLPM2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z) 61 = D015 COLPM3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z) 62 = D016 COLPF0 = $D016 ; rejestr koloru pola gry 0 (Z) 63 = D017 COLPF1 = $D017 ; rejestr koloru pola gry 1 (Z) 64 = D018 COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z) 65 = D019 COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z) 66 = D01A COLBAK = $D01A ; rejestr koloru t�a (Z) 67 68 = D016 COLOR0 = colpf0 69 = D017 COLOR1 = colpf1 70 = D018 COLOR2 = colpf2 71 = D019 COLOR3 = colpf3 72 73 = D000 KOLM0PF = $D000 ; kolizja pocisku 0 z polem gry (O) 74 = D001 KOLM1PF = $D001 ; kolizja pocisku 1 z polem gry (O) 75 = D002 KOLM2PF = $D002 ; kolizja pocisku 2 z polem gry (O) 76 = D003 KOLM3PF = $D003 ; kolizja pocisku 3 z polem gry (O) 77 = D004 KOLP0PF = $D004 ; kolizja gracza 0 z polem gry (O) 78 = D005 KOLP1PF = $D005 ; kolizja gracza 1 z polem gry (O) 79 = D006 KOLP2PF = $D006 ; kolizja gracza 2 z polem gry (O) 80 = D007 KOLP3PF = $D007 ; kolizja gracza 3 z polem gry (O) 81 = D008 KOLM0P = $D008 ; kolizja pocisku 0 z graczem (O) 82 = D009 KOLM1P = $D009 ; kolizja pocisku 1 z graczem (O) 83 = D00A KOLM2P = $D00A ; kolizja pocisku 2 z graczem (O) 84 = D00B KOLM3P = $D00B ; kolizja pocisku 3 z graczem (O) 85 = D00C KOLP0P = $D00C ; kolizja gracza 0 z innym graczem (O) 86 = D00D KOLP1P = $D00D ; kolizja gracza 1 z innym graczem (O) 87 = D00E KOLP2P = $D00E ; kolizja gracza 2 z innym graczem (O) 88 = D00F KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O) 89 = D010 TRIG0 = $D010 ; stan przycisku joysticka 0 (O) 90 = D011 TRIG1 = $D011 ; stan przycisku joysticka 1 (O) 91 = D013 TRIG3 = $D013 ; znacznik do��czenia cartridge-a (O) 92 = D014 PAL = $D014 ; znacznik systemu TV (O) 93 94 = D01B GTICTL = $D01B ; rejestr kontroli uk�adu GTIA 95 = D01B GTIACTL = gtictl 96 97 = D01C VDELAY = $D01C ; licznik op�nienia pionowego P/MG 98 = D01D PMCNTL = $D01D ; rejestr kontroli graczy i pocisk�w 99 = D01E HITCLR = $D01E ; rejestr kasowania rejestr�w kolizji 100 = D01F CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2) 101 102 * --------------------------------------------------------------------------------------------- 103 * --- POKEY 104 * --------------------------------------------------------------------------------------------- 105 106 = 0010 IRQENS = $0010 ; rejestr-cie� IRQEN 107 = 0011 IRQSTAT = $0011 ; rejestr-cie� IRQST 108 109 = D204 AUDF3 = $D204 ; cz�stotliwo�� pracy generatora 3 (Z) 110 = D208 AUDCTL = $D208 ; rejestr kontroli generator�w d�wi�ku (Z) 111 = D209 STIMER = $D209 ; rejestr zerowania licznik�w (Z) 112 = D209 KBCODE = $D209 ; kod ostatnio naci�ni�tego klawisza (O) 113 = D20A SKSTRES = $D20A ; rejestr statusu z��cza szeregowego (Z) 114 = D20A RANDOM = $D20A ; rejestr liczby losowej (O) 115 = D20D SEROUT = $D20D ; szeregowy rejestr wyj�ciowy (Z) 116 = D20D SERIN = $D20D ; szeregowy rejestr wej�ciowy (O) 117 = D20E IRQEN = $D20E ; zezwolenie przerwa� IRQ (Z) 118 = D20E IRQST = $D20E ; status przerwa� IRQ (O) 119 = D20F SKCTL = $D20F ; rejestr kontroli z��cza szeregowego (Z) 120 = D20F SKSTAT = $D20F ; rejestr statusu z��cza szeregowego (O) 121 122 * --------------------------------------------------------------------------------------------- 123 * --- PIA 124 * --------------------------------------------------------------------------------------------- 125 = D300 PORTA = $D300 ; port A uk�adu PIA 126 = D301 PORTB = $D301 ; port B uk�adu PIA 127 = D302 PACTL = $D302 ; rejestr kontroli portu A 128 = D303 PBCTL = $D303 ; rejestr kontroli portu B 129 130 * --------------------------------------------------------------------------------------------- 131 * --- ANTIC 132 * --------------------------------------------------------------------------------------------- 133 = D400 DMACTL = $D400 ; rejestr kontroli dost�pu do pami�ci 134 = D401 CHRCTL = $D401 ; rejestr kontroli wy�wietlania znak�w 135 = D402 DLPTR = $D402 ; adres programu ANTIC-a 136 = D404 HSCROL = $D404 ; znacznik poziomego przesuwu obrazu 137 = D405 VSCROL = $D405 ; znacznik pionowego przesuwu obrazu 138 = D407 PMBASE = $D407 ; adres pami�ci graczy i pocisk�w 139 = D409 CHBASE = $D409 ; adres zestawu znak�w 140 = D40A WSYNC = $D40A ; znacznik oczekiwania na synchronizacj� poziom� 141 = D40B VCOUNT = $D40B ; licznik linii obrazu 142 = D40C LPENH = $D40C ; poziome po�o�enie pi�ra �wietlengo 143 = D40D LPENV = $D40D ; pionowe po�o�enie pi�ra �wietlnego 144 = D40E NMIEN = $D40E ; rejestr zezwole� na przerwania NMI 145 = D40F NMIST = $D40F ; rejestr statusu przerwa� NMI 146 147 ;------------------------------------- 148 ;additional system variables 149 ;------------------------------------- 150 = 02C0 COLPM0S = $02C0 ;- - rejestr-cie� COLPM0 151 = 02C1 COLPM1S = $02C1 ;- - rejestr-cie� COLPM1 152 = 02C2 COLPM2S = $02C2 ;- - rejestr-cie� COLPM2 153 = 02C3 COLPM3S = $02C3 ;- - rejestr-cie� COLPM3 154 = 02C4 COLPF0S = $02C4 ;- - rejestr-cie� COLPF0 155 = 02C5 COLPF1S = $02C5 ;- - rejestr-cie� COLPF1 156 = 02C6 COLPF2S = $02C6 ;- - rejestr-cie� COLPF2 157 = 02C7 COLPF3S = $02C7 ;- - rejestr-cie� COLPF3 158 159 = 02C8 COLBAKS = $02C8 160 = 026F GTICTLS = $026F ;- - rejestr-cie� GTIACTL 161 162 = 022F DMACTLS = $022F ;- - rejestr kontroli dost�pu do pami�ci - cie� 163 = 0230 DLPTRS = $0230 ;- - adres programu ANTIC-a - cie� 164 = 02F4 CHBAS = $02F4 ;- - rejestr-cie� CHBASE 165 = 02FC KBCODES = $02FC ;- - rejestr-cie� KBCODE 166 167 = E45C SETVBV = $E45C 168 = E462 XITVBV = $E462 169 = E45F SYSVBV = $E45F 170 = 0012 RTCLOK = $0012 171 172 = 02E5 MEMTOP = $02E5 ;- - adres g�rnej granicy wolnej pami�ci RAM 173 = 02E7 MEMLO = $02E7 ;- - adres dolnej granicy wolnej pami�ci RAM 174 175 = 0278 JSTICK0 = $0278 ;- - po�o�enie joysticka 0 176 = 0279 JSTICK1 = $0279 ;- JSTICK1 - po�o�enie joysticka 1 177 = 027A JSTICK2 = $027A ;- JSTICK2 - po�o�enie joysticka 0 178 = 027B JSTICK3 = $027B ;- JSTICK3 - po�o�enie joysticka 1 179 = 027C PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0 180 = 027D PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1 181 = 0284 TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cie� TRIG0 182 = 0285 TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cie� TRIG1 183 = 0286 TRIG2S = $0286 ;- TRIG2S - rejestr-cie� TRIG0 184 = 0287 TRIG3S = $0287 ;- TRIG3S - rejestr-cie� TRIG1 185 186 187 /* 188 Rejestry OS w pami�ci RAM 189 190 $08 - WARMST - znacznik gor�cego startu 191 $0E - APPMHI - najwy�szy adres RAM zaj�ty przez program 192 $10 - IRQENS - rejestr-cie� IRQEN 193 $11 - IRQSTAT - rejestr-cie� IRQST 194 $12 - RTCLOK - zegar czasu rzeczywistego 195 $15 - BUFADR - adres bufora dla operacji dyskowych 196 $17 - ICCOMT - rejestr przej�ciowy kodu operacji I/O 197 $20 - ZIOCB - zerostronicowy blok kontroli I/O 198 $20 - ICHIDZ - indeks wpisu urz�dzenia w HATABS 199 $21 - ICDNOZ - numer urz�dzenia 200 $22 - ICCOMZ - kod operacji wej�cia/wyj�cia 201 $23 - ICSTZ - status operacji wej�cia/wyj�cia 202 $24 - ICBAZ - adres bufora danych dla operacji I/O 203 $26 - ICPTZ - adres procedury obs�ugi dla operacji 204 $28 - ICBLZ - d�ugo�� bufora danych dla operacji I/O 205 $2A - ICAX1Z - rejestr pomocniczy ZIOCB 206 $2B - ICAX2Z - rejestr pomocniczy ZIOCB 207 $2C - ICAX3Z - rejestr pomocniczy ZIOCB 208 $2D - ICAX4Z - rejestr pomocniczy ZIOCB 209 $2E - ICAX5Z - rejestr pomocniczy ZIOCB 210 $2F - ICAX6Z - rejestr pomocniczy ZIOCB 211 $30 - STATUS - status aktualnej operacji SIO 212 $31 - CHKSUM - suma kontrolna dla operacji SIO 213 $32 - BUFR - adres bufora danych dla SIO 214 $34 - BUFEN - adres ko�ca bufora danych dla SIO 215 $36 - LTEMP - pomocniczy wektor odczytu listy liniowej 216 $38 - BUFRFL - znacznik zape�nienia bufora SIO 217 $39 - RECVND - znacznik ko�ca odczytu 218 $3A - XMTDON - znacznik ko�ca transmisji 219 $3B - CHKSNT - znacznik nadania sumy kontrolnej 220 $3C - NOCKSM - znacznik braku sumy kontrolnej 221 $3D - BPTR - licznik bufora magnetofonu 222 $3E - GAPTYP - znacznik d�ugo�ci przerwy mi�dzy blokami 223 $3F - FEOF - znacznik ko�ca zbioru 224 $40 - FREQ - licznik d�wi�ku przy otwarciu magnetofonu 225 $41 - IOSNDEN - znacznik d�wi�ku przy transmisji 226 $42 - CRITIC - znacznik krytycznych czasowo operacji I/O 227 $4A - ZCHAIN - rejestr nast�pstwa listy liniowej 228 $4C - DSTAT - status klawiatury i ekranu 229 $50 - TEMP - pomocniczy rejestr przej�ciowy 230 $51 - HOLD1 - pomocniczy rejestr przej�ciowy 231 $52 - LMARGIN - lewy margines obrazu 232 $53 - RMARGIN - prawy margines obrazu 233 $54 - ROWCRS - pionowa pozycja kursora 234 $55 - COLCRS - pozioma pozycja kursora 235 $57 - DINDEX - numer trybu graficznego OS 236 $58 - SAVMSC - adres pami�ci obrazu 237 $5A - OLDROW - poprzednia pionowa pozycja kursora 238 $5B - OLDCOL - poprzednia pozioma pozycja kursora 239 $5D - OLDCHR - poprzedni znak na ekranie 240 $5E - OLDADR - poprzedni adres znaku na ekranie 241 $60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4 242 $62 - PALNTS - wska�nik systemu TV 243 $63 - LOGCOL - adres kursora w wierszu logicznym 244 $64 - ADRESS - rejestr adresowy dla procedur edytora 245 $66 - MLTTMP - pomocniczy rejestr przej�ciowy 246 $68 - SAVADR - pomocniczy rejestr adresowy 247 $6A - RAMTOP - liczba stron pami�ci RAM 248 $6B - BUFCNT - licznik bufora edytora 249 $6C - BUFSTR - adres bufora dla edytora 250 $6E - BITMSK - maska bitowa do wy�wietlenia znaku 251 $6F - SHFAMT - liczba przesuni�� punktu 252 $70 - ROWAC - aktualny wiersz przy rysowaniu 253 $72 - COLAC - aktualna kolumna przy rysowaniu 254 $74 - ENDPT - znacznik ko�ca rysowanej linii 255 $76 - DELTAR - przyrost pionowej pozycji kursora 256 $77 - DELTAC - przyrost poziomej pozycji kursora 257 $79 - KEYDEFP - wektor tabeli definicji klawiszy 258 $7B - SWPFLG - znacznik kursora w trybach z oknem 259 $7C - HOLDCH - przechowywanie warto�ci znaku 260 $7D - INSDAT - rejestr pomocniczy edytora 261 $7E - COUNTR - licznik pami�ci obrazu dla DOSCR i DRAW 262 $0100 - STACK - stos mikroprocesora 6502 263 $0200 - DLIV - wektor przerwania programu ANTIC-a 264 $0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-a 265 $0212 - VTIMR2 - wektor przerwania licznika 2 POKEY-a 266 $0214 - VTIMR4 - wektor przerwania licznika 4 POKEY-a 267 $0218 - TIMCNT1 - pierwszy licznik systemu 268 $0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1 269 $022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3 270 $022F - DMACTLS - rejestr-cie� DMACTL 271 $0230 - DLPTRS - rejestr-cie� DLPTR 272 $0232 - SKCTLS - rejestr-cie� SKCTL 273 $0233 - LCOUNT - licznik odczytu dla nowego urz�dzenia 274 $0234 - LPENHS - rejestr-cie� LPENH 275 $0235 - LPENVS - rejestr-cie� LPENV 276 $023A - CDEVIC - kod urz�dzenia dla SIO 277 $023B - CCMND - kod operacji dla SIO 278 $023C - CAUX1 - pierwszy bajt pomocniczy dla SIO 279 $023D - CAUX2 - drugi bajt pomocniczy dla SIO 280 $023E - TEMP - tymczasowy rejestr odpowiedzi urz�dzenia 281 $023F - ERRFLG - znacznik b��du operacji SIO 282 $0244 - COLDST - znacznik zimnego startu systemu 283 $0245 - RECLEN - d�ugo�� rekordu z nowego urz�dzenia 284 $0246 - DSKTIM - warto�� Timeout dla stacji dysk�w 285 $0247 - PDVMSK - maska obecno�ci nowych urz�dze� 286 $0248 - PDVRS - rejestr-cie� PDVREG 287 $024A - RELADR - adres procedury przemieszczalnej 288 $024C - PPTMPA - rejestr przechowania zawarto�ci akumulatora 289 $024D - PPTMPX - rejestr przechowania zawarto�ci rejestru X 290 $026B - CHSPTR - wektor nieu�ywanego zestawu znak�w 291 $026C - VSFLAG - znacznik przesuwu pionowego obrazu 292 $026E - FINE - znacznik delikatnego przesuwu obrazu 293 $026F - GTICTLS - rejestr-cie� GTIACTL 294 $0270 - PADDL0 - rejestr-cie� POT0 295 $0278 - JSTICK0 - po�o�enie joysticka 0 296 $0279 - JSTICK1 - po�o�enie joysticka 1 297 $027A - JSTICK2 - po�o�enie joysticka 0 298 $027B - JSTICK3 - po�o�enie joysticka 1 299 $027C - PTRIG0 - przycisk potencjometru 0 300 $027D - PTRIG1 - przycisk potencjometru 1 301 $0284 - TRIG0S - przycisk joysticka 0, rejestr-cie� TRIG0 302 $0285 - TRIG1S - przycisk joysticka 1, rejestr-cie� TRIG1 303 $0286 - TRIG2S - rejestr-cie� TRIG0 304 $0287 - TRIG3S - rejestr-cie� TRIG1 305 $0288 - HIBYTE - indeks operacji nowego urz�dzenia 306 $0289 - WMODE - znacznik sposobu dost�pu do magnetofonu 307 $028A - BLIM - d�ugo�� bufora magnetofonu 308 $028E - NEWADR - adres procedury nowego urz�dzenia 309 $0290 - TXTROW - wiersz kursora w oknie tekstowym 310 $0291 - TXTCOL - kolumna kursora w oknie tekstowym 311 $0293 - TINDEX - tryb graficzny OS w oknie tekstowym 312 $0294 - TXTMSC - adres pami�ci okna tekstowego 313 $029C - CRETRY - liczba powt�rze� rozkazu operacji 314 $029D - HOLD3 - pomocniczy rejestr przej�ciowy 315 $029E - SUBTMP - pomocniczy rejestr przej�ciowy 316 $02A0 - DMASK - maska punkt�w obrazu 317 $02A2 - ESCFLG - znacznik klawisza ESC 318 $02A3 - TABMAP - mapa pozycji tabulacji 319 $02B2 - LOGMAP - mapa linii logicznych 320 $02B6 - INVFLG - znacznik klawisza inverse video 321 $02B7 - FILFLG - znacznik wype�niania obrazu 322 $02B8 - TMPROW - tymczasowy rejestr pozycji kursora 323 $02B9 - TMPCOL - tymczasowy rejestr pozycji kursora 324 $02BB - SCRFLG - znacznik przesuwu obrazu 325 $02BC - HOLD4 - pomocniczy rejestr przej�ciowy 326 $02BD - DRETRY - liczba powt�rze� wywo�a� urz�dzenia 327 $02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL 328 $02BF - BOTSCR - liczba wierszy tekstu 329 $02C0 - COLPM0S - rejestr-cie� COLPM0 330 $02C1 - COLPM1S - rejestr-cie� COLPM1 331 $02C2 - COLPM2S - rejestr-cie� COLPM2 332 $02C3 - COLPM3S - rejestr-cie� COLPM3 333 $02C4 - COLPF0S - rejestr-cie� COLPF0 334 $02C5 - COLPF1S - rejestr-cie� COLPF1 ;gr.8 letters 335 $02C6 - COLPF2S - rejestr-cie� COLPF2 ;gr.8 background 336 $02C7 - COLPF3S - rejestr-cie� COLPF3 337 $02C8 - COLBAKS - rejestr-cie� COLBAK 338 $02C9 - RUNADR - adres procedury nowego urz�dzenia 339 $02CB - HIUSED - adres ko�cowy procedury nowego urz�dzenia 340 $02CF - GBYTEA - adres procedury nowego urz�dzenia 341 $02D1 - LOADAD - adres wczytywania z nowego urz�dzenia 342 $02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania 343 $02D5 - DSCTLN - d�ugo�� sektora dyskowego 344 $02DB - NOCLIK - znacznik d�wi�ku klawiatury 345 $02DE - PBPNT - licznik bufora drukarki 346 $02DF - PBUFSZ - d�ugo�� bufora drukarki 347 $02E5 - MEMTOP - adres g�rnej granicy wolnej pami�ci RAM 348 $02E7 - MEMLO - adres dolnej granicy wolnej pami�ci RAM 349 $02E9 - HNDLOD - znacznik relokowalnej procedury obs�ugi I/O 350 $02EA - DVSTAT - dodatkowy rejestr statusu urz�dzenia 351 $02EC - DVTMOT - dodatkowy rejestr Timeout urz�dzenia 352 $02ED - REVNUM - numer wersji nowego urz�dzenia 353 $02EE - CBAUD - pr�dko�� transmisji z magnetofonu 354 $02F0 - CRSINH - znacznik widoczno�ci kursora 355 $02F3 - CHACT - rejestr-cie� CHRCTL 356 $02F4 - CHBAS - rejestr-cie� CHBASE 357 $02F5 - NEWROW - nowa pozycja pionowa kursora 358 $02F6 - NEWCOL - nowa pozycja pozioma kursora 359 $02F8 - ROWINC - zmiana pionowej pozycji kursora 360 $02F9 - COLINC - zmiana poziomej pozycji kursora 361 $02FA - CHAR - kod wewn�trzny znaku 362 $02FB - ATACHR - kod ATASCII znaku 363 $02FC - KBCODES - rejestr-cie� KBCODE 364 $02FD - FILDAT - numer koloru dla wype�niania 365 $02FE - DSPFLG - znacznik wy�wietlania znak�w kontrolnych 366 $02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu 367 $0300 - DDEVIC - kod identyfikacyjny urz�dzenia 368 $0301 - DUNIT - numer identyfikacyjny urz�dzenia 369 $0302 - DCMND - bajt rozkazu dla urz�dzenia 370 $0303 - DSTATS - status urz�dzenia 371 $0304 - DBUFA - adres bufora danych 372 $0306 - DTIMLO - warto�� Timeout dla urz�dzenia 373 $0308 - DBYT - d�ugo�� bufora danych 374 $030A - DAUX1 - rejestr pomocniczy dla operacji I/O 375 $030B - DAUX2 - rejestr pomocniczy dla operacji I/O 376 $030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu 377 $030F - CASFLG - znacznik operacji z magnetofonem 378 $0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu 379 $0312 - TEMP1 - pomocniczy rejestr przej�ciowy 380 $0313 - TEMP2 - pomocniczy rejestr przej�ciowy 381 $0314 - PTIMOT - warto�� Timeout dla drukarki 382 $0315 - TEMP3 - pomocniczy rejestr przej�ciowy 383 $0316 - SAVIO - rejestr przej�ciowy dla operacji SIO 384 $0317 - TIMFLG - znacznik up�yni�cia czasu Timeout 385 $0318 - STACKP - rejestr wska�nika stosu dla SIO 386 $0319 - TSTAT - przej�ciowy rejestr statusu SIO 387 $031A - HATABS - tabela wektor�w procedur obs�ugi 388 $0340 - IOCB0 - blok kontroli I/O numer 0 389 $0350 - IOCB1 - blok kontroli I/O numer 1 390 $0360 - IOCB2 - blok kontroli I/O numer 2 391 $0370 - IOCB3 - blok kontroli I/O numer 3 392 $0380 - IOCB4 - blok kontroli I/O numer 4 393 $0390 - IOCB5 - blok kontroli I/O numer 5 394 $03A0 - IOCB6 - blok kontroli I/O numer 6 395 $03B0 - IOCB7 - blok kontroli I/O numer 7 396 $0340 - ICCHID - indeks wpisu urz�dzenia w HATABS 397 $0341 - ICDNO - numer urz�dzenia 398 $0342 - ICCMD - kod rozkazu operacji I/O 399 $0343 - ICSTAT - status operacji I/O 400 $0344 - ICBUFA - adres bufora danych dla operacji I/O 401 $0346 - ICPUTB - adres procedury przesy�ania danych 402 $0348 - ICBUFL - d�ugo�� bufora danych dla operacji I/O 403 $034A - ICAX1 - rejestr pomocniczy dla operacji I/O 404 $034B - ICAX2 - rejestr pomocniczy dla operacji I/O 405 $034C - ICAX3 - rejestr pomocniczy dla operacji I/O 406 $034D - ICAX4 - rejestr pomocniczy dla operacji I/O 407 $034E - ICAX5 - rejestr pomocniczy dla operacji I/O 408 $034F - ICAX6 - rejestr pomocniczy dla operacji I/O 409 $03C0 - PRNBUF - bufor drukarki 410 $03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury 411 $03E9 - CKEY - znacznik klawisza START przy zimnym starcie 412 $03EC - DERRF - znacznik b��du przy otwieraniu edytora 413 $03FB - CHLINK - rejestr element�w listy liniowej 414 $03FD - CSCB - bajty kontroli szybko�ci magnetofonu 415 $03FF - CRCB - bajt d�ugo�ci rekordu magnetofonowego 416 $0400 - CASBUF - bufor magnetofonu 417 $047F - CASBEN - koniec bufora magnetofonu 418 $D000 - HPOSP0 - pozioma pozycja gracza 0 (Z) 419 $D000 - KOLM0PF - kolizja pocisku 0 z polem gry (O) 420 $D001 - HPOSP1 - pozioma pozycja gracza 1 (Z) 421 $D001 - KOLM1PF - kolizja pocisku 1 z polem gry (O) 422 $D002 - HPOSP2 - pozioma pozycja gracza 2 (Z) 423 $D002 - KOLM2PF - kolizja pocisku 2 z polem gry (O) 424 $D003 - HPOSP3 - pozioma pozycja gracza 3 (Z) 425 $D003 - KOLM3PF - kolizja pocisku 3 z polem gry (O) 426 $D004 - HPOSM0 - pozioma pozycja pocisku 0 (Z) 427 $D004 - KOLP0PF - kolizja gracza 0 z polem gry (O) 428 $D005 - HPOSM1 - pozioma pozycja pocisku 1 (Z) 429 $D005 - KOLP1PF - kolizja gracza 1 z polem gry (O) 430 $D006 - HPOSM2 - pozioma pozycja pocisku 2 (Z) 431 $D006 - KOLP2PF - kolizja gracza 2 z polem gry (O) 432 $D007 - HPOSM3 - pozioma pozycja pocisku 3 (Z) 433 $D007 - KOLP3PF - kolizja gracza 3 z polem gry (O) 434 $D008 - SIZEP0 - poziomy rozmiar gracza 0 (Z) 435 $D008 - KOLM0P - kolizja pocisku 0 z graczem (O) 436 $D009 - SIZEP1 - poziomy rozmiar gracza 1 (Z) 437 $D009 - KOLM1P - kolizja pocisku 1 z graczem (O) 438 $D00A - SIZEP2 - poziomy rozmiar gracza 2 (Z) 439 $D00A - KOLM2P - kolizja pocisku 2 z graczem (O) 440 $D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z) 441 $D00B - KOLM3P - kolizja pocisku 3 z graczem (O) 442 $D00C - SIZEM - poziomy rozmiar pocisk�w (Z) 443 $D00C - KOLP0P - kolizja gracza 0 z innym graczem (O) 444 $D00D - GRAFP0 - rejestr grafiki gracza 0 (Z) 445 $D00D - KOLP1P - kolizja gracza 1 z innym graczem (O) 446 $D00E - GRAFP1 - rejestr grafiki gracza 1 (Z) 447 $D00E - KOLP2P - kolizja gracza 2 z innym graczem (O) 448 $D00F - GRAFP2 - rejestr grafiki gracza 2 (Z) 449 $D00F - KOLP3P - kolizja gracza 3 z innym graczem (O) 450 $D010 - GRAFP3 - rejestr grafiki gracza 3 (Z) 451 $D010 - TRIG0 - stan przycisku joysticka 0 (O) 452 $D011 - GRAFM - rejestr grafiki pocisk�w (Z) 453 $D011 - TRIG1 - stan przycisku joysticka 1 (O) 454 $D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z) 455 $D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z) 456 $D013 - TRIG3 - znacznik do��czenia cartridge'a (O) 457 $D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z) 458 $D014 - PAL - znacznik systemu TV (O) 459 $D015 - COLPM3 - rejestr koloru gracza i pocisku 3 (Z) 460 $D016 - COLPF0 - rejestr koloru pola gry 0 (Z) 461 $D017 - COLPF1 - rejestr koloru pola gry 1 (Z) 462 $D018 - COLPF2 - rejestr koloru pola gry 2 (Z) 463 $D019 - COLPF3 - rejestr koloru pola gry 3 (Z) 464 $D01A - COLBAK - rejestr koloru t�a (Z) 465 $D01B - GTIACTL - rejestr kontroli uk�adu GTIA 466 $D01C - VDELAY - licznik op�nienia pionowego P/MG 467 $D01D - PMCNTL - rejestr kontroli graczy i pocisk�w 468 $D01E - HITCLR - rejestr kasowania rejestr�w kolizji 469 $D01F - CONSOL - rejestr stanu klawiszy konsoli 470 $D1FF - PDVREG - rejestr wyboru nowego urz�dzenia 471 $D200 - AUDF1 - cz�stotliwo�� pracy generatora 1 (Z) 472 $D200 - POT0 - rejestr po�o�enia potencjometru 0 (O) 473 $D201 - AUDC1 - rejestr kontroli d�wi�ku generatora 1 (Z) 474 $D201 - POT1 - rejestr po�o�enia potencjometru 1 (O) 475 $D202 - AUDF2 - cz�stotliwo�� pracy generatora 2 (Z) 476 $D202 - POT2 - rejestr po�o�enia potencjometru 2 (O) 477 $D203 - AUDC2 - rejestr kontroli d�wi�ku generatora 2 (Z) 478 $D203 - POT3 - rejestr po�o�enia potencjometru 3 (O) 479 $D204 - AUDF3 - cz�stotliwo�� pracy generatora 3 (Z) 480 $D205 - AUDC3 - rejestr kontroli d�wi�ku generatora 3 (Z) 481 $D206 - AUDF4 - cz�stotliwo�� pracy generatora 4 (Z) 482 $D207 - AUDC4 - rejestr kontroli d�wi�ku generatora 4 (Z) 483 $D208 - AUDCTL - rejestr kontroli generator�w d�wi�ku (Z) 484 $D208 - POTST - status odczytu potencjometr�w (O) 485 $D209 - STIMER - rejestr zerowania licznik�w (Z) 486 $D209 - KBCODE - kod ostatnio naci�ni�tego klawisza (O) 487 $D20A - SKSTRES - reset statusu z��cza szeregowego (Z) 488 $D20A - RANDOM - rejestr liczby losowej (O) 489 $D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z) 490 $D20D - SEROUT - szeregowy rejestr wyj�ciowy (Z) 491 $D20D - SERIN - szeregowy rejestr wej�ciowy (O) 492 $D20E - IRQEN - zezwolenia przerwa� IRQ (Z) 493 $D20E - IRQST - status przerwa� IRQ (O) 494 $D20F - SKCTL - rejestr kontroli z��cza szeregowego (Z) 495 $D20F - SKSTAT - rejestr statusu z��cza szeregowego (O) 496 $D300 - PORTA - port A uk�adu PIA 497 $D301 - PORTB - port B uk�adu PIA 498 $D302 - PACTL - rejestr kontroli portu A 499 $D303 - PBCTL - rejestr kontroli portu B 500 $D400 - DMACTL - rejestr kontroli dost�pu do pami�ci 501 $D401 - CHRCTL - rejestr kontroli wy�wietlania znak�w 502 $D402 - DLPTR - adres programu ANTIC-a 503 $D404 - HSCROL - znacznik poziomego przesuwu obrazu 504 $D405 - VSCROL - znacznik pionowego przesuwu obrazu 505 $D407 - PMBASE - adres pami�ci graczy i pocisk�w 506 $D409 - CHBASE - adres zestawu znak�w 507 $D40A - WSYNC - znacznik oczekiwania na synchronizacj� poziom� 508 $D40B - VCOUNT - licznik linii obrazu 509 $D40C - LPENH - poziome po�o�enie pi�ra �wietlengo 510 $D40D - LPENV - pionowe po�o�enie pi�ra �wietlnego 511 $D40E - NMIEN - rejestr zezwole� na przerwania NMI 512 $D40F - NMIST - rejestr statusu przerwa� NMI 513 */ 513 513 = 0080 XDRAW 513 = 0082 YDRAW 513 = 0084 XBYTE 513 = 0086 YBYTE 513 = 0088 CHARCODE 513 = 0089 FONTIND 513 = 008B TANKNR 513 = 008C TANKSEQUENCEPOINTER 513 = 008D OLDPLOT 513 = 008F XC 513 = 0091 TEMP 513 = 0093 TEMP2 513 = 0095 TEMPXROLLER 513 = 0097 XTEMPDRAW 513 = 0099 YTEMPDRAW 513 = 009B XI 513 = 009D FX 513 = 009E YI 513 = 00A0 FY 513 = 00A1 XK 513 = 00A3 FS 513 = 00A4 YC 513 = 00A5 DX 513 = 00A7 TEMPOR2 513 = 00A8 DY 513 = 00AA TEMPOR3 513 = 00AC DD 513 = 00AE DI 513 = 00B0 DP 513 = 00B2 MODIFY 513 = 00B4 WEAPONPOINTER 81 icl 'lib/macro.hea' Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/lib/macro.hea 1 ;------------------------------------- 2 .MACRO ROLW 3 ROL :1 4 ROL :1+1 5 .ENDM 6 ;------------------------------------- 7 .MACRO ASLW 8 ASL :1 9 ROL :1+1 10 .ENDM 11 ;------------------------------------- 12 .MACRO RORW 13 ROR :1+1 14 ROR :1 15 .ENDM 16 ;------------------------------------- 17 .MACRO LSRW 18 LSR :1+1 19 ROR :1 20 .ENDM 21 22 ;------------------------------------- 23 .MACRO VMAIN 24 ; VMAIN #WORD,interrupt.vector 25 ; interrupt.vector: 26 ; 0 - VIMIRQ 27 ; 1 - TIMCNT1 28 ; 2 - TIMCNT2 29 ; 3 - TIMCNT3 30 ; 4 - TIMCNT4 31 ; 5 - TIMCNT5 32 ; 6 - VVBLKI 33 ; 7 - VVBLKD 34 ; 8 - TIMVEC1 35 ; 9 - TIMVEC2 36 ; Initialises Vertical Blank Interrupts 37 ; (works only with system interrupts ON) 38 LDY # <:1 39 LDX # >:1 40 LDA #:2 41 JSR SETVBV 42 .ENDM 43 ;------------------------------------- 44 .MACRO VDLI 45 ; VDLI #WORD 46 ; Initialises Display List Interrupts 47 LDY # <:1 48 LDX # >:1 49 LDA #$C0 50 STY $0200 51 STX $0201 52 STA NMIEN 53 .ENDM 54 ;------------------------------------- 55 .MACRO halt 56 ?stop 57 /* 58 lda RANDOM 59 and #$05 60 sta COLBAK 61 */ 62 jmp ?stop 63 .ENDM 64 ;------------------------------------- 65 .MACRO KEY 66 ; KEY 67 ; waits for releasing and pressing "any key" 68 PHA 69 ?CK1 LDA SKSTAT 70 AND #$04 71 BEQ ?CK1 72 ?CK LDA SKSTAT 73 AND #$04 74 BNE ?CK 75 PLA 76 .ENDM 77 ;------------------------------------- 78 .MACRO WAIT 79 ; WAIT 80 ; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) 81 LDA VCOUNT 82 STA WSYNC 83 STA WSYNC 84 STA WSYNC 85 ?WA CMP VCOUNT 86 BNE ?WA 87 .ENDM 88 ;------------------------------------- 89 .macro negw 90 ; negate the given word (0-a) 91 ;------------------------------------- 92 sec 93 lda #$00 94 sbc :1 95 sta :1 96 lda #$00 97 sbc :1+1 98 sta :1+1 99 .endm 100 ;------------------------------------- 101 .macro randomize 102 ;usage: randomize floor ceiling 103 ;returns (in A) a random .byte between "floor" and "ceiling" 104 ?rand 105 lda random 106 cmp #:1 ;floor 107 bcc ?rand 108 cmp #:2+1 ;ceiling 109 bcs ?rand 110 .endm 111 ;------------------------------------- 112 .macro phx 113 txa 114 pha 115 .endm 116 ;------------------------------------- 117 .macro phy 118 tya 119 pha 120 .endm 121 ;------------------------------------- 122 .macro plx 123 pla 124 tax 125 .endm 126 ;------------------------------------- 127 .macro ply 128 pla 129 tay 130 .endm 131 ;------------------------------------- 132 .macro pause 133 ;waits :1 number (byte) of frames 134 ldx #:1 135 ?PAUSELOOP 136 wait 137 dex 138 bne ?PAUSELOOP 139 .ENDM 140 82 83 icl 'artwork/HIMARS14.asm' Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm 1 /***************************************/ 2 /* Use MADS http://mads.atari8.info/ */ 3 /* Mode: DLI (char mode) */ 4 /***************************************/ 5 6 ;icl "HIMARS14.h" 7 ;ICL '../lib/atari.hea' 8 9 org $f0 10 11 = 00F0 fcnt .ds 2 12 = 00F2 fadr .ds 2 13 = 00F4 fhlp .ds 2 14 = 00F6 cloc .ds 1 15 = 00F7 regA .ds 1 16 = 00F8 regX .ds 1 17 = 00F9 regY .ds 1 18 19 = 0028 WIDTH = 40 20 = 001E HEIGHT = 30 21 22 ; --- BASIC switch OFF 23 org $2000\ mva #$ff portb\ rts\ ini $2000 23 ORG $2000 23 FFFF> 2000-2005> A9 FF + MVA #$FF PORTB 23 2005 60 RTS 23 02E2-02E3> 00 20 INI $2000 24 25 ; --- MAIN PROGRAM 26 org $2000 27 2000-2482> F0 ant dta $F0 28 2001 42 23 20 02 02 02 + dta $42,a(scr),$02,$02,$02,$02,$02,$02,$02,$02,$02,$82,$02,$02,$02,$02,$82 29 2013 02 02 02 82 82 82 + dta $02,$02,$02,$82,$82,$82,$02,$82,$02,$02,$02,$82,$70 30 2020 41 00 20 dta $41,a(ant) 31 32 2023 00 00 00 00 00 00 + scr ins "HIMARS14.scr" 33 34 = 2483 .ds 2*40 35 36 24D3 .ALIGN $0400 37 2800-396E> 00 00 00 00 + fnt ins "HIMARS14.fnt" 38 39 ift USESPRITES 40 .ALIGN $0800 41 pmg .ds $0300 42 ift FADECHR = 0 43 SPRITES 44 els 45 .ds $500 46 eif 47 eif 48 49 3800 main 50 ; --- init PMG 51 52 ift USESPRITES 53 mva >pmg pmbase ;missiles and players data address 54 mva #$03 pmcntl ;enable players and missiles 55 eif 56 57 3800 A5 14 C5 14 F0 FC lda:cmp:req $14 ;wait 1 frame 58 59 3806 78 sei ;stop IRQ interrupts 60 3807 A9 00 8D 0E D4 mva #$00 nmien ;stop NMI interrupts 61 380C 8D 00 D4 sta dmactl 62 380F A9 FE 8D 01 D3 mva #$fe portb ;switch off ROM to get 16k more ram 63 64 3814 A9 E1 8D FA FF A9 + mwa #NMI $fffa ;new NMI handler 65 66 381E A9 C0 8D 0E D4 mva #$c0 nmien ;switch on NMI+DLI again 67 68 ift CHANGES ;if label CHANGES defined 69 70 3823 AD 10 D0 _lp lda trig0 ; FIRE #0 71 3826 F0 13 beq stop 72 73 3828 AD 11 D0 lda trig1 ; FIRE #1 74 382B F0 0E beq stop 75 76 382D AD 1F D0 lda consol ; START 77 3830 29 01 and #1 78 3832 F0 07 beq stop 79 80 3834 AD 0F D2 lda skctl 81 3837 29 04 and #$04 82 3839 D0 E8 bne _lp ;wait to press any key; here you can put any own routine 83 84 els 85 86 null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed 87 88 eif 89 90 91 383B stop 92 383B A9 00 8D 1D D0 mva #$00 pmcntl ;PMG disabled 93 3840 AA tax 94 3841 9D 00 D0 E8 D0 FA sta:rne hposp0,x+ 95 96 3847 A9 FF 8D 01 D3 mva #$ff portb ;ROM switch on 97 384C A9 40 8D 0E D4 mva #$40 nmien ;only NMI interrupts, DLI disabled 98 3851 58 cli ;IRQ enabled 99 100 3852 60 rts ;return to ... DOS 101 102 ; --- DLI PROGRAM 103 104 3853 .local DLI 105 106 = 3853 ?old_dli = * 107 108 ift !CHANGES 109 110 dli1 lda trig0 ; FIRE #0 111 beq stop 112 113 lda trig1 ; FIRE #1 114 beq stop 115 116 lda consol ; START 117 and #1 118 beq stop 119 120 lda skctl 121 and #$04 122 beq stop 123 124 lda vcount 125 cmp #$02 126 bne dli1 127 128 :3 sta wsync 129 130 DLINEW dli10 131 132 eif 133 134 3853 dli_start 135 136 3853 dli10 137 3853 85 F7 sta regA 138 139 3855 A9 04 c4 lda #$04 140 3857 8D 0A D4 sta wsync ;line=8 141 385A 8D 16 D0 sta color0 142 385D 8D 1B D0 sta gtictl 143 3860 DLINEW DLI.dli2 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 3860 A9 68 8D E7 38 mva fnt+$400*$01 148 386C 8D 0A D4 sta wsync ;line=96 149 386F 8D 09 D4 sta chbase 150 3872 DLINEW dli3 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 3872 A9 7A 8D E7 38 mva fnt+$400*$02 155 387E 8D 0A D4 sta wsync ;line=136 156 3881 8D 09 D4 sta chbase 157 3884 DLINEW dli4 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 3884 A9 8C 8D E7 38 mva fnt+$400*$01 162 3890 8D 0A D4 sta wsync ;line=168 163 3893 8D 09 D4 sta chbase 164 3896 DLINEW dli5 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 3896 A9 9E 8D E7 38 mva fnt+$400*$02 169 38A2 8D 0A D4 sta wsync ;line=176 170 38A5 8D 09 D4 sta chbase 171 38A8 DLINEW dli6 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 38A8 A9 B0 8D E7 38 mva fnt+$400*$03 176 38B4 8D 0A D4 sta wsync ;line=184 177 38B7 8D 09 D4 sta chbase 178 38BA DLINEW dli7 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 38BA A9 C2 8D E7 38 mva fnt+$400*$00 183 38C6 8D 0A D4 sta wsync ;line=200 184 38C9 8D 09 D4 sta chbase 185 38CC DLINEW dli11 1 0 0 Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] 1 38CC A9 D4 8D E7 38 mva fnt+$400*$00 232 3905 8D 09 D4 sta chbase 233 3908 A9 00 c0 lda #$00 234 390A 8D 1A D0 sta colbak 235 390D A9 02 lda #$02 236 390F 8D 01 D4 sta chrctl 237 3912 A9 01 lda #$01 238 3914 8D 1B D0 sta gtictl 239 3917 A9 0C c1 lda #$0C 240 3919 8D 17 D0 sta color1 241 391C A9 02 c2 lda #$02 242 391E 8D 18 D0 sta color2 243 3921 A9 0E c3 lda #$0E 244 3923 8D 19 D0 sta color3 245 3926 A9 00 x0 lda #$00 246 3928 8D 00 D0 sta hposp0 247 392B 8D 01 D0 sta hposp1 248 392E 8D 02 D0 sta hposp2 249 3931 8D 03 D0 sta hposp3 250 3934 8D 04 D0 sta hposm0 251 3937 8D 05 D0 sta hposm1 252 393A 8D 06 D0 sta hposm2 253 393D 8D 07 D0 sta hposm3 254 3940 8D 08 D0 sta sizep0 255 3943 8D 09 D0 sta sizep1 256 3946 8D 0A D0 sta sizep2 257 3949 8D 0B D0 sta sizep3 258 394C 8D 0C D0 sta sizem 259 394F 8D 12 D0 sta colpm0 260 3952 8D 13 D0 sta colpm1 261 3955 8D 14 D0 sta colpm2 262 3958 8D 15 D0 sta colpm3 263 395B 8D 16 D0 sta color0 264 265 395E A9 53 8D E7 38 A9 + mwa #DLI.dli_start dliv ;set the first address of DLI interrupt 266 267 ;this area is for yours routines 268 269 3968 quit 270 3968 A5 F7 lda regA 271 396A A6 F8 ldx regX 272 396C A4 F9 ldy regY 273 396E 40 rti 274 275 .endp 276 277 ; --- 278 02E2-02E3> 00 38 ini main 279 ; --- 280