Pomoc pri debugovaní

Vlákno pre PMD85, PP01, Ondra, Maťo a ďalšie, ZX Spectrum nekompatibilné
Správa
Autor
mikezt
Príspevky: 85
Dátum registrácie: Ne Okt 06, 2013 10:47 pm

Pomoc pri debugovaní

#1 Príspevok od užívateľa mikezt » Pi Jan 12, 2018 8:02 pm

Ahojte!

Portujem textový editor TE na PMD a vyzerá to, že už som skoro hotový, ale neviem pohnúť s jedným nepríjemným bugom. Keďže PMD nescroluje znaky v riadku napravo od kurzora, napísal som si rutinu CrtShRow (v súbore crtcllin.asm), ktorá mi odscroluje riadok napravo od kurzora. Funguje to dobre, ale iba do riadka 14, od 15. riadku už sa mi na obrazovku kopírujú nejaké hlúposti a neviem ani za nič prísť na to, prečo.

Inak je textový editor napísaný v jazyku C. Prekladám to kompilerom Aztec C, inštrukcie na preklad sú v súbore te_pmd.c. te_pmd.asm je preložený cčkový zdroják do assembleru a te.p32 je diskový image s preloženým editorom a skúšobným textom.

Ak by ste mali nejaký nápad, prečo mi uvedená rutina blbne, budem rád.
Prílohy
te.zip
(45.65 KiB) 9 stiahnutí

Užívateľov profilový obrázok
rombor
Príspevky: 30
Dátum registrácie: Ut Okt 08, 2013 1:28 pm

Re: Pomoc pri debugovaní

#2 Príspevok od užívateľa rombor » Pi Jan 12, 2018 10:27 pm

Na začiatok rutiny CrtClLin pridaj tento kód:

Kód: Vybrať všetko

in   0F6h
push psw
mvi  a,8     ; odpojenie ROM
out  0F7h
Na koniec ruiny tento kód:

Kód: Vybrať všetko

pop  psw
out  0F6h    ; pripojenie ROM
ret
Začiatok odstránkuje ROM, takže pri presunoch už nebude "presakovať" ROM do VRAM.
Na konci sa iba vráti na port pôvodná hodnota a nastránkuje sa ROM.

Nie som si istý, ale pokiaľ volanie rutiny CrtLocat_ ešte pristupuje do ROM, tak ten úvod na odstránkovanie ROM bude musieť byť až po tomto volaní.

mikezt
Príspevky: 85
Dátum registrácie: Ne Okt 06, 2013 10:47 pm

Re: Pomoc pri debugovaní

#3 Príspevok od užívateľa mikezt » So Jan 13, 2018 1:14 am

Veľmi pekne ďakujem za pomoc Duškymu aj Romborovi. Bez nich by som to asi nikdy nedokončil :-)
Editor si môžete stiahnuť z http://zeroteam.sk/te_pmd.html. Nie je to nič svetoborné, ale nič lepšie som nenašiel.

Napísať odpoveď