Attribute VB_Name = "Module1" 10 CLS: COMFIL$ = "com1:9600,n,8": Beep 'Finds com1 15 LOCATE 20, 20: Print "WAITING FOR FLIGHTSIM DATA" 16 On Error GoTo 1500 20 BASE0 = &H378: SP = 0: SR = 0: SS = 0: SF = 0: SG = 0: Close #1 'Opens Parallel port 198 'COM PORT 199 OUT BASE0, 0 200 Open COMFIL$ For Random As #1 240 A$ = "" 245 On Error GoTo 240 250 Line Input #1, A$ 280 'INPUT VAL 285 AGL = Val(Mid$(A$, 3, 4)) 'Above ground level 290 P = Val(Mid$(A$, 7, 5)) 'Pitch 291 R = Val(Mid$(A$, 11, 4)) 'Roll 295 S = Val(Mid$(A$, 15, 3)) 'Speed 296 RUD = Val(Mid$(A$, 21, 3)) 'Rudder 300 F = Val(Mid$(A$, 27, 2)) 'Flaps 310 BL = Val(Mid$(A$, 37, 1)) 'Brake left 320 BR = Val(Mid$(A$, 42, 1)) 'Brake right 330 G = Val(Mid$(A$, 32, 2)) 'Gear 340 T1 = Val(Mid$(A$, 48, 3)) 'Throttle 1 345 T2 = Val(Mid$(A$, 52, 3)) 'Throttle 2 391 Print 392 Print "AGL="; AGL, "P= "; P, "R= "; R, 393 Print "BL= "; BL, "BR= "; BR, "T1= "; T1, "T2= "; T2, 394 Print "S="; S, "RUD="; RUD, "F="; F, "G="; G, 395 'BRAKES 396 If S = 0 Then Z = 55: GoSub 1100: Z = 33: GoSub 1100: Z = 44: GoSub 1100 397 If S = 0 Then GoTo 450 398 If S < 4 Then GoTo 450 'BRAKES ON IF AIRSPEED MORE THAN 4 OR ON GROUND 399 If AGL > 8 Then GoTo 450 400 If BL = 0 And BR = 0 Then Z = 55: GoSub 1100: Z = 33: GoSub 1100: Z = 44: GoSub 1100 401 If BL = 1 And BR = 1 Then Z = 5: GoSub 1100: Z = 33: GoSub 1100: Z = 44: GoSub 1100 405 If BL = 2 And BR = 2 Then Z = 5: GoSub 1100: Z = 33: GoSub 1100: Z = 44: GoSub 1100 406 If BL = 0 And BR > 0 Then Z = 5: GoSub 1100: Z = 3: GoSub 1100: Z = 44: GoSub 1100 407 If BL > 0 And BR = 0 Then Z = 5: GoSub 1100: Z = 4: GoSub 1100: Z = 33: GoSub 1100 408 'REVERSE THRUST 450 If S < 30 Then GoTo 470 451 If AGL > 7 Then GoTo 470 455 If T1 = -2 Then Z = 5: GoSub 1100 456 If T2 = -2 Then Z = 5: GoSub 1100 469 'ACCELERATION 470 If S < 7 Then GoTo 502 471 If S > 70 Then GoTo 502 475 If T1 < 8 Then GoTo 502 476 If T2 < 8 Then GoTo 502 477 'TURNS ON ACCEL RELAY (66) 501 If S > SS Then Z = 6: GoSub 1100 502 If S = SS Then Z = 66: GoSub 1100 503 If S < SS Then Z = 66: GoSub 1100 506 'FLAPS AND GEAR CHECK FOWARD 507 If AGL < 8 Then GoTo 538 512 If SF = F Then Z = 55: GoSub 1100: Z = 66: GoSub 1100 513 If SF < F Then Z = 5: GoSub 1100 514 'If SF > F Then z = 6: GoSub 1100 515 'If SG = G Then z = 55: GoSub 1100: z = 66: GoSub 1100 516 'If SG < G Then z = 5: GoSub 1100 517 'If SG > G Then z = 6: GoSub 1100 538 'RUDDER SIDE FORCE ON GROUND 539 If S < 10 Then GoTo 600 540 If AGL > 20 Then GoTo 600 541 If SRUD = RUD Then Z = 33: GoSub 1100: Z = 44: GoSub 1100 542 If SRUD > RUD Then Z = 3: GoSub 1100: Z = 44: GoSub 1100 543 If SRUD < RUD Then Z = 4: GoSub 1100: Z = 33: GoSub 1100 599 'PITCH 600 'If S < 40 Then GoTo 850 ' TURNS OFF PITCH CONTROL BELOW 40 700 If (P - 1) = SP Or (P + 1) = SP Then SP = P 805 If SP = P Then Z = 11: GoSub 1100: Z = 22: GoSub 1100 810 'If P > SP + 2 Then z = 22: GoSub 1100: z = 1: GoSub 1100 811 'If P < SP - 2 Then z = 11: GoSub 1100: z = 2: GoSub 1100 812 'If P > SP+1 Then z = 22: GoSub 1100: z = 1: GoSub 1100 813 'If P < SP-1 Then z = 11: GoSub 1100: z = 2: GoSub 1100 814 If P > SP Then Z = 22: GoSub 1100: Z = 1: GoSub 1100 815 If P < SP Then Z = 11: GoSub 1100: Z = 2: GoSub 1100 823 'HOLD CLIMB OR DESEND ATTITUDE 824 If (P < 10) Then Z = 88: GoSub 1100 825 If (P > 10) Then Z = 8: GoSub 1100 826 If (P < -15) Then Z = 8: GoSub 1100 827 If (P > -15) Then Z = 88: GoSub 1100 869 'ROLL 850 'If (R - 2) = SR Or (R + 2) = SR Then SR = R: GoSub 1100 860 'If R > SR + 2 Then z = 44: GoSub 1100: z = 3: GoSub 1100: 870 'If R < SR - 2 Then z = 33: GoSub 1100: z = 4: GoSub 1100: 871 If AGL > 20 Then GoTo 874 872 If R > SR Then Z = 44: GoSub 1100: Z = 3: GoSub 1100: 873 If R < SR Then Z = 33: GoSub 1100: Z = 4: GoSub 1100: 874 If AGL < 19 Then GoTo 880 875 If R > SR + 1 Then Z = 44: GoSub 1100: Z = 3: GoSub 1100: 876 If R < SR - 1 Then Z = 33: GoSub 1100: Z = 4: GoSub 1100: 879 ' PARALLEL PORT 880 If SR = R Then Z = 33: GoSub 1100: Z = 44: GoSub 1100 990 SP = P: SR = R: SS = S: SF = F: SG = G: GoTo 240 1100 Print " "; Z; 1122 N = Z 1123 If N > 8 Then N = N / 11 1190 N = N - 1 1200 If Z < 9 Then DOUT = DOUT Or 2 ^ N 1210 If Z > 8 Then DOUT = DOUT And Not (2 ^ N) 1340 OUT BASE0, DOUT 1400 Return 1500 Resume 10