5 'TEST28.BAS 6 'same as testio28.bas, except line numbers added to compile with Bascom 10 CLS 20 ' 30 INPUT "Enter Pathname of output file (NO Extension) ", O$ 40 OPEN O$ + ".TXT" FOR OUTPUT AS #1 'Open output file 45 LOCATE 1, 1 'Set line 1, column 1 50 PRINT "Press ESC key to step through sequence 0 to 255, Q to exit" 60 PRINT 70 PRINT " 9 8 7 6 5 4 3 2 12 13 14 15 16 17 18 19 PIN NUMBERS" 80 PRINT 82 PRINT #1, "TEST28" 'Program ID 85 PRINT #1, "" 90 PRINT #1, " 9 8 7 6 5 4 3 2 12 13 14 15 16 17 18 19 PIN NUMBERS" 100 PRINT #1, "" 'Blank line 110 ' 120 'INITIALIZATION 130 ' 140 INVAL = 0 'Starting value 150 OUT &H360, 0 'Set hex 360 control reg 160 ' 200 'CYCLE WITH CLOCK PULSE 210 ' 220 OUT &H360 + 1, INVAL 'Hex 361. write input data reg 230 X = INP(&H360) 'Hex 300. clock PAL 240 X = INP(&H360 + 3) 'Hex 363. latch output data 250 OUTVAL = INP(&H360 + 1) 'Hex 361. read output data reg 260 ' 300 A$ = INKEY$: IF (A$ = "Q" OR A$ = "q") THEN 950 'Exit if Q 302 IF A$ <> CHR$(27) THEN 300 'Wait 305 ' 310 'DISPLAY LINE 315 X = INVAL 320 PRINT USING "####"; X; 'Input value in decimal format 325 PRINT TAB(8); 'Tab to column 8 330 IF X < 128 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 128 'Pin 9 331 IF X < 64 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 64 'Pin 8 332 IF X < 32 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 32 'Pin 7 333 IF X < 16 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 16 'Pin 6 334 IF X < 8 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 8 'Pin 5 335 IF X < 4 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 4 'Pin 4 336 IF X < 2 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 2 'Pin 3 337 IF X < 1 THEN PRINT "0 "; ELSE PRINT "1 "; 'Pin 2 338 PRINT " "; 'Space 8 columns 340 X = OUTVAL 350 IF X < 128 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 128 'Pin 12 351 IF X < 64 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 64 'Pin 13 352 IF X < 32 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 32 'Pin 14 353 IF X < 16 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 16 'Pin 15 354 IF X < 8 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 8 'Pin 16 355 IF X < 4 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 4 'Pin 17 356 IF X < 2 THEN PRINT "0 "; ELSE PRINT "1 "; : X = X - 2 'Pin 18 357 IF X < 1 THEN PRINT "0 "; ELSE PRINT "1 "; 'Pin 19 358 PRINT " " 'Space 4 columns 360 ' 370 'STORE LINE IN FILE 380 ' 390 X = INVAL 400 PRINT #1, USING "####"; X; 'Decimal input value 410 PRINT #1, TAB(8); 'Tab to column 8 430 IF X < 128 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 128 431 IF X < 64 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 64 432 IF X < 32 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 32 433 IF X < 16 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 16 434 IF X < 8 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 8 435 IF X < 4 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 4 436 IF X < 2 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 2 437 IF X < 1 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; 438 PRINT #1, " "; 'Space 8 columns 440 445 X = OUTVAL 450 IF X < 128 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 128 451 IF X < 64 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 64 452 IF X < 32 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 32 453 IF X < 16 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 16 454 IF X < 8 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 8 455 IF X < 4 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 4 456 IF X < 2 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; : X = X - 2 457 IF X < 1 THEN PRINT #1, "0 "; ELSE PRINT #1, "1 "; 458 PRINT #1, " " 'Space 4 characters 460 ' 470 IF INVAL >= 255 THEN 950 ELSE 900 'Check if at end 900 INVAL = INVAL + 1 'Increment input by 1 910 GOTO 200 'Back for more 920 ' 950 CLOSE #1 'Close read file 960 END 'End program