Indeks | English version |
Powiązany odnośnik: "Uruchamianie programów maszynowych na mikrokomputerze Casio PB-2000C"
Wymagany jest PB-2000C z 64kB RAM i interfejsem FA-7 lub MD-100.
Treść wyświetlacza:
<memory> c file work 58879 7500 50000 1379 free 50000 1379 c,file? 7500,50000 |
NEW LOAD"MC" RUN
main() { char* p; p=(char*)0xC021; *p++=0x56;*p++=0x60;*p++=0x55;*p++=0xD1; *p++=0x08;*p++=0xE0;*p++=0x04;*p++=0x77; *p++=0x74;*p++=0xC0;*p++=0xB4;*p++=0x84; *p++=0x0D;*p++=0x04;*p++=0xD1;*p++=0x08; *p++=0x96;*p++=0x40;*p++=0x77;*p++=0x74; *p++=0xC0;*p++=0xD1;*p++=0x08;*p++=0x1D; *p++=0x57;*p++=0x71;*p++=0x74;*p++=0xC0; *p++=0xD1;*p++=0x08;*p++=0x23;*p++=0x40; *p++=0x77;*p++=0x74;*p++=0xC0;*p++=0xD1; *p++=0x00;*p++=0x00;*p++=0x80;*p++=0xD1; *p++=0x08;*p++=0x3E;*p++=0x41;*p++=0x77; *p++=0x74;*p++=0xC0;*p++=0xD1;*p++=0x08; *p++=0xE0;*p++=0x04;*p++=0x77;*p++=0x74; *p++=0xC0;*p++=0xB0;*p++=0x84;*p++=0x56; *p++=0x60;*p++=0x45;*p++=0xD6;*p++=0x00; *p++=0x10;*p++=0x0C;*p++=0xD1;*p++=0x00; *p++=0x30;*p++=0x00;*p++=0xA0;*p++=0x00; *p++=0x56;*p++=0x60;*p++=0x65;*p++=0xD6; *p++=0x00;*p++=0x00;*p++=0x00;*p++=0xD6; /*#*/ *p++=0x20;*p++=0xFF;*p++=0x7F;*p++=0x96; /*#*/ *p++=0x59;*p++=0xD8;*p++=0xFE;*p++=0x1E; *p++=0x66;*p++=0x26;*p++=0x06;*p++=0xD1; *p++=0x06;*p++=0x75;*p++=0x02;*p++=0xA6; *p++=0x07;*p++=0x56;*p++=0x60;*p++=0x54; *p++=0xDE;*p++=0x08; }
>E0CE2 0CE2 AE-76 6F-02 FF- |
W rezultacie tych czynności w kalkulatorze powinien pojawić się plik o nazwie "MEMO" zawierający dolne 32kB obrazu pamięci ROM karty + bajt EOF (0x1A). Można go wysłać przez port RS232 za pomocą menu [save].
W celu odczytania górnych 32kB zawartości pamięci ROM karty, potrzebna jest niewielka zmiana programu w języku C i powtórzenie powyższych kroków. Wiersze oznaczone komentarzem /*#*/
należy zastąpić następującymi:
*p++=0x00;*p++=0x00;*p++=0x80;*p++=0xD6; /*#*/ *p++=0x20;*p++=0xFF;*p++=0xFF;*p++=0x96; /*#*/
Zwracam uwagę, że karta jest wkładana do włączonego kalkulatora, przy aktywnej magistrali. Nie jest to niebezpieczne, ale może czasem spowodować zawieszenie kalkulatora (chociaż mnie się to nigdy nie zdarzyło). W takiej sytuacji trzeba zacząć jeszcze raz od początku.
ORG &HC021 START &HC021 PST UA,&H55 ; czekanie na otwarcie gniazda karty LDW $8,&H04E0 L1: CAL SYSCAL JR NZ,L1 ; szukanie pliku o nazwie "MEMO" NA $4,$SX LDW $8,&H4096 CAL SYSCAL ; skasowanie istniejącego pliku "MEMO" LDW $8,&H571D CAL NC,SYSCAL ; utworzenie nowego sekwencyjnego pliku o nazwie "MEMO" LDW $8,&H4023 CAL SYSCAL ; zmiana rozmiaru pliku na &H8000 bajtów LDW $0,&H8000 ;ilość bajtów LDW $8,&H413E ;powiększenie pliku CAL SYSCAL ; czekanie na zamknięcie gniazda karty LDW $8,&H04E0 L2: CAL SYSCAL JR Z,L2 ; wybór karty w banku pamięci 2 PST UA,&H45 PRE IX,&H0C10 LDW $0,&H0030 STW $0,(IX+$31) ; kopiowanie &H8000 bajtów z karty do pliku PST UA,&H65 ;źródło = bank 2, cel = bank 1 PRE IX,0 ;początkowy adres źródłowy PRE IY,&H7FFF ;końcowy adres źródłowy PRE IZ,$25 ;adres docelowy BUP OFF ; wywołanie podprogramu o adresie $8,$9 w banku pamięci 0 SYSCAL: GST UA,$6 PHS $6 LDW $6,&H0276-1 PHSW $7 PST UA,&H54 JP $8