.title list .includ 'b:global.mac' .includ 'b:rrvdef.mac' ; Variables from reread. sect code ;++ ; List - Main body in Reread.Mac ;-- ;+ LiTTYs - list terminals ; LiTTYs: write #TThead ; Display a nice header clr r2 ; Zero terminal counter mov #GRPLST, r1 10$: call GetAdr ; Make it a real pointer. cmp rPri1(r1), #4 ; Terminal? beq 20$ ; Yes (to 20$ in that case) mov rNxt(r1), r1 ; Else... Next group! bne 10$ ; Unless NULL pointer (of course) br 30$ ; Leave the routine in that case 20$: inc r2 ; Yet another TTY ! push r1 add #rStr, r1 ; Obtain pointer to terminal name mov #-18., r0 ; Max length for TTY names == 15. call strouf ; Formatted string output. mov -rStr(r1), r1 mov #5, r0 call deco16 ; Display Group # mov (sp), r1 tst rHigh(r1) ; Scope or not bpl 22$ write #noscop ; No scope br 24$ 22$: write #scope 24$: pop r1 ; Restore r1 cmp (r1), #-1 ; predefined screen? bne 26$ mov rNxt(r1), r1 push r1 write #SpecT ; No creator. pop r1 br 28$ 26$: mov rArg(r1), r0 ; Creator mov rNxt(r1), r1 ; Fetch the next pointer call PrtNam ; Print the name of the creator 28$: call PCRLF bcs 40$ tst r1 bne 10$ 30$: write #TOT mov r2, r1 clr r0 call deco16 write #terms 40$: rts pc ; rHigh = flagord ; rArg = skapare ; Namn = rStr ; rNxt = n{sta WrtNN: tstb 160(r4) beq 50$ mov 6(r4), r1 mov #5, r0 call deco16 mov r4, r1 add #160, r1 mov #16., r0 call strouf tst (pc)+ 50$: sec rts pc LiTPer: .date mov @#xrb, r2 br LiPer2 LiAPer: jsr pc, ComAct br LiPer2 LiPer: clr r2 LiPer2: tst Flag beq 5$ Write #NetHT br 10$ 5$: Write #PRUBR cmpb #xAdm,@#MyPriv bhi 10$ Write #PRIVR 10$: call PCR2LF mov #GRPLST,r1 clr r3 ; R{knare clr FB1-2 50$: call GetAdr mov r1, r5 mov rNxt(r5), NxtAdr cmp #1,rPri1(r5) bne 150$ gos tryrec, <#1, rArg(r5), #FB1, #Unlock> mov r1,r4 add #56.,r1 cmp (r1), r2 blo 150$ tst Flag beq 55$ call WrtNN bcs 150$ br 57$ 55$: call prtdat mov 6(r4),r1 mov #5,r0 call deco16 57$: inc r3 Write #SPC3 mov r5,r1 add #rStr,r1 push r2 movb (r1), r0 inc r0 mov #FB2, r2 60$: movb (r1)+, (r2)+ sob r0, 60$ cmpb #xAdm, MyPriv bhi 70$ cmpb #xUser, 36(r4) bhis 70$ movb #' , (r2)+ incb FB2 movb #'(, (r2)+ incb FB2 clr r0 bisb 36(r4), r0 push r2 mov #PRILST, r1 gos findcm mov r0, r1 movb (r1)+, r0 movb FB2, r2 add r0, r2 movb r2, FB2 pop r2 65$: movb (r1)+, (r2)+ sob r0, 65$ movb #'), (r2)+ incb FB2 70$: pop r2 gos shortn <#FB2, #FB2+200, #55.> mov #FB2+200, r1 call strout 100$: call PCRLF bcs 200$ dec r0 beq 150$ movb (r1)+, r0 add r1, r0 write #tab3 mov r0, r1 call strout call PCRLF bcs 200$ 150$: mov NxtAdr, r1 bne 50$ Write #Tot mov r3,r1 clr r0 call deco16 Write #tPer cmp #1,r3 beq 200$ Write #Plr 200$: call PCR2LF rts pc LiAMee: call ComAct mov r2, After mov #-1, After+2 ; Indicate that we only want active. br LiMee2 LiMee: clr After clr After+2 LiMee2: Write #MRUBR1 tst Flag beq 2$ Write #NNT br 7$ 2$: tst After+2 beq 5$ write #acttim br 7$ 5$: write #cretim 7$: write #MRUBR2 8$: call PCR2LF gos getMe, <#FB1> clr fb3-2 clr fb2-2 mov 24(r1),tmp ; Antal medlemmskap beq 10$ gos tryrec, <#1, 26(r1), #FB1, #UnLock> mov r1,tmp+2 10$: mov #GRPLST,r1 clr r3 50$: call GetAdr mov r1, r5 mov rNxt(r5), NxtAdr cmp #2,rPri1(r5) beq 51$ 1050$: jmp 310$ 51$: gos tryrec, <#1, rArg(r5), #FB3, #Unlock> mov r1,r4 cmp 36(r1), After ; Compare times blo 1050$ tst After+2 ; Do we want all? beq 55$ tst rHigh(r5) ; Any entries? beq 1050$ ; No, skip it! add #24, r1 55$: tst Flag beq 57$ mov r4, r1 add #160, r1 tstb (r1) beq 310$ mov #-16., r0 call strouf br 70$ 57$: add #12, r1 call prtdat 70$: inc r3 mov 24(r4),r1 mov #5,r0 call deco16 mov rHigh(r5),r1 call deco16 Write #Space bit #xOPN,16(r4) beq 80$ mov #OPN,r1 br 90$ 80$: mov #CLOt,r1 90$: call strout cmp 10(r4),Me bne 150$ mov #ORGt,r1 br 300$ 150$: mov tmp,r2 beq 280$ mov tmp+2,r1 170$: mov 2(r1),tmp+4 mov #20.,r0 add #10,r1 180$: cmp (r5),(r1)+ beq 290$ cmp (r1)+,(r1)+ dec r2 beq 280$ sob r0,180$ gos tstrec, <#1, tmp+4, #FB1> bcc 170$ gos getrec, <#1, tmp+4, #FB2, #Unlock> br 170$ 280$: mov #IMDL,r1 br 300$ 290$: mov #SPC3,r1 300$: call strout mov r5,r1 add #rStr,r1 gos shortn mov #TmpStr, r1 305$: call strout call PCRLF bcs 320$ dec r0 ble 310$ movb (r1)+, r0 add r0, r1 push r1 write #TabSpc clr r0 pop r1 br 305$ 310$: mov NxtAdr, r1 beq 315$ jmp 50$ 315$: Write #tot mov r3,r1 clr r0 call deco16 Write #tMee cmp #1,r3 beq 320$ mov #'n,r0 call ttyout 320$: call PCR2LF rts pc LiNePe: Write #NeRUB1 Write #NeRUB2 call pcr2lf mov #GRPLST,r1 clr r3 ; R{knare clr FB1-2 50$: call GetAdr mov r1, r5 mov rNxt(r5), NxtAdr cmp #10, rPri1(r5) bne 150$ gos tryrec, <#1, rArg(r5), #FB1, #Unlock> mov r1,r4 add #12,r1 call prtdat mov rHigh(r5), r1 mov #5, r0 call deco16 mov 6(r4),r1 mov #5,r0 call deco16 57$: inc r3 mov #Spc3, r1 bit #xNWP, 16(r4) bne 58$ bit MyNtRt, 36(r4) bne 59$ 58$: mov #IMDL, r1 59$: call strout mov r5,r1 add #rStr,r1 movb (r1), r0 inc r0 mov #FB2, r2 60$: movb (r1)+, (r2)+ sob r0, 60$ 70$: gos shortn <#FB2, #FB2+200, #55.> mov #FB2+200, r1 call strout 100$: call pcrlf bcs 200$ dec r0 beq 150$ movb (r1)+, r0 add r1, r0 write #tab3 mov r0, r1 call strout call PCRLF bcs 200$ 150$: mov NxtAdr, r1 bne 50$ Write #Tot mov r3,r1 clr r0 call deco16 Write #tNePe cmp #1,r3 beq 200$ Write #Plr 200$: call pcr2lf rts pc SNews: mov #-1, TMP+4 ; Short news format. br xLiNew LiNew: clr TMP+4 ; Indicate long format. xLiNew: clr TMP ; # of unread texts. clr TMP+2 ; # of unread entries. clr TMP+6 ; # of meetings with unread entries gos getme <#FB1> mov 24(r1), r5 ; Number of membership mov 26(r1), r4 ; Pointer to MEMBERSHIP node mov me, r0 call GetHig sub 102(r1), r0 beq 10$ add r0, TMP call 200$ write #lettrs call PCRLF 10$: clr FB3-2 15$: tst r5 ble 35$ gos tryrec <#1, r4, #FB2, #Unlock> mov r1, r3 mov 2(r3), r4 add #10, r3 mov #20., r2 sub r2, r5 bpl 20$ add r5, r2 20$: mov (r3)+, r0 call GetHig sub (r3)+, r0 tst (r3)+ tst r0 ble 30$ add r0, TMP add r0, TMP+2 inc TMP+6 ; Update meeting counter tst TMP+4 ; Short format? bne 30$ ; To 30$ in that case call 200$ write #entrys mov -6(r3), r0 call PrtNam call PCRLF bcs 999$ 30$: sob r2, 20$ br 15$ 35$: tst TMP+4 ; Short format? bne 39$ ; Yes -> 39$ tst TMP+2 beq 40$ write #TOT mov TMP+2, r1 clr r0 call deco16 write #unseen cmp TMP+2, #1 beq 37$ mov #'a, r0 call ttyout 37$: write #entrys mov TMP+6, r1 clr r0 call deco16 write #tMee cmp TMP+6, #1 beq 38$ mov #'n, r0 call ttyout 38$: call PCRLF br 40$ 39$: mov TMP+2, r0 beq 40$ call 200$ write #entsum ; "inl{gg" call PCRLF 40$: tst TMP bne 999$ 50$: Write #U.hvno call PCRLF 999$: call PCRLF rts pc 200$: Write #U.have mov r0, r1 push r0 clr r0 call deco16 pop r0 write #Unseen cmp r0, #1 ; A single one? beq 25$ mov #'a, r0 ; If not - pluralize! call TtyOut 25$: rts pc oSyInf: gos get, <#1, #2, #FB1, #1, #Unlock> bis #UtmOn, KSW ; Enable Output to file. Write #DBST mov #FB1+2,r1 call prtdat mov #FB1+10,r5 Write #KOMVER Write #WelKOM+4 Write #NDAR mov #LSTGRP, r1 call GetAdr mov r1,r3 mov (r1),r0 mov r0, r1 bic #17776,r0 swab r0 sub ResLim, r0 ash #-3, r0 bic #160001,r1 inc r1 ash #-13, r1 adc r1 add r0, r1 mov #-2, r0 call deco16 Write #KW, #-10 Write #AVMAX mov 4(r3), r1 ash #-3, r1 mov #-2, r0 call deco16 Write #KW Write #RP2LF cmpb #xAdm,MyPriv bhi 20$ Write #KMAP clr r0 clr r1 bisb -(r5),r1 call deco16 movb #',,r0 call ttyout clr r0 clr r1 bisb -(r5),r1 call deco16 movb #'),r0 call ttyout tst (r5)+ 20$: mov (r5)+,r0 beq 21$ Write #MFPAP call prtnam 21$: mov (r5)+,r0 beq 22$ Write #MFPAM call prtnam 22$: mov #FB1+62, r2 mov (r2)+, r3 beq 27$ mov #-49., out Write #NetAdr Write r2 mov #NetPrT, r1 mov out, r0 neg r0 call strouf mov r3, r0 call prtnam 27$: mov #FB1+16, r2 tst (r2) bne 28$ tst 2(r2) beq 29$ 28$: Write #SyText mov r2, r1 mov #-13, r0 call deco32 Write #NSText mov FB1+44, r1 clr r0 call deco16 29$: clr r2 clr r3 clr r4 mov #GRPLST,r1 30$: call GetAdr mov rPri1(r1),r0 beq 60$ cmp #1,r0 bne 40$ inc r2 ; Person br 60$ 40$: cmp #2, r0 bne 50$ inc r3 ; M|te br 60$ 50$: cmp #4, r0 bne 60$ inc r4 60$: mov rNxt(r1),r1 bne 30$ dec r4 Write #AAG mov r2,r1 add r3,r1 add r4,r1 mov #-6,r0 call deco16 movb #'(,r0 call ttyout mov r2,r1 clr r0 call deco16 Write #OCH mov r3,r1 clr r0 call deco16 Write #ASG clr r0 mov r4,r1 call deco16 Write #Octer mov #FB1+30,r5 mov (r5)+,r1 clr r0 call deco16 Write #STX mov #FB1+22,r1 clr r0 call deco32 Write #ATX mov FB1+26,r1 mov #-6,r0 call deco16 Write #AVMAX mov FB1+14,r1 clr r0 call deco16 Write #RP2LF 999$: call pcrlf rts pc ComAct: .date ; Compute date for active, ret in r2 mov @#xrb, r3 clr r2 div #1000., r2 sub #5, r3 bge 10$ dec r2 add #365., r3 10$: swapr r2, r3 mul #1000., r3 add r2, r3 mov r3, r2 rts pc Li50: Write #PRUBR cmpb #xAdm,@#MyPriv bhi 10$ Write #PRIVR 10$: call PCR2LF gos get <#1, #2, #FB3, #1, #unlock> ; Get info. mov #FB3+400, r2 clr r3 ; R{knare clr FB1-2 50$: mov (r2)+, r0 beq 160$ mov #GRPLST,r1 call findcm mov r0, r1 beq 50$ sub #rStr, r1 mov r1, r5 cmp rPri1(r5), #1 bne 50$ gos tryrec, <#1, rArg(r5), #FB1, #Unlock> mov r1, r4 add #56., r1 inc r3 call prtdat mov 6(r4),r1 mov #5,r0 call deco16 Write #SPC3 mov r5,r1 add #rStr, r1 push r2 movb (r1), r0 inc r0 mov #FB2, r2 60$: movb (r1)+, (r2)+ sob r0, 60$ cmpb #xAdm,@#MyPriv bhi 70$ movb #' , (r2)+ incb FB2 movb #'(, (r2)+ incb FB2 clr r0 bisb 36(r4), r0 push r2 mov #PRILST, r1 gos findcm mov r0, r1 movb (r1)+, r0 movb FB2, r2 add r0, r2 movb r2, FB2 pop r2 65$: movb (r1)+, (r2)+ sob r0, 65$ movb #'), (r2)+ incb FB2 70$: pop r2 gos shortn <#FB2, #FB2+200, #55.> mov #FB2+200, r1 call strout 100$: call PCRLF bcs 200$ dec r0 beq 50$ movb (r1)+, r0 add r1, r0 write #tab3 mov r0, r1 call strout call PCRLF bcs 200$ br 50$ 160$: Write #Tot mov r3,r1 clr r0 call deco16 Write #tPer cmp #1,r3 beq 200$ Write #Plr 200$: call PCR2LF rts pc LiAli: gos GetMe, <#FB1> mov 116(r1), r5 ; Antal Alias bne 20$ Write #DHIA jmp 999$ 20$: mov 120(r1), r4 30$: gos Tryrec, <#1, r4, #FB1, #Unlock> mov 2(r1), r4 mov r1, r2 Write #Spc3 clr Out mov r2, r1 add #20, r1 mov #-18., r0 call strouf cmp #18., Out beq 35$ call pcrlf bcs 100$ mov #18.+3, r0 call SpcOut 35$: Write #Spc3 mov 10(r2), r0 call PrtNam cmp #20, 6(r2) bne 50$ Write #KoSp mov r2, r1 add #110, r1 call strout 50$: call pcrlf bcs 100$ dec r5 beq 100$ tst r4 bne 30$ 100$: call pcrlf 999$: rts pc LiDist: mov To, r0 beq 999$ mov #GRPLST, r1 call FindCm gos getRec, <#1, rArg-rstr(r0), #FB1, #Unlock> mov 142(r1), r2 bne 20$ mov To, r0 call PrtNam Write #SakDL br 999$ 20$: cmp #2, (r1) ; N{tPersonn? beq 40$ gos oPrtDi, br 50$ 40$: gos oPrDTN, 50$: 999$: rts pc proc oPrDTN, begin push tst NrInl(r5) beq 999$ 10$: mov rec(r5), r0 beq 999$ gos GetRec, <#1, r0, #FB2, #UnLock> mov 2(r1), rec(r5) mov 6(r1), r2 mov 10(r1), r3 add #14, r1 clr out call strout write #EqlBra gos oPrtDi, bcs 999$ dec NrInl(r5) bne 10$ 999$: pop ret proc oPrtDi, Var Pos, word begin push tst NrInL(r5) beq 999$ clr FB2-2 clr FB3-2 10$: gos TryRec <#1, Rec(r5), #FB2, #UnLock> mov r1, r3 mov 2(r1), Rec(r5) add #10, r3 mov #20., r2 20$: mov (r3)+, r0 clr Out call PrtNam mov (r3)+, r4 beq 40$ Write #KoSp mov Out, Pos(r5) 30$: gos TryRec, <#1, r4, #FB3, #Unlock> mov 2(r1), r4 add #14, r1 call strout tst r4 beq 40$ mov #',, r0 call ttyout call pcrlf bcs 1000$ mov Pos(r5), r0 add left(r5), r0 call SpcOut br 30$ 40$: call pcrlf bcs 1000$ mov left(r5), r0 call SpcOut tst (r3)+ dec NrInL(r5) beq 999$ sob r2, 20$ br 10$ 999$: call pcrlf 1000$: pop ret ; Anv{nda str{ngar Text SakDL, <" saknar (extern) distrubution."> Text DBST, <"Databasens skapades: "> Text KOMVER, <"Aktuell KOM version: "> Text NDAR, <"Anv{nd del av KOMRES: "> Text KW, <" kW"> Text KMAP, <"Konto med absoluta privilegier: ("> Text ASG, <" m|ten och "> Text OCTER, <" terminaler)""Skapade grupper: "> Text SyText, <"Systemmedelande: Text "> Text NsText, <" Antal visningar: "> Text AAG, <"Aktiva grupper: "> Text STX, <"Skapade texter: "> Text ATX, <"Aktiva texter: "> Text AVMAX, <"(av maximalt "> Text OCH, <" personer, "> Text MEETk, <"m|ten: "> Text MFPAP, <"M|te f|r presentation av personer: "> Text MFPAM, <"M|te f|r presentation av m|ten: "> Text NetPrT, <" N{tperson: "> Text NetAdr, <"KOMs n{t-adress: "> Text PRUBR, <"Senast inne Nr Namn"> Text NeRUB1, <'("*" anger n{t du ej f}r skriva till)'> Text NeRUB2, <"Skapelsetid Inl Nr Namn"> Text NetHT, <" Nr N{t-namn Namn"> Text PRIVR, <" (Privilegier)"> Text TOT, <<15><12>"Totalt "> Text tPer, <" person"> Text tNePe, <" n{tperson"> Text Plr, <"er"> Text RP2LF, <")"> Text SPPA, <" ("> Text MRUBR1, <'("*" anger m|ten du inte {r med i)'> Text MRUBR2, <" Med Inl Typ Namn"> Text NNT, <"N{t-namn "> Text cretim, <"Skapelse tid "> Text acttim, <"Senast aktivt"> Text IMDL, <" * "> Text tMee, <" m|te"> Text STXTS, <" Text "> Text DHIM, <"Du har inga markerade inl{gg"> Text TabSpc <<11><11><11><11>" "> Text Tab3, <<11><11><11>> Text Unseen, <" ol{st"> Text entrys, <" inl{gg i "> Text lettrs, <" brev"> Text U.hvno, <"Du har inga ol{sta nyheter"> Text entsum, <" inl{gg"> Text TThead, <"Namn Nr Typ Skapare"> Text scope, <" Sk{rm "> Text noscop, <" Papper "> Text terms, <" terminaler"> Text DHIA, <"Du har inga ALIAS."> Text erased, <": ** raderad **"> Text EqlBra, <" ="<62.>" "> ; " => " .even .end