SORD M5 Creative Computer - tipy a triky

 

     

 

SORD Japan logo

 

Programovací jazyk BASIC

Tisk/Potlačení tisku konce řádky

Použití příkazu PRINT s parametry provede tisk a odřádkování (CR+LF), jinými slovy, kurzor je přesunut na začátek nové řádky a další tisk pak pokračuje tam. Pokud je potřeba ponechat kurzor tam, kde skončil tisk, musí se za příkaz dát středník.

PRINT "Result is: ",RESULT
PRINT "Result is: ",RESULT;

Programovací jazyk BASIC-F

Výchozí zařízení

Systémová proměnná IMPDEV určuje, které zařízení je výchozí (implicitní) v příkazech, které umějí pracovat se zařízeními (například OLD a SAVE). Změnou její hodnoty dochází k okamžité změně výchozího zařízení.

73CB   XX  IMPDEV  implicitní číslo systémového zařízení
Typy zařízení (XX) jsou:
00 - CNS
01 - GRP
02 - PRT
03 - PRI
04 - CMT
05 - FX
06 - SIO
FF - CLOSE (žádné)

V emulátoru MAME je výchozí zařízení FD-5, které nefunguje. Příkazem níže lze změnit implicitní zařízení na magnetofon:

POKE &73CB,4

Uzamčení programu proti prolížení a/nebo změnám

Pokud potřebujete skrýt před zvídavými uživateli celý program (nebo jeho část), lze využít příkaz NOLIST. Tento příkaz interně přečísluje řádky basického programu na záporné hodnoty a BASIC-F pak "ví," že je nemá příkazem LIST zobrazovat.

Přečíslování zpět na kladná čísla se provede zavolaním rutiny RENUM (přímo příkazem RENUM to nejde):

CALL &44F5,,,1

Pokud se při pokusu zobrazit, změnit nebo uložit program objeví chybové hlášení Err 5 in 0, je program zamčený. Odemknout jej lze těmito příkazy:

SAVE "jméno"#0
nebo
POKE PEEKW(&726C)-1,0

Pro zamčení basického programu je potřeba ho uložit příkazem SAVE s příslušným zamykacím kódem:

SAVE <"[device:]file name">[,<first address>,<last address>[,<start address>]][#<n>]

Příkaz SAVE uloží data nebo program na magnetofon nebo jiné zařízení. Použije-li se SAVE "123456789" , uloží se program v BASICu s názvem 123456789. V maximálně devítiznakovém jménu programu nebo dat se mohou vyskytovat i řídící znaky, které se při zpětném načítání nezobrazují, ale vykonávají. Při zaznamenávání na jiné zařízení než implicitní, se před jménem programu uvede jméno zařízení (max. 3 znaky) a oddělí se dvojtečkou (například CMT:filename). Uvedením čísla <n> za <file name># se určuje zámek, tedy, zda-li má být program v jazyce BASIC-F:
  0 - po nahrání automaticky spuštěn;
  1 - nekopírovatelný (nelze již jeho SAVE);
  2 - uzamčen pro editaci;
  3 - uzamčen pro listing.

Jednotlivá čísla určují přímo dolní 4 bity čísla <n>, tedy je lze kombinovat (sčítat). Například SAVE "filename"#15 znamená nastavení všech bitů na 1 (aktivace všech zámků).

Ostatní parametry příkazu SAVE se použijí v případě zaznamenávání programu nebo dat .CM (strojový kód, binární data):
<first> - počátecní adresa nahrávání
<last> - koncová adresa nahrávání
<start> - případná startovací adresa pro program ve strojovém kódu, který se má po načtení sám spustit.

Jak zjistit velikost paměti

Lze využít funkci FRE a eventuelně HEX$:

PRINT HEX$(FRE(nn))

Přičemž parametr nn určuje typ paměti:
  0 - maximální volno pro uživatelský prostor
  1 - volno pro program a proměnné
  2 - volno pro zásobník a operační prostor
  3 - součet výsledků parametrů 1 a 2
  4 - poslední adresa dosažitelná systémem BASIC
  5 - konec fyzické paměti RAM

Stav paměti lze zjistit také přečením systémových proměnných SUMMEA a SUMMTA (viz příručka System Variables):

7014 xxxx SUMMTA  Adresa počátku uživatelovy paměti
7016 xxxx SUMMEA  Adresa konce uživatelovy paměti

Je-li k dispozici 32KB nebo 64KB modul RAM, pak je adresa &0000 (čili o jednu více, než je poslední adresa adresního prostoru &FFFF)

PRINT HEX$(PEEKW(&7016))

SORD M5 obecně

Jak zjistit start adresu kartrtidže

Kartridž (obecně paměťový modul) obsahuje paměť ROM, která by měla vždy začínat na hranici adresního prostoru &2000 nebo &4000. Obvyklý stav je, že kartridž začíná na adrese &2000. Začátek kartridže obsahuje hlavičku, kde je mimo jiné adresa startu. Program uložený v ROM kartridže se spouští z MONITORu ROM (rutina CHKROM hledá kartridž) skokem na adresu IPL startu:

Formát hlavičky kartridže ************************* +0000 +--------------------------------------+ | identifikátor | +0001 +--------------------------------------+ | startovací adresa | +0003 +--------------------------------------+ | adresa IPL startu | +0005 +--------------------------------------+ | instrukce pro vykonání RST4 | +0008 +--------------------------------------+ | instrukce pro vykonání RST5 | +000B +--------------------------------------+ | vlastní program | / / \ \ / / | | +xFFF +--------------------------------------+

Ukázka obsahu kartridže s jazykem BASIC-F, který má adresu IPL startu &27ED:

 

SORD M5 cartridge BASIC-F

 

Disassemblovaný listing rutiny CHKROM, kde je vidět, že se prohledávají adresy &2000 a &4000:

 

SORD M5 MONITOR ROM SORD M5 MONITOR ROM