.title CNVDBS ; Converts KOM Ver 4.1's DATABASE format to KOM Ver 5.0's .inclu "b:global" .psect KoNeAd: .byte 20$-10$ 10$: .ascii "@ufh.dynas.se" 20$: .even NrATxt: .byte 20$-10$ 10$: .ascii "Antal aktiva texter totalt " 20$: .even badver: .byte 20$-10$ 10$: .ascii "Databasen har redan versionsnummer >= 5.0" 20$: .even badnod: .byte 20$-10$ 10$: .ascii "%Felaktig record-typ" 20$: .even CNVTXT: .byte 10$-CNVTXT-1 .ascii "CNV4T5 Ver 1.00 " 10$: .even Text CNVT, <"Databasen konverterad till Ver 5.1"> HigTxt: .blkw0 2 .inclu "b:komfil" ; KOM filedefinitions. INIT: .ttnch ; No Echo clr Me mov #LinLen-2, @#MaxLin mov #-1, @#Line mov #-1, PTerm ; Default term-typ (dumy crt) mov #PTerm, r1 call movttd ; Set up term-desc block bis #200, TTFlag ; Disable "Tryck p} RETURN" 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 OPNFL: 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$ call PCRLF DOIT: clr TMP ; Counter for # of active texts mov #2,r2 mov #FB1, r1 gos Get, <#1, r2, r1, #1, #Lock> ; Get INFO-block ; cmp 32(r1), #50. ; blo 20$ ; write #badver ; jmp $exit 20$: mov 22(r1), HigTxt mov 24(r1), HigTxt+2 mov #50., 32(r1) ; New version number. mov 30(r1), r5 ; # of groups add #62, r1 clr (r1)+ ; No Internet-person yet. mov #KoNeAd, r0 call movstr ; KOM's internet address. gos put <#1,,#FB1> mov #1, r4 ; First group clr FB1-2 clr FB2-2 clr FB3-2 clr FB4-2 100$: gos tryrec <#4, r4, #FB4, #unlock> mov (r1)+, r0 beq 200$ cmp #1, r0 ; Person beq 110$ cmp #2, r0 ; M|te bne 200$ 110$: mov (r1)+, r0 ; Record #. mov (r1)+, r3 ; Nr of texts. call strout tst r0 beq 115$ gos tryrec <#1, r0, #FB1, > cmp 6(r1), r4 ; Logical group number. beq 120$ 115$: Write #badnod br 200$ 120$: mov 32(r1), TMP+4 ; 1'st MOTTAGET push r1 clr TMP+2 130$: mov TMP+4, r0 beq 170$ ; safty check.. gos TryRec, <#1, r0, #FB2, > mov 2(r1), TMP+4 ; Next MOTTAGET. mov #30., TMP+6 add #10, r1 mov r1, r2 140$: mov (r2)+, r1 mov (r2)+, r0 tst r1 bne 142$ tst r0 beq 160$ 142$: cmp r0, HigTxt+2 bhi 160$ blo 144$ cmp r1, HigTxt bhi 160$ 144$: call rtob5 tst r0 beq 160$ cmp FB3-2, r0 ; Is record all ready in memory? beq 150$ gos get, <#5, r0, #FB3, #1,> 150$: tst FB3(r1) beq 160$ inc TMP inc TMP+2 160$: dec r3 beq 170$ dec TMP+6 bne 140$ br 130$ 170$: pop r1 add #152, r1 clr (r1)+ ; Max # of active texts mov TMP+2, (r1)+ ; # of active texts clr (r1)+ ; 1'st text clr (r1) ; No Internet-name yet! gos Put, <#1,, #FB1> Write #SPC3 mov tmp+2, r1 clr r0 call deco16 call pcrlf 200$: inc r4 dec r5 beq 220$ jmp 100$ 220$: call pcrlf Write #NrATxt mov TMP, r1 clr r0 call deco16 call pcrlf call pcrlf Write #CNVT clr Job jmp $exit .End INIT