koodaamisen ohessa jouduin muuttamaan kyseistä rutiinia melkorankasti ja ajattelin nyt näyttää
miten se tapahtuu ja miksi.
tämä jekku on helpoimmasta päästä eikä sen ajoitus ole kovin tarkka
ja siksi sen toteutus on melko helppo toisin kuin
vasemman ja oikean reunuksen poisto joka vie prosessoriaikaa tajuttomasti
enemmän kuin tämä
yksinkertaisesti efekti koostuu kahdesta käskystä jotka muuttavat
ruudun reunuksia $D011 rekisterissä reunuksia hoitaa bitti 8 %00001000
4,2,1 ovat vieritys rekiteriä joilla tehdään pysty vieritys 0-7 arvoilla
reunukset supistavat ruutua kahdella rivillä 24 => 22 miksi ?
vieritys näyttäisi melko tönköltä jos alempi ja ylenmpi rivi pomppisivat
vieritys rekisterin tahdissa mutta jos tämän piilottaa reunusten alla sitä ei huomaa
vaan tasainen virta kirjaimia valuu reunusten alta esiin.
mutta jos reunukset ovat pois päältä ja rasteri linja on $FA
Vic piiri valmistautuu viimeiseen Badline tehtäväänsä noin 9 kellosykliä vasemmasta laidasta lähtönsä jälkeen
jos silloin muutamme reunukset takaisin päälle...
reunuksien asetusta on muutettu juurioikealla hetkellä ennen tämä tapahtuman alkua
VIC piiri unohtaa tehdä tämän koska se olettaa että reunukset on jo laitettu päälle
8 rasteri linjaa aikaisemmin eikä normaalisti tapahtuvaa Badline päivitystä koskaan tapahdu
eikä se enään sen jälkee koskaa palaa tutkimaan onko asian tila oikeasti näin
tässä vielä malli koodi ja liitteenä itse ohjelma
miten se tapahtuu ja miksi.
tämä jekku on helpoimmasta päästä eikä sen ajoitus ole kovin tarkka
ja siksi sen toteutus on melko helppo toisin kuin
vasemman ja oikean reunuksen poisto joka vie prosessoriaikaa tajuttomasti
enemmän kuin tämä
yksinkertaisesti efekti koostuu kahdesta käskystä jotka muuttavat
ruudun reunuksia $D011 rekisterissä reunuksia hoitaa bitti 8 %00001000
4,2,1 ovat vieritys rekiteriä joilla tehdään pysty vieritys 0-7 arvoilla
reunukset supistavat ruutua kahdella rivillä 24 => 22 miksi ?
vieritys näyttäisi melko tönköltä jos alempi ja ylenmpi rivi pomppisivat
vieritys rekisterin tahdissa mutta jos tämän piilottaa reunusten alla sitä ei huomaa
vaan tasainen virta kirjaimia valuu reunusten alta esiin.
mutta jos reunukset ovat pois päältä ja rasteri linja on $FA
Vic piiri valmistautuu viimeiseen Badline tehtäväänsä noin 9 kellosykliä vasemmasta laidasta lähtönsä jälkeen
jos silloin muutamme reunukset takaisin päälle...
reunuksien asetusta on muutettu juurioikealla hetkellä ennen tämä tapahtuman alkua
VIC piiri unohtaa tehdä tämän koska se olettaa että reunukset on jo laitettu päälle
8 rasteri linjaa aikaisemmin eikä normaalisti tapahtuvaa Badline päivitystä koskaan tapahdu
eikä se enään sen jälkee koskaa palaa tutkimaan onko asian tila oikeasti näin
tässä vielä malli koodi ja liitteenä itse ohjelma
Koodi [Valitse]
;--------------------------------------
; miten poistetaan ylä ja ala borderit
; coodattu 7.9.2013 by Virgo
; reunusten avauduttua ainoa grafiikka
; mitä sinne voidaan laittaa
; on Sprite grafiikkaa
; koodi Turbo Assembler yhteensopiva
;--------------------------------------
*=$0801
.WORD endbasic
.WORD 2013 ;Line Num & year
.BYTE $9E ;SYS
.TEXT "2078 laitojen poisto "
.byte 0,0
endbasic .byte 0
;--------------------------------------
sei ;keskeytykset pois
jsr setup ;alustemma $3fff osoitteen
loop
;-----------------
lda #$1b ; %00011011
sta $d011 ;ruudun kavennus pois päältä
lda #$fa
lo1 cmp $d012 ;odotetaan Rasteririviä $FA
bne lo1
lda #$13 ; %00010011 kytkemme kavennuksen oikealla
sta $d011 ; kohtaa ja vic unohtaa piirtää reunuksen
;-----------------
ldx #0 ; 0-255 looppi pitää huolen ettei
lo2 dex ; ettei loop ehdi kiertää rutiinia uudelleen
bne lo2 ; samalla rasteririvillä
lda #$fb
cmp $dc01 ;jos painat CTRS nappia muutamme
bne loop ;muistipaikan $3fff sisältöä
inc $3fff ;ja muutamme reunusten alle jäävää dataa
jmp loop
;--------------------------------------
; jostain syystä VIC täyttää reunusten alle jäävän
; tilan näyttömuistin viimeisellä tavulla mikä normaalisti on
; osoitteessa $3fff jos nollaamme tämän reunusten kohdalla näkyy
; ruudun taustaväri $d021
;--------------------------------------
setup lda #$00 ;puhdistetaan reunusten alla oleva tila
sta $3fff
rts
;--------------------------------------