ORG 256 ;A program kezdete A verem kijelolese LD SP,STACK ;A "FIXBIAS" EXOS ;valtozo 0-ra allitasa LD B,1 LD C,28 LD D,0 EXOS 16 ;Az 0FAH szegmens felszabaditasa... LD C,0FAH EXOS 25 ;... es belapozasa a 2-es lapra ;Ugyanez az 0FCH szegmenssel LD A,0FAH OUT (0B2H),A LD C,0FCH EXOS 25 LD A,0FCH OUT (0B1H),A ;A SPECTRUM kepernyo ;letrehozasa LD A,192 ;A kepernyo 192 sorbol ;all, az "A" regiszter a ;ciklusvaltozo LD DE,4000H ;DE az LPT aktualis ;blokkjara mutat EXX ;Uj valtozok bevezetese: ;DE az aktualis kepernyo cimre, ;HL a blokk LD1 regiszterere ;mutat. (Attributum cim) LD DE,4000H LD HL,4004H LD BC,13 ;Az "A" regiszter elmentese ;(ciklusvaltozo) L1 EX AF,AF' EXX ;Egy LPT blokk letrehozasa ;Attributum uzemmod, 32 byte ;szeles ablak LD HL,LINE LD BC,16 LDIR EXX ;Az LD1 regiszter beallitasa ;a sor attributum cimere ;amelyet a bitterkep cimebol ;szamit ki. LD (HL),E INC HL LD A,D RRA RRA RRA AND 3 OR 58H ;Az attributum memoria az ;5800H-5AFFH ;cimtartomanyban helyezkedik el LD (HL),A INC HL ;Az LD2 (bitterkep cime) regiszter ;beallitasa az aktualis cimre LD (HL),E INC HL LD (HL),D ;A kovetkezo LPB LD1 ;regiszterenek cime HL-ben ADD HL,BC ;A kovetkezo bitterkep sor ;cimenek szamitasa INC D LD A,D AND 7 JR NZ,L2 LD A,E ADD A,32 LD E,A CCF SBC A,A AND 0F8H ADD A,D LD D,A ;A ciklusvaltozo visszatoltese L2 EX AF,AF' ;es csokkentese DEC A JR NZ,L1 ;Kesz van mind a 192 sor, ;mar csak a szinkronozas ;van hatra EXX LD HL,SYNC LD BC,HOSSZ LDIR ;Az igy elokeszitett LPT ;cimet a NICK chip tudomasara ;kell hozni. XOR A OUT (82H),A LD A,192 OUT (83H),A ;Az LPT az 0FCH szegmens ;aljan van, igy a NICK altal ;latott cim a 0000 LD C,0FDH EXOS 25 LD C,0FBH EXOS 25 LD A,0FBH OUT (0B3H),A LD A,0FDH OUT (0B1H),A ;Ket szegmens felszabaditasa ;es belapozasa a 2-es es 3-as ;lapokra. Az 0FDH szegmensen van ;a kepernyomemoria. ;Most marvan egy SPECTRUM ;kepernyonk, egy SPECTRUM-hoz ;hasonlo memoriaterkep. ;Mar csak be kell tolteni a ;programot, es elinditani. LD DE,NAME1 LD A,1 EXOS 1 ;A NAME1 cimen lerakott nevu ;file szamara egy csatorna ;megnyitasa LD DE,16384 LD BC,6912 LD A,1 EXOS 6 ;Blokk beolvasasa a megadott ;cimre. ADDR1 helyere az elso ;blokk betoltesi cimet, BYTE1 ;helyere pedig a modul hosszat ;kellbeirni. Ez altalaban egy ;SCREEN szokott lenni, amelynek ;betoltesi cime 16384, hossza 6912 ;byte. LD A,1 EXOS 3 ;A csatornalezarasa LD A,1 LD DE,NAME2 EXOS 1 ;A masodik modul betoltese ;hasonloan ;Ez altalaban a kod resz LD DE,6000H LD BC,0A000H LD A,1 EXOS 6 LD A,1 EXOS 3 ;A SPECTRUM rendszerben ;megszokott 50Hz-es megszakitast ;VIDEO megszakitassal allitjuk ;elo. A VIDEO megszakitas ;engedelyezese a DAVE chipben LD A,48 OUT (0B4H),A ;A hang emulalasahoz szukseges ;hangero ertekek beallitasa ;Errol kesobb lesz szo LD A,20H OUT (0ABH),A OUT (0ACH),A ;Ha a program betoltodott, nincs ;mas teendo, csak elinditani ;DEHOGY IS NINCS! ;PL. AZ IT.... LD HL,ENABLE ;Begyurjuk az uj cimet 0FDFDH-ra LD A,195 ;Remelem ez a JP kodja LD (0FDFDH),A LD (0FDFEH),HL JP 0BB40H ;Programinditas ENABLE PUSH AF ;Ez lenne a potrutin az IT rutinhoz LD A,30H OUT (0B4H),A POP AF JP 0BBBEH NAME1 DEFB NAME2-$-1 DEFM "BCS.SCR" ;A blokkok nevei ;A DEFM utasitas utan az ;idezojelek koze kell irni a blokk ;nevet (Nem kotelezo betartani a ;peldanak szant neveket !) NAME2 DEFB LINE-$-1 DEFM "BCS.PRG" ;A kepernyo adatok LINE DEFB 255,14H,15,2FH,0,0,0,0 DEFB 0,32,72,104,144,176,216,248 ;Egy soros attributum uzemmodu ;32 byte szeles LPB SYNC DEFB 0F5H,02H,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;11 ures sor a kep alatt DEFB 247,8,11,73H,0B8H,0FEH, DEFB 0E9H,1,0,216,216,0,0,0,0,0 ;Egy normal ENTERPRISE ;statuszsor hogy toltes kozben ;lehessen latnia "SEARCHING" ;stb. uzeneteket DEFB 217,12H,63,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;39 ures sor DEFB 253,16,63,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;3 sor, a szinkronizacio ;kikapcsolva DEFB 252,16,6,63,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;4 sor, a szinkronizacio ;bekapcsolva DEFB 255,90H,63,32,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;1 sor, a szinkronizacio a sor ;felenel kikapcsol, a NICK chip ;ennel a sornal ad megszakitast DEFB 252,12H,6,63,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;4 ures sor DEFB 207,13H,63,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 ;49 sor, ez hatarozza meg a felso ;margo nagysagat, a NICK itt ;ugrik vissza az LPT elejere, mivel ;a RELOAD bit (a 0-as bit) be van ;allitva HOSSZ EQU $-SYNC ;A szinkron byte-ok szama STACK EQU $+200 ;A verem 200 byte nagysagu END ;A program vege