.title Alias .inclu "b:global" sect code proc oAdAli Var NewRec, word Var StrLen, word Var Grp, word Var Typ, word Var NetStr, word Var NetLen, word begin cmp #-1, NxtMem bne 10$ Write #NoRoAl br 25$ 10$: Repars #4, #VVD bcs 25$ mov #4, r0 call fixlst bcs 25$ call FixGrp bcs 25$ mov r2, Grp(r5) clr NetLen(r5) mov r1, NetStr(r5) beq 15$ bisb (r1)+, NetLen(r5) inc NetStr(r5) 15$: mov r0, r2 asr r0 cmp r0, Level bhis 25$ mov Strs+2(r2), r0 mov Strs(r2), r2 sub r2, r0 dec r0 bne 30$ 20$: Write #NaSkV 25$: jmp 1000$ 30$: cmp #55., r0 ; Max l{ngd. blo 20$ mov r0, StrLen(r5) mov r2, r1 call AmbTst bcc 35$ Write #amb br 25$ 35$: cmp #55., NetLen(r5) blo 20$ tst NetStr(r5) beq 50$ mov #20, typ(r5) br 100$ 50$: mov #GRPLST, r1 mov Grp(r5), r0 call FindCm clr typ(r5) bisb rPri1-rStr(r0), typ(r5) ; Bra, argumenten tycks vara okey. Till saken! 100$: call MtxBgn gos GetMe, <#FB1> mov r1, r3 mov #FB2, r1 mov #1, r0 call spawn push r1 mov (r1), NewRec(r5) ; Record Number. mov #14, (r1)+ clr (r1)+ ; N{sta nod (Saknas) mov 122(r3), (r1)+ ; F|reg}ende. mov typ(r5), (r1)+ ; Typ av grupp. mov Grp(r5), (r1)+ ; Grupp Nummer. add #6, r1 mov StrLen(r5), r0 movb r0, (r1)+ 120$: movb (r2)+, (r1)+ sob r0, 120$ mov (sp), r1 mov NetLen(r5), r0 beq 150$ mov NetStr(r5), r2 beq 150$ add #110, r1 movb r0, (r1)+ 130$: movb (r2)+, (r1)+ sob r0, 130$ 150$: pop r1 mov NewRec(r5), r0 call MakAli ; L{gg upp listan i minnet. 155$: mov 122(r3), r2 bne 160$ mov Newrec(r5), 120(r3) ; F|rsta ALIAS. br 170$ 160$: gos PutGet, <#1, r2, #FB2> mov NewRec(r5), 2(r1) 170$: gos Put, <#1,, #FB2> gos LockMe, <#FB2> inc 116(r1) ; Antal ALIAS mov 120(r3), 120(r1) mov NewRec(r5), 122(r1) ; Sista ALIAS gos Put, <#1,, #FB2> 999$: call MtxEnd mov #1, r0 call Releas 1000$: ret oSuAli: Repars #3, #VAVDTB bcs 999$ mov Found+4, r1 call GetAdr clr rPri1(r1) mov rArg(r1), r4 beq 999$ gos GetRec, <#1, r4, #FB1, #Unlock> cmp (r1)+, #14 ; Alias? beq 20$ Write #FR br 999$ 20$: call MtxBgn call ccoff mov (r1)+, r2 ; Next ALIAS mov (r1)+, r3 ; Previous ALIAS beq 30$ gos GetRec, <#1, r3, #FB1,> mov r2, 2(r1) gos Put, <#1,,#FB1> 30$: tst r2 beq 40$ gos GetRec, <#1, r2, #FB1,> mov r3, 4(r1) gos Put, <#1,, #FB1> 40$: gos LockMe, <#FB1> add #116, r1 dec (r1)+ ; Nr of ALIAS cmp (r1)+, r4 ; 1'st ALIAS bne 50$ mov r2, -2(r1) 50$: cmp (r1), r4 ; Last ALIAS bne 60$ mov r3, (r1) 60$: gos Put, <#1,, #FB1> gos Dispos, <#1, r4, #FB1> call MtxEnd call ccon 999$: rts pc Text FR, <"Felaktigt recordformat - Bryter."> Text VAVDTB, <"Vilket ALIAS vill du ta bort"> Text VVD, <"Vad vill du definiera"> Text NaSkV, <"Namnet f}r vara mellan 1 och 55 tecken"> Text NoroAl, <"Det finns inte tillr{ckligt med minne."> .end