.title RECRE2 ; Initierings rutiner till KOM .inclu "b:global" .psect ADO: .byte 10$-ADO-1 .ascii "Adderar organisat|rerna:" 10$: .even .inclu "b:komfil" ; KOM filedefinitions. INIT: .ttnch ; No Echo mov #^RKOM, @#firqb+fqnam1 mov #^R..., @#firqb+fqnam1+2 .name ; Set work name clr @#Me mov #LinLen-2, @#MaxLin clr @#Line clr PTerm ; Default term-typ (dumy crt) clrb @#xrb+xrci .postn mov #Width,r0 clr (r0) ; ? movb @#xrb,(r0) decb (r0) movb @#firqb+fqjob, r0 asr r0 mov r0, @#Job write #ADO mov #xSM+xACR+xELIN+xBL, @#MyFlags mov #UnProm, @#Stat mov #ABSPRV, KSW movb #UU.SYS,@#Firqb+fqfun clr @#firqb+4 .UUO mov @#firqb+26,@#PPN movb @#Firqb+5,@#TERM OPNFIL: mov #EOFS,r2 ; Open files mov #EOFS-Files, r0 ; Number of files * 2 10$: mov #firqb+fqfun, r1 movb #opnfq, (r1)+ mov r0, (r1)+ ; Unit number * 2 mov KOMPPN, (r1)+ mov #^RKOM, (r1)+ mov -(r2), (r1)+ mov #^RDAT, (r1)+ mov #1+128.+32768., firqb+fqmode mov KOMDEV, firqb+fqdev mov KOMDVN, firqb+fqdevn calfip jsr pc, @#error dec r0 sob r0, 10$ write #CRLF call clrfqb movb #ATRFQ, Firqb+fqfil mov #^RKOM, Firqb+12 mov #^RRES, Firqb+14 mov #2, Firqb+22 .plas ; Attach Resedent Library call Error mov Firqb+Fqppn, LibIde mov Firqb+Fqnam1, LibSiz call clrfqb movb #CRAFQ, Firqb+Fqfil movb #1, Firqb+7 mov #Firqb+12,r1 ; There WAS a bug here! mov #128., (r1)+ mov LibIde, (r1)+ clr (r1)+ clr (r1)+ mov #202, (r1) ; Write access and Mapping .plas call Error mov firqb+fqppn, WinIde ; Window ID clr CurSek ; Current maped sektion. mov #2,r2 gos Get, <#1, r2, #FB1, #1, #Lock> ; Get INFO-block cmp #xDBVer, @#FB1+32 ; Right DATABASE Version beq 20$ iot 20$: mov #BasAdr, r5 ; LIBINF cmp #xLibUi, (r5) beq RESINI bpt iot RESINI: mov #1, r0 ; Init. Resedent Library call Exlock mov #xLibIn, (r5)+ mov FB1+22, (r5)+ ; # of created text's mov FB1+24, (r5)+ clr (r5)+ ; Edit # for groups clr (r5)+ ; Edit # for texts mov FB1+34, (r5) ; DSW mov #BasAdr+PreLst, r5 mov #64.*2, r0 10$: clr (r5)+ sob r0, 10$ mov FB1+30, r4 ; Number of groups. mov FB1+42, tmp mov #FSTGRP, NxtAdr ; Start addres of grouplist mov #GRPLST, LstAdr ; Previous linked group. mov LibSiz, r1 asr r1 asr r1 bic #177037, r1 mov r1, LibSiz ; Highest possible sektion. clr r1 ; Number of linked groups. INLNK: mov r4,r3 beq 50$ cmp #</1000>*10, r3 ; Maximum number of groups bhis 10$ ; to be read. mov #</1000>*10, r3 10$: mov r3,r5 dec r5 ash #-3,r5 ; Number of blocks left to get inc r5 mov #stkend,r0 gos Get, <#4, r2, r0, r5, #Unlock> add r5,r2 20$: inc r1 dec r4 tst (r0) beq 30$ call maklst cmp #-1, NxtAdr beq 50$ 30$: add #64.,r0 sob r3,20$ br INLNK 50$: mov #LibInf, r1 call GETADR mov r1,r5 add #100, r1 mov LstAdr, (r1)+ mov NxtAdr, (r1)+ mov LibSiz, (r1) mov #xLibRd, (r5) mov #1, 10(r5) ; Edit # for texts CONT: mov #1, r0 call Releas 505$: cmp #xLibRd, (r5) beq 530$ 510$: cmp #xLibIn, (r5) ; This is not possible! beq 520$ ; You can't be here! iot 520$: mov #2, xrb .sleep br 505$ 530$: mov #GRPLST, r1 550$: call GetAdr mov rNxt(r1), r5 cmp #2, rPri1(r1) bne 600$ mov rArg(r1), r2 add #rStr, r1 call Strout call pcrlf gos GetRec, <#1, r2, #FB1,> mov 10(r1), r0 mov r2, r1 bpt call AddMem bpt 600$: mov r5, r1 bne 550$ jmp $EXIT .End INIT