SORD M5 Creative Computer - tipy a triky
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í
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
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
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
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ý
Ukázka obsahu kartridže s jazykem BASIC-F, který má adresu IPL startu &27ED:
Disassemblovaný listing rutiny CHKROM, kde je vidět, že se prohledávají adresy &2000 a &4000: