.title RECRE ; ]terskapar personerna i en gammal databas b:komx?.dat .inclu "b:global" .psect UTP: .byte 10$-UTP-1 .ascii "Utpl}nar gammla personer: " 10$: .even CNVTXT: .byte 10$-CNVTXT-1 .ascii "RECREat Ver 1.00 " 10$: .even ; KOM filedefinitions. xDBVer = 32. ; Version # for database. KOMPPN: .BYTE 60. .BYTE 254. KOMDEV: .WORD "DP KOMDVN: .BYTE 1 .BYTE 377 Files: .RAD50 /1 / ; 2'nd rad50 word in file name .RAD50 /2 / File3: .RAD50 /3 / .RAD50 /4 / .RAD50 /5 / .RAD50 /1X / .RAD50 /4X / EOFS: fil1 = 6 fil4 = 7 INIT: .ttnch ; No Echo mov #^RKOM, @#firqb+fqnam1 mov #^R..., @#firqb+fqnam1+2 .name ; Set work name clr @#Me mov #LinLen-2, @#MaxLin mov #-1, @#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 #CNVTXT ; Write a friendly phrase with version. errprt #0 write #CRLF mov #xSM+xACR+xELIN+xBL, @#MyFlags mov #UnProm, @#Stat clr @#KSW movb #UU.SYS,@#Firqb+fqfun clr @#firqb+4 .UUO mov @#firqb+26,@#PPN 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 mov #2,r2 gos Get, <#1, r2, #FB4, #1, #Lock> ; Get INFO-block cmp #xDBVer, FB4+32 ; Version number. beq 20$ iot 20$: mov FB4+30, r4 beq 200$ clr FB1-2 clr r3 Write #UTP 50$: inc r3 Gos TryRec, <#4, r3, #FB1,> mov (r1)+, r0 beq 100$ cmp #4, r0 beq 100$ mov (r1)+, Tmp+2 tst (r1)+ call Strout call pcrlf Gos GetRec, <#1, Tmp+2, #FB2,> mov r1, r5 mov 26(r5), r2 beq 70$ 60$: Gos GetRec, <#1, r2, #FB3,> mov 2(r1), Tmp Gos Dispos, <#1, r2, #FB3> mov Tmp, r2 bne 60$ 70$: mov 32(r5), r2 beq 90$ 80$: Gos GetRec, <#1, r2, #FB3,> mov 2(r1), Tmp Gos Dispos, <#1, r2, #FB3> mov Tmp, r2 bne 80$ 90$: Gos Dispos, <#1, Tmp+2, #FB3> 100$: dec r4 bne 50$ call pcrlf 200$: mov #2, r2 gos Get, <#fil1, r2, #FB2, #1,> cmp #xDBVer, FB2+32 ; Version number. beq 210$ iot 210$: mov FB2+10, FB4+10 ; M|te f|r personer mov FB2+12, FB4+12 ; M|te f|r m|ten mov FB2+46, FB4+46 ; M|te f|r KOM-Adm. mov FB2+30, r4 ; Antal skapade personer. mov r4, FB4+30 ; Antal skapade personer. gos Put, <#1, r2, #FB4> clr r1 gos Get, <#Fil4,#1,#FB1,#1,> gos Put, <#4,#1,#FB1> gos Get, <#4, #1, #FB1, #1,> mov #4, r0 call Exlock ; To fool RSTS/E. INLNK: mov r4,r3 beq 50$ cmp #10, r3 ; Maximum number of groups bhis 10$ ; to be read. mov #10, r3 10$: mov #FB2,r0 gos Get, <#Fil4, r2, r0, #1,> 20$: inc r1 dec r4 tst (r0) ; Utpl}nad beq 45$ cmp #4, (r0) ; Terminal? beq 45$ push tst (r0)+ mov (r0)+, r3 clr (r0)+ mov r0, r1 call Strout call pcrlf gos GetRec, <#Fil1, r3, #FB1,> cmp 6(r1), 2(sp) beq 13$ call pcrlf mov 2(sp), r4 mov 6(r1), r5 bpt call pcrlf 13$: mov r1, r3 add #20, r1 clr (r1)+ ; Presentation clr (r1)+ clr (r1)+ ; Antal medlemmar clr (r1)+ ; Medlemmskap clr (r1)+ clr (r1)+ ; Mottagna clr (r1)+ mov r3, r1 add #74, r1 clr (r1)+ ; Antal markerade clr (r1)+ ; Markerade clr (r1)+ clr (r1)+ ; Antal l{sta brev clr (r1)+ ; Mottaget block.. clr (r1)+ ; Lapp p} d|rren mov #1, r0 mov #FB3, r1 gos spawn mov @r1, r2 mov #100, r0 30$: mov (r3)+, (r1)+ sob r0, 30$ gos Put, <#1,, #FB3> pop r0 mov r2, 2(r0) pop 45$: add #64.,r0 dec r3 bne 20$ gos put, <#4, r2, #FB2> inc r2 jmp INLNK 50$: tst r1 beq 999$ call ClrFqb mov #FIRQB+FQNAM1, r1 mov #^RREC, (r1)+ mov #^RRE2, (r1)+ mov #^RSAV, (r1)+ mov KOMDEV, Firqb+fqdev mov KOMDVN, Firqb+Fqdevn .chain 999$: jmp $EXIT ; Exit (And set proper CORE) .End INIT