Autor ::Roman Bórik Poslaná :: 23.11.2015 21:12:37 Predmet ::Re: použití podprogramu Transf (EC00)monitoru
Práve som sa chystal tiež niečo podobné napísať, len ste ma predbehli.
Doplním iba, že ak sa má skutočne nahrať z ROM Modulu BASIC, je potrebné po nahratí programu v BASICu na adresu 2400h, ešte zavolať rutinu na adrese 2295h, aby sa v BASICu inicializovali vektory konca programu. Takže:
CALL EC00
DW 2800
DW 03FF
DW 2400
CALL 2295
RST 0
Vo výsledku: CD 00 EC 00 28 FF 03 00 24 CD 95 22 C7
Správa
Autor ::Tomáš Pecina Poslaná :: 24.11.2015 07:54:05 Predmet ::Re: použití podprogramu Transf (EC00)monitoru
Ano, přesně tak, teplý start BASICu tuto kontrolu sám neprovádí, pouze se podívá na začátek programu.
Jen pro úplnost, kdyby tohle chtěl někdo dělat kompatibilně pro všechny tři modely PMD, musí postupovat jinak a volat 0x1e04, a předtím na zásobník uložit návratovou adresu a další hodnotu, která se před návratem uloží do HL, tedy např.
LXI H,0
PUSH H
PUSH H
JMP 1E04H
PMDčko je prostě rafinovaný stroj, u kterého jsou i ty nejjednodušší operace složité :-)