' Nokia BD58 radion ohjausprommi ' Arto Harjula, OH2BGN/OH6GJ, 13.2.1995 ' Kytkent„ OH3WE nolla% = 0: SRE% = 4: STE% = 8: SCE% = 16 offset = 0: alku = 0 pituus = 256 'yhden kanavan datan pituus prommi$ = "prom.bin" DIM tavu%(30): ff% = 255 OPEN prommi$ FOR BINARY AS #1 OPEN "bd58.chn" FOR INPUT AS #2 LINE INPUT #2, rivi$ 'otsikkorivi PRINT rivi$ WHILE NOT EOF(2) LINE INPUT #2, rivi$ Frx = VAL(MID$(rivi$, 1, 8)) Ftx = VAL(MID$(rivi$, 11, 8)) Dev = VAL(MID$(rivi$, 21, 4)) GOSUB kanava alku = offset 'offset = (offset \ 1024 + 1) * 1024 WEND CLOSE PRINT offset 'montako tavua ladattiin END kanava: 'muunnetaan ja asetetaan yhden kanavan tiedot RN = INT((Frx + 86512.5) / 1600) RA% = (Frx + 86512.5) / 12.5 - RN * 128 TN = INT(Ftx / 1600) TA% = Ftx / 12.5 - TN * 128 R% = 1024 PUT #1, 1, nolla% offset = offset + 1 A% = RA%: N = RN: ena% = SRE%: GOSUB jako A% = TA%: N = TN: ena% = STE%: GOSUB jako ctl% = Dev * 16 + 8: GOSUB kontr GOSUB tayta RETURN jako: 'jakolukujen lataus CR% = R% * 2 + 1 Fvco = (A% + N * 128) * 12.5 PRINT Fvco, L = 15: x = CR%: GOSUB tul 'ref.jakaja GOSUB lataa 'load L = 10: x = N: GOSUB tul 'N jakaja L = 8: x = A% * 2: GOSUB tul 'A jakaja GOSUB lataa 'load RETURN kontr: ' controllitavun lataus L = 8: x = ctl%: GOSUB tul ena% = SCE%: GOSUB lataa PRINT ctl% RETURN tul: 'L tavun muotoilu ja tulostus FOR i = 1 TO L tavu%(L + 1 - i) = 2 * (x MOD 2) x = INT(x / 2) NEXT i FOR i = 1 TO L PRINT tavu%(i); PUT #1, 2 * i + offset - 1, tavu%(i) tavu2% = tavu%(i) + 1 PUT #1, 2 * i + offset, tavu2% 'PRINT tavu2%; NEXT i offset = offset + 2 * L RETURN lataa: 'v„li ja load-pulssi PUT #1, offset + 1, nolla% PUT #1, offset + 2, ena% PUT #1, offset + 3, nolla% offset = offset + 3 PRINT nolla%; ena%; nolla% RETURN tayta: ' t„ytet„„n FF:ll„ seuraavan kanavan alkuun FOR i = offset TO alku + pituus PUT #1, i, ff% NEXT i offset = alku + pituus RETURN