.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 "Recount Ver 1.00 " 10$: .even HigTxt: .blkw0 2 xDBVer = 50. ; Version # for database. KOMPPN: .BYTE 3. .BYTE 10. KOMRES: .RAD50 /NKR/ .RAD50 /ES / KOMLIB: .RAD50 /NKO/ .RAD50 /VL / KOMDEV: .WORD "DB KOMDVN: .BYTE 0 .BYTE 377 Files: .RAD50 /1 / ; 2'nd rad50 word in file name .RAD50 /2 / File3: .RAD50 /3 / .RAD50 /4 / .RAD50 /5 / file5: EOFS: 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 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. beq 20$ write #badver jmp $exit 20$: mov 22(r1), HigTxt mov 24(r1), HigTxt+2 mov 30(r1), r5 ; # of groups mov #10, Line mov #DspR1, r4 100$: mov (r4)+, r2 beq 200$ Write #Dsp1T mov r2, r1 clr r0 call deco16 call pcrlf gos GetRec, <#1, r2, #FB1,> mov #4711., (r1) gos Put, <#1,,#FB1> gos Dispos, <#1, r2, #FB1> br 100$ 200$: mov #DspR2, r4 210$: mov (r4)+, r2 beq 300$ Write #Dsp2T mov r2, r1 clr r0 call deco16 call pcrlf gos GetRec, <#2, r2, #FB1,> mov #4711., (r1) gos Put, <#2,,#FB1> gos Dispos, <#2, r2, #FB1> br 210$ 300$: call pcr2lf jmp $exit sect VAR Text Dsp1T, <"File 1: Disposing record - "> Text Dsp2T, <"File 2: Disposing record - "> DspR1: .word 242., 845., 1351., 1356., 1771., 1772. .word 1796., 1846., 1885., 1916. .word 0 DspR2: .word 0, 0, 0, 0, 0 .End INIT