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!