2024/12/26

1. példaprogram

A legelső példaprogramban a játékportokat olvassuk be, és a képernyőn megjelenő színt aszerint állítjuk be. Vagyis beolvassuk valamelyik játékvezérlő bemenetét (pl. az 1-est), és azt átmásoljuk rögtön a képernyőn megjelenített képkimenetre, ami az 1-es porton található. Itt még az időzítés nem annyira fontos.
A teljes kód, 8051-es assemblyben megírva, hozzászólásokkal ellátva:

org 00h        ;itt kezdődik a program

mov a,#11000000b        ;előkészítjük az 1-es portot, 312×80-as felbontásban (ez utóbbit nem fontos beállítani)
mov p1,a                        ; -||-

prg:        ;itt kezdődik a program ismétlődő része
mov a,$19h        ;beolvassuk az 1. játékvezérlő bemenetét az "A" tárolóba
anl a,#00111111b        ;az utolsó 2 bitet kitöröljük egy AND logika segítségével
orl a,#11000000b        ;itt az utolsó 2 bitet meg bekapcsoljuk, mivel a felbontásmutató és a képkimenet egy porton van rajta
;erre a két "anl" és "orl" instrukcióra azért volt szükség, hogy a felbontásmutató ne változzon, de a kivetített szín igen
mov p1,a        ;végül átmásoljuk az "A" tárolóban található számot az 1-es portra, kvázi frissítsük a képet
ljmp prg        ;és visszaugrunk a program elejére

Nincsenek megjegyzések: