Pomoc pri debugovaní

Vlákno pre PMD85, PP01, Ondra, Maťo a ďalšie, ZX Spectrum nekompatibilné
Post Reply
Message
Author
mikezt
Posts: 85
Joined: Sun Oct 06, 2013 10:47 pm

Pomoc pri debugovaní

#1 Post by mikezt » Fri 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.
Attachments
te.zip
(45.65 KiB) Downloaded 7 times

User avatar
rombor
Posts: 29
Joined: Tue Oct 08, 2013 1:28 pm

Re: Pomoc pri debugovaní

#2 Post by rombor » Fri Jan 12, 2018 10:27 pm

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

Code: Select all

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

Code: Select all

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
Posts: 85
Joined: Sun Oct 06, 2013 10:47 pm

Re: Pomoc pri debugovaní

#3 Post by mikezt » Sat 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.

Post Reply