ノスタルジアpc-9801 その10


概要

整理していたら、フロッピーディスクが出てきた。
せっかくなので、エミュで動かしてみた。

環境

  • windows vista
  • t98-next
  • disk explorer

n88basicで、AM変調、復調。

サンプルコード

10 CLS 3
20 DEFSNG A-Z
30 PI = 3.14159265#
40 DIM SRC(300)
50 DIM AM(300)
60 DIM I(300)
70 DIM Q(300)
80 DIM I2(300)
90 DIM Q2(300)
100 DIM O(300)
110 FOR T = 0 TO 299
120  SRC(T) = SIN(T / 8000 * 2 * PI * 220) * 2 - 1
130 NEXT
140 FOR T = 0 TO 299
150  AM(T) = (.6 * SIN(T / 8000 * 2 * PI * 220) + 1!) * SIN(T / 8000 * 2 * PI * 3000) * 2 - 1
160 NEXT
170 FOR T = 0 TO 299
180  I(T) = AM(T) * COS(T / 8000 * 2 * PI * 2800)
190  Q(T) = AM(T) * SIN(T / 8000 * 2 * PI * 2800)
200 NEXT
210 Q = 1!
220 OMEGA = 2! * PI * 300 / 8000
230 ALPHA = SIN(OMEGA) / (2! * Q)
240 A0 = 1! + ALPHA
250 A1 = -2! * COS(OMEGA)
260 A2 = 1! - ALPHA
270 B0 = (1! - COS(OMEGA)) / 2!
280 B1 = 1! - COS(OMEGA)
290 B2 = (1! - COS(OMEGA)) / 2!
300 IN1 = 0
310 IN2 = 0
320 OUT1 = 0
330 OUT2 = 0
340 FOR T = 0 TO 299
350  I2(T) = B0 / A0 * I(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
360  IN2 = IN1
370  IN1 = I(T)
380  OUT2 = OUT1
390  OUT1 = I2(T)
400 NEXT
410 IN1 = 0
420 IN2 = 0
430 OUT1 = 0
440 OUT2 = 0
450 FOR T = 0 TO 299
460  Q2(T) = B0 / A0 * Q(T) + B1 / A0 * IN1 + B2 / A0 * IN2 - A1 / A0 * OUT1 - A2 / A0 * OUT2
470  IN2 = IN1
480  IN1 = Q(T)
490  OUT2 = OUT1
500  OUT1 = Q2(T)
510 NEXT
520 FOR T = 0 TO 299
530  O(T) = SQR(I2(T) * I2(T) + Q2(T) * Q2(T)) * 4 - 6
540 NEXT
550 FOR T = 0 TO 299
560  X = T
570  Y = 25 + SRC(T) * 2
580  PSET (T, Y)
590  Y = 50 + AM(T) * 2
600  PSET (T, Y)
610  Y = 75 + O(T) * 2
620  PSET (T, Y)
630 NEXT

以上。