Autor ::Jakub Ladman Poslaná :: 15.08.2013 16:50:52 Predmet ::Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
Ahoj
Setkal se někdo s výše uvedeným?
Dnes jsem spájel propojovací kabel mezi PMD a KZD1.
obslužný program kzd-1-m2-k4 mám v ROM modulu na pozici 0x3800, čili na ROM 5.
Když ovladač natáhnu do RAM, funguje formátování KFORM, KSAVE i KLOAD.
ALE!:
Natáhnu-li z ROM 0 demo0-c nebo z ROM 1 wurmi, tak ty fungují.
Když kterýkoliv znich uložím na kazetu a např. po příkazu NEW, nebo po resetu a novém natažení ovladače KZD1 nahraju zpět z kazety - vypadá při LIST na obrazovce OK.
Jenže pokud spustím program pomocí RUN, okamžitě vyhlásí syntax error na prvním řádku programu.
Další LIST už vypíše program evidentně poškozený.
Setkal se s tím někdo?
Nevím jestli podezřívat ovladač KZD1, nebo hledat nějakou hw závadu.
Fajn by bylo nějak otestovat RAM.
Nějaký test bych asi i byl schopen naprogramovat, ale zatím můžu do PMD programy dostávat jen klávesnicí, nebo přeprogramováním ROM modulu. Taky mi na to chybí návod s mapou paměti a popisem použití io rutin z asm programu.
Nějaký tip?
Díky
Správa
Autor ::Libor L.A. Poslaná :: 15.08.2013 19:31:05 Predmet ::Re: Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
Teoretická možnost poškození programu je tato (i když opravdu spíše jen teoretická): interpret BASICu po svém startu otestuje druhý bajt zdrojového textu v BASICu. Pokud má hodnotu 24h (tedy další řádek začíná na adrese 24xxh), potom interpretr nic nedělá, neboť předpokládá, že má za sebou v paměti regulérní BASIC program. Pokud tam nenajde 24h, pak provede ekvivalent příkazu NEW, neboť mu nesedí struktura BASICovského programu. A teď: co když je první řádek po tokenizaci delší než 256 byte? Pak má druhý byte programu zaručeně hodnotu 25h (nebo vyšší, podle délky toho prvního řádku). A je na kolizi zaděláno. Ale spíše by to mělo logicky takovýto nestandardní program smazat. Ale čert ví, co se natahuje z toho ROMPACKu. Pravděpodobně to bude chyba software z ROMPACKu (buď BASIC interpretr nebo následné programy volané příkazem ROM). Chybou nemyslím chybu programátora ale nežádoucí změnu obsahu EPROM vlivem UV záření, času, teploty atd.
Správa
Autor ::Jakub Ladman Poslaná :: 15.08.2013 19:44:46 Predmet ::Re: Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
ROMpack v mém případě, jak jsem psal jinde, protože byl vybrakovaný jsem předělal na jeden kus M27C256B čili 32KB v jednom čipu.
Programoval jsem tam obsahy rmm souborů z adresáře /usr/local/share/GPMD85emulator nainstalovaného spolu s linuxovým emulátorem
Po zapsání bylo verifikováno bez chyby.
Buď je tedy chyba už v těchto souborech, nebo je někde chyba v hw.
No a právě já ji potřebuju vystopovat.
Zopakuju zde už napsanou informaci, že bez pořádných informací, jakožto k PMD85 nově příchozí, bez zkušeností, dávám dohromady HW koupený nekompletní.
Správa
Autor ::Roman Bórik Poslaná :: 15.08.2013 22:38:41 Predmet ::Re: Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
Problém nie je v HW, ale v ovládači. kzd-1-m2-k4.rmm a kzd-1-m2-k3.rmm sú určené pre BASIC 2.0.
BASIC 2.A má svoje systémové premenné umiestnené v rozšírenej pamäti, takže po KLOAD s pôvodným ovládačom sa prakticky nenastavia zodpovedajúce systémové premenné.
Upravil som pôvodné dva ovládače pre BASIC 2.A (kzd-1-m2A-k4.rmm a kzd-1-m2A-k3.rmm) a pridal do ZIPu k ostatným ovládačom KZD-1.
Správa
Autor ::Jakub Ladman Poslaná :: 16.08.2013 00:31:29 Predmet ::Re: Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
Díky!!!
Tohle nejspíš pomůže.
Škoda že obyčejnej smrtelník, který tato zařízení nepoužíval v době jejich největší slávy nemá kde ty informace najít.
Jdu to vyzkoušet, smazat a naprogramovat EPROM.
Jakub
Správa
Autor ::JL Poslaná :: 16.08.2013 18:59:02 Predmet ::Re: Poškození prog. v basicu při nataženém ovladači KZD1, test RAM?
Takže tahle upravená verze už funguje lépe.
Basic programy nemrší.
Nicméně napsal jsem si program co vygeneruje 1KB pseudonáhodných dat, zapíše na kazetu a potom načte do jiné oblasti v paměti.
V řadě případů pak jsou při porovnávání nalezeny chyby.
Možná jen špatná kazeta.
Zatím to nechávám být a jdu debugovat tu sériovku.