Nya register i STE'n. FF8204 ..........XXXXXX VCOUNTHI (R/W) FF8206 ........XXXXXXXX VCOUNTMID (R/W) FF8208 ........XXXXXXX. VCOUNTLO (R/W) Videoaddressräknaren kan nu både skrivas och läsas. Skrivningen påverkar omedelbart visningen, så var försiktig. Bäst att sätta registren under Vertical Blank Interrupt. FF820C ........XXXXXXX. VBASELO (R/W) Detta register innehåller den lägsta byten av skärmens basaddress. Detta tillåter dej att börja skärmen på ett ord (tidigare bara på en 256-bytegräns) för att åstadkomma vertikal scrolling. FF820E ........XXXXXXXX LINEWID (R/W) Innehåller antalet ord som läggs till efter det att en linje har ritats, för att komma till nästa linje. Värdet 0 läggs i registeret vid Reset, och då fungerar det som en vanlig ST. På detta sätt kan man skapa bredare bilder i minnet, och visa en bit i taget. Till exempel: Skriv in värdet 20, och i 640x400 mode får du en bild som är 640+20x16 = 960 pixels bred. För att se från kolumn 20 till 670, öka skärmens basaddress med ett (16 bitar) och lägg en 4a i HSCROLL. FF8204 red grn blu FF825E ....032103210321 PALETTE (R/W) Paletteregister, numera 4 bitar för varje färg. Observera att den minst signifikanta biten har placerats högst upp, så att ST-program fortfarande ska fungera rätt. FF8264 ............XXXX HSCROLL (R/W) Detta register möjliggör horisontell scrollning bit för bit. Värdet säger vilken bit i skärmaddressen VBASE ska starta. FF9200 ............3210 FIRE0-3 (R) joy3 1 2 0 Via avfyrnings och joysticksregistren läser du av de två gamla (joy1 och joy3) och de nya (joy0 och joy2). Du kan också skriva till joy0 och joy2. FF9210 ........XXXXXXXX XPAD0 (R) FF9212 ........XXXXXXXX YPAD0 (R) FF9214 ........XXXXXXXX XPAD1 (R) FF9216 ........XXXXXXXX YPAD1 (R) Du kan också sätte paddles i joystick port 0 (paddle 0) och ett annat par i joystick port 2 (paddle 1). Registren innehåller läget. Avfyrningsknapparna är densamma som för joysticks. Triggern för paddlarna är i bit 0 och 1 på register FF9202 (höger och vänster av joy0). FF9220 ......XXXXXXXXXX LIGHTX (R) FF9222 ......XXXXXXXXXX LIGHTY (R) Ljuspistol/penna. En sådan kan sättas i joy0. Registren innehåller läget. X-position ändras för var 4 pixels i 320x200 8 640x200 16 640x400 y upplösningen är exakt. x läget visas alltid 320x200-upplösning, så att för varje 640x200 skiftar du en bit till vänster och för 640x400 två bitar. FF8900 .............XCC SDMACNTR (R/W) Ljud-DMA-kontrollregister. CC = 00 - ljud-DMA bortkopplat (efter reset) CC = 01 - ljud-DMA kopplas in; ur igen vid ramslut CC = 11 - ljud-DMA kopplas in; upprepa raminnehåll Detta värde kan användas för mer komplexa ljud. I event count mode får timer-A i MFP en signal vid slutet av ramen. Om du t.ex. sätter dataregistret i timer-A i event count till 5 upprepas musikramen 5 gånger. I interruptrutinen kan FRMBASE ändras, då det gamla värdet buffras - ett nytt värde kan man utnyttja två buffertar, skriva i en medan man spelar den andra. FF8902 ..........XXXXXX FRMBASEHI (R/W) FF8904 ........XXXXXXXX FRMBASEMID (R/W) FF8906 ........XXXXXXX. FRMBASELO (R/W) Musik "ramens" basaddress. FF8908 ..........XXXXXX FRMCNTHI (R) FF890A ........XXXXXXXX FRMCNTMID (R) FF890C ........XXXXXXX. FRMCNTLO (R) Musikramens addressräknare. Den aktuella addressen under ljud-DMA. På detta sätt kan du ta reda på vilken sample som just spelas. FF890E ..........XXXXXX FRMENDHI (R/W) FF8910 ........XXXXXXXX FRMENDMID (R/W) FF8912 ........XXXXXXX. FRMENDLO (R/E) Musikramens slutaddress. FF8920 ........M.....RR SMODCNTR (R/W) Ljudmodulkontroll. Frekvens och sätt att spela ramen. RR = 00 - 6258 Hz frekvens (standard) RR = 01 - 12517 RR =10 - 25033 RR = 11 50066 M = 0 - stereo (standard) M = 1 - mono Frekvensen gäller för mono, halva värdet för stereo. Varje sample är på 8 bitar, -128 till +127. I stereo är varannan byte för vänster, varannan för höger kanal. FF8922 XXXXXXXXXXXXXXXX MWDATA (R/E) FF8924 XXXXXXXXXXXXXXXX MWMASK (R/W) Microwire-interfacet för framtida microwire-utrustning. Kretsen LMC1922 - som är ansvarig för ljud och volym hos det digitala ljudet - är den första tillämpning. LMC1922 har microwireaddress 01. När du programmerar LMC1992 måste du alltid sätta maskregistret till $07FF. Värdena du skriver till data registret är: XX 01 0111 DDD DDD : sätt huvudvolym 000 000 -- 80 dB 010 100 -- 40 dB 101 000 - 0 dB XX 01 101 XDD DDD : volym på vänster kanal 00 000 -- 40 dB 01 010 -- 20 dB (2 dB steg) 10 100 - 0 dB XX 01 100 XDD DDD : volym på höger kanal 00 000 -- 40 dB 01 010 -- 20 dB (2 dB steg) XX 01 010 XXD DDD : sätt diskant 0 000 -- 12 dB 0 110 - 0 dB 1 100 -+ 12 dB XX 01 001 XXD DDD : sätt bas 0 000 -- 12 dB 0 110 - 0 dB (2 dB steg) 1 100 -+ 12 dB XX 01 000 XXX XDD : definiera mixing 00 -- 12 dB 01 -- mixa med det gamla GI ljudchipet 10 -- mixa inte 11 -- reserverat ------------------------------------------------------------------ Precis som TT har den gamla ROM-addressen flyttat från $FC0000 till $E00000 ROMmarna är på 256 Kbytes, med ca 30 Kbytes ledigt. Funktionerna Setpalette och Setcolor har anpassats till 4-bits färgpalett. Alla trap-F-accesser till AES är försvunna. De interna variablerna har också flyttats till nya addresser. ------------------------------------------------------------------ Denna text kom i första hand från Martin Backschat, vilken sedan översattes av Ralph Haglund, vilken sedan efter många mellanhänder kom fram till Atarispeciaisten/Desktop Center där Johan Antoni skrev in den till .TXT format från ett papper. Texten är numera någotsånär rättstavad av Juan Irming. Denna text är spriden genom ATARISPECIALISTEN BBS (08/313020, SysOp: Johan Antoni). .