Praktiska tips ang}ende L\KAREN version 4.3
===========================================
eller
Hur man anv{nder L\KAREN fr}n sina egna Assembler-
program.
OBServera att alla adresser {r angiva som +tal, vilket betyder att man
tar talet och adderar till en konstant som varierar beroende p} om man
har 32, 24 eller 16K minne. Har man 32K s} adderar man 32768, har man
24 blir det 40960 och om man har 16K minne s} adderar man 49152.
1 --- L\KAREN kan }terstaras efter RESET genom att skriva:
;CALL(PEEK(65053)*256+PEEK(65052)+1)
OBServera att det *M]STE* vara PRINT (;) och inte t.ex Z=CALL(...
2 --- Om man vill {ndra den enhet sk{rmdumpen g}r till s} f}r man f|rst
r{kna ut vilka ASCII-koder namnet har (alltid 3) och sedan skriva:
POKE +46,kod1,kod2,kod3
[ven om namnet heter C: s} ska du poka in C, mellanslag, mellanslag.
Fr}n b|rjan {r enheten PR:
3 --- Om man har L\KAREN inladdad och man vill anv{nda diverse rutiner
i L\KAREN fr}n sina egna Assemblerprogram (det blir sv}rare fr}n
BASIC) s} ger jag h{r en del intresanta adresser.
Dom adresser som {r markerade med *, kan man {ven utnyttja fr}n
BASICen. Skriv t.ex. Z%=CALL(adr) och rutinen utf|rs.
OBServera att om du anv{nder rutinerna fr}n assembler s} *M]STE*
register IX vara 65011. Det {r det redan i BASIC.
+151 -- CHECK - Hoppar till en adress, eller en annan beroende
p} vilken CHECKsumma man har. Anv{nds vid DEFW-
satser. Format:
label CALL CHECK
DEFW 11273-adress
DEFW 10042/9913-adress
N{r du sedan g|r t.ex JP label, s} kommer
datorn att hoppa till adress 1 om du har 11273,
eller adress 2 om du har 10042/9913.
+510 -- GETLI - H{mtar in en rad fr}n tangentbordet, med
L\KARENS sk{rmeditor inkopplad. HL ska peka p}
d{r texten ska hamna och C inneh}lla max-
l{ngden.
+649 -- H\GER * Flyttar mark|r ett steg }t h|ger utan att radera
n}t p} sk{rmen.
+662 -- V[NSTR * Som ovan, men flyttar mark|ren }t v{nster.
+678 -- UPP * Som ovan, men flyttar mark|ren upp}t.
+687 -- NED * Som ovan, men flyttar mark|ren ned}t.
+690 -- HOME * Placerar mark|ren i |vre v{nstra h|rnet.
+722 -- CLRCRT * T|mmer resten av sk{rmen.
+811 -- PREC * Flyttar fram resten av sk{rmen ett steg.
+898 -- DELETE * Drar tillbaka resten av sk{rmen ett steg.
+1017 -- JP_TAB - H{r b|rjar en lista |ver alla adresser till sk{rm-
editorn, listan {r uppbygd p} s} s{tt att man
tar ASCII-koden f|r den tangent man vill "hoppa"
till, multiplicerar med 2 och adderar adressen till
JP_TAB. Ett exempel:
A = ASCII-koden (OBS: Max 30)
ADD A,A
LD D,0
LD E,A
LD HL,JP_TAB
ADD HL,DE
JP (HL)
Med hj{lp av den h{r listan kan du {ven sj{lv
r{kna ut resten av adresserna dit du vill hoppa.
+1079 -- KOMTAB - H{r b|rjar listan |ver alla nya kommandon.
+1161 -- DISCMD - Om det p} den adressen st}r 255 s} har du inte
floppy, st}r det n}got annat s} har du floppy.
+1171 -- KOMADR - H{r b|rjar listan |ver hopp-adresserna till alla
nya kommandon.
Om du vill ha reda p} var ett kommando ligger s}
kan du g|ra s} h{r: Ta reda p} kommandots kod.
Ta och subtrahera 128 fr}n koden. Multiplicera
resultatet med 2 och addera adressen till KOMADR.
Ett exempel:
A = Koden
SUB 128
ADD A,A
LD D,0
LD E,A
LD HL,JP_TAB
ADD HL,DE
JP (HL)
4 --- Om du vill {ndra default extension vid DISP s} kan du g|ra p} samma
s{tt som i punkt 2. H{r ska du d{remot poka p} adress +4265, {ven
h{r *M]STE* det vara 3 tecken.
5 --- Du kan i ett BASIC-program sj{lv best{mma om datorn ska vara i STEP-
mode eller inte. P} adress +57 s} st}r det 0 (noll) om datorn INTE
{r i STEP-mode, st}r det d{remot 1 d{r s} {r datorn i STEP-mode.
Du m}ste starta programmet med STEP, annars funkar det inte.
Om det {r n}got du undrar |ver eller vill veta svaret p} s} kan
du ju alltid ringa eller skriva till mig, jag ska g|ra mitt b{sta
f|r att svara p} fr}gorna.
Allan Varcoe <3435>
Lindholmsv. 10a
184 02 \stersk{r
Tel: 0764/23755 kv{llar!