n***@gmail.com
2008-06-09 13:16:46 UTC
I gode gamle DOS programmering skulle man kunne scroller text en pixel
ad gangen ved at skubbe hele scanlinien eller hele skærmens offset.
Men jeg kan ikke rigtigt finde et kode eksempel der viser dette eller
jeg kan ikke få det til at virke.
Koden som jeg har fundet frem til skulle være en lykke som indeholder:
mov dx, 3DAh ; Nulstiller en flipflop
in al, dx
mov dx, 3C0h ; Port nummer til "Attribute Controller Register"
mov al, 13h ; index til "Pan" funktionen
out dx, al ; Kald porten
mov al, bl ; Kopier pixel værdien for hvor mange pixels der
skal "skubbes" til venstre
out dx, al ; Foretag kald til porten
Min ide er at skubbe hele billedet langsomt mod venstre (værdien i bl
går fra 0 til 7) og når det er skubbet bredden af et helt tegn så
flytter jeg billedet tilbage og flytter tegnet en plads mod venstre.
Vi snakker 80x25 helt almindelig dos tekst opløsning. Det skal bruges
til en boot sector så derfor gode gamle DOS.
Men er der nogen som lige ved lidt om det her og engang ahr stykket
noget sammen eller som har et eksempel liggende? Det må også gerne
være i C++, Pascal eller noget andet, behøver ikke være assembler.
Hans...
ad gangen ved at skubbe hele scanlinien eller hele skærmens offset.
Men jeg kan ikke rigtigt finde et kode eksempel der viser dette eller
jeg kan ikke få det til at virke.
Koden som jeg har fundet frem til skulle være en lykke som indeholder:
mov dx, 3DAh ; Nulstiller en flipflop
in al, dx
mov dx, 3C0h ; Port nummer til "Attribute Controller Register"
mov al, 13h ; index til "Pan" funktionen
out dx, al ; Kald porten
mov al, bl ; Kopier pixel værdien for hvor mange pixels der
skal "skubbes" til venstre
out dx, al ; Foretag kald til porten
Min ide er at skubbe hele billedet langsomt mod venstre (værdien i bl
går fra 0 til 7) og når det er skubbet bredden af et helt tegn så
flytter jeg billedet tilbage og flytter tegnet en plads mod venstre.
Vi snakker 80x25 helt almindelig dos tekst opløsning. Det skal bruges
til en boot sector så derfor gode gamle DOS.
Men er der nogen som lige ved lidt om det her og engang ahr stykket
noget sammen eller som har et eksempel liggende? Det må også gerne
være i C++, Pascal eller noget andet, behøver ikke være assembler.
Hans...