File TEACH.E8

Directory of image this file is from
This file as a plain text file


   5 GO  TO 1150
  10 PRI "  THIS IS A PROGRAM TO TEACH INPUT/OUTPUT FUNCTIONS ON THE PDP8"
  20 INPUT "DO YOU WISH TO CONTINUE ??? (YES OR NO)";A$
  30 IF A$="YES" THEN 45
  40 GO TO 1150
  45 PRINT
  46 PRINT
  50 PRI "  THROUGHOUT THIS PROGRAM YOU WILL BE GIVEN THE OPPROTUNITY"
  55 PRI "TO STOP THE PRINTING TO READ,TO DO THIS PRESS ANY"
  60 PRI "KEY EXCEPT X, THIS KEY WILL ALLOW YOU TO EXIT COMPLETELY."
  65 PRINT
  66 PRINT
  70 PRI "  WE SHALL BEGIN BY CREATING A DATA FILE.  TO PREPARE"
  80 PRI "FOR THIS, MAKE SURE THAT THERE IS A MAGNETIC TAPE "
  90 PRI "ON EACH OF THE TAPE TRANSPORTS AND THAT BOTH ARE ACTIVATED."
  95 PRINT
 100 PRI "  WE ARE GOING TO STORE SOME DATA ON ONE OF THE TAPES."
 110 PRI "THIS DATA MAY BE A CHARACTER STRING OF LETTERS OR NUMBERS."
 120 PRI "WE SHALL CALL THIS FILE DATA.  LET'S USE YOUR NAME FOR"
 130 PRI "THE DATA.  TO DO THIS WE WILL ASSIGN X$ TO YOUR FIRST"
 140 PRI "NAME, Y$ TO YOUR MIDDLE NAME AND Z$ TO YOUR LAST NAME."
 150 PRI "WE USE THE $ TO MEAN THAT THE VARIABLE IS A LETTER."
 160 PRI "NOW TYPE YOUR NAME AS ASSIGNED ABOVE..."
 170 PRINT
 180 PRINT
 190 INPUT TAB(10) "X$=";X$
 200 INPUT TAB(10) "Y$=";Y$
 210 INPUT TAB(10) "Z$=";Z$
 215 PRINT
 220 INPUT "READY???";Q$
 230 IF Q$="X" THEN 1000
 240 PRI
 250 PRI "  WE HAVE A NAME FOR THE FILE (DATA) AND SOME DATA TO PUT"
 260 PRI "IN IT,  ALL WE NEED NOW IS SOME WHERE TO PUT IT."
 270 PRI "TO CREATE THE FILE ON THE TAPE, WE MUST WRITE IT'S NAME"
 280 PRI "ON THE DIRECTORY.  THIS IS LIKE A TABLE OF CONTENTS"
 290 PRI "OF A BOOK.  IT IS A LIST AT THE BEGINNING OF THE TAPE "
 300 PRI "THAT CONTAINS A LIST OF EVERY THING ON THE TAPE. "
 310 PRI "  WE WANT TO ADD THE NAME OF OUR FILE TO THAT LIST."
 320 PRI "TO DO SO WE USE AN INSTRUCTION THAT 'OPENS' A FILE."
 330 PRI "THE INSTRUCTIONS LOOKS LIKE THIS......"
 335 PRINT
 340 PRI TAB(15) "10 P$='DATA'"
 345 PRI TAB(15) "20 OPEN P$ FOR OUTPUT,12"
 350 PRINT
 360 PRI "LINE 10 ASSIGNS P$ THE NAME OF THE FILE AND LINE 20"
 370 PRI "OPENS OR CREATES THE FILE AND CAUSES THE COMPUTER TO "
 380 PRI "WRITE THE NAME OF THE FILE ON THE DIRECTORY.  NOTE THAT"
 390 PRI "THE WORD OUTPUT IN LINE 20 REFERS TO OUTPUT FROM THE "
 400 PRI "C.P.U. TO THE TAPE I.E. IT IS WITH REFERENCE TO THE CPU."
 405 PRINT
 410 INPUT "READY ???";Q
 420 IF Q="X" THEN 1000
 430 PRINT
 440 PRI "  THE 12 IS THE NUMBER OF BLOCKS ALLOWED FOR THE FILE."
 450 PRI "WHILE WE EXECUTE THESE TWO INSTRUCTIONS, WATCH THE TAPE"
 460 PRI "TRANSPORT NO. 1.  HERE WE GO....."
 470 P$="DATA"
 480 OPEN P$ FOR OUTPUT,3
 485 PRINT
 490 PRI "  YOU SHOULD HAVE SEEN THE TAPE REWIND THEN MOVE FORWARD"
 500 PRI "WHILE IT LOOKED THRU THE DIRECTORY FOR ENOUGH ROOM ON"
 510 PRI "THE TAPE FOR OUR FILE.  IF IT FOUND SPACE, IT WROTE"
 520 PRI "IN THE NAME OF OUR FILE ON THE DIRECTORY AND STOPPRD."
 530 PRINT
 540 PRINT
 550 INPUT "READY ???";Q$
 560 IF Q$="X" THEN 1000
 570 PRINT
 580 PRINT
 590 PRI "  WE NOW HAVE THE NAME OF THE FILE WRITTEN IN THE "
 600 PRI "DIRECTORY, SIMILAR TO WRITTING A CHAPTER NAME IN THE "
 610 PRI "TABLE OF CONTENTS OF A BOOK.  NOW WE MUST WRITE THE "
 620 PRI "INFORMATIONS THAT WE WANT INTO THIS 'CHAPTER'."
 630 PRI "  WE USE A PRINT STATEMENT MODIFIED BY THE '#' SIGN"
 640 PRI "WHICH TELLS THE COMPUTER THAT WE WANT TO WRITE ON THE "
 650 PRI "TAPE.  THE INSTRUCTION LOOKS LIKE THIS......"
 655 PRINT
 660 PRI TAB(15) "30 PRINT #,X$,Y$,Z$"
 670 PRINT
 680 PRI "THIS INSTRUCTION WILL WRITE WHAT YOU ENTERED FOR THESE"
 690 PRI "VARIABLES (YOUR NAME) ONTO THE TAPE IN THE SPACE"
 700 PRI "RESERVED FOR OUR FILE ON THE DIRECTORY."
 710 PRI "WATCH TAPE NO. 1 AS THIS INSTRUCTION IS EXECUTED...."
 720 PRINT #,X$,Y$,Z$
 730 CLOSE
 740 PRINT
 750 PRI "  THE TAPE SHOULD HAVE REWOUND TO READ THE DIRECTORY"
 760 PRI "TO FIND OUT WHERE ON THE TAPE THE SPACE FOR THIS FILE"
 770 PRI "HAS BEEN ASSIGNED.  IT THEN MOVED FORWARD TO THIS "
 780 PRI "SPOT ON THE TAPE AND WROTE IN YOUR NAME AND STOPPED."
 790 PRI "  AFTER THIS INSTRUCTION WE MUST CLOSE THE FILE FOR "
 800 PRI "OUTPUT SINCE THE COMPUTER CANNOT HAVE MORE THAN ONE "
 810 PRI "FILE OPEN AT A TIME."
 820 PRI "  NOW LET'S RETRIEVE THIS DATA.  WE MUST FIRST"
 830 PRI "OPEN THE FILE FOR INPUT.  REMEMBER THAT THE INPUT "
 840 PRI "REFERS TO INPUT FROM THE TAPE TO THE CPU. THE INSTRUCTION"
 850 PRI "LOOKS LIKE THIS....."
 860 PRINT
 870 PRI TAB(15) "40 OPEN P$ FOR INPUT"
 880 PRINT
 890 PRI "  WE NEED TO ADD TO THIS SOME INSTRUCTIONS THAT WILL"
 900 PRI "ALSO READ THE DATA FROM THE FILE AND PRINT IT OUT FOR"
 910 PRI "USE.  THIS IS DONE WITH THESE INSTRUCTIONS..."
 915 PRINT
 920 PRI TAB(15) "50 INPUT #,X$,Y$,Z$"
 930 PRI TAB(15) "60 PRINT X,Y,Z"
 940 PRINT
 950 PRI "  WATCH THE TAPE AS THESE ARE EXECUTED...."
 955 PRINT
 960 OPEN P$ FOR INPUT
 970 INPUT #,X$,Y$,Z$
 980 PRINT X$,Y$,Z$
 990 PRINT
1000 PRI "  THE DATA PRINTED CAME FROM THE STORED DATA ON THE TAPE"
1010 PRI "IN THE FILE THAT YOU CREATED.  IT WILL ALWAYS BE THERE."
1020 PRI 
1030 PRI "  TO SUMMARIZE, HERE ARE THE INSTRUCTIONS THAT ARE NEEDED"
1040 PRI "TO CREATE,WRITE AND READ A FILE ON MAGNETIC TAPE...."
1050 PRI TAB(15) "10 P$='DATA'"
1060 PRI TAB(15) "20 OPEN P$ FOR OUTPUT,12"
1070 PRI TAB(15) "30 PRINT #,X$,Y$,Z$"
1080 PRI TAB(15) "40 CLOSE"
1090 PRI TAB(15) "50 OPEN P$ FOR INPUT"
1100 PRI TAB(15) "60 INPUT #,X$,Y$,Z$"
1110 PRI TAB(15) "70 PRINT X$,Y$,Z$"
1120 PRI "  LET'S REASSIGN THE VARIABLES AND RUN THE WHOLE THING"
1130 PRI "AT ONE TIME, O.K.?"
1140 PRI
1150 INPUT "X$=";X$
1160 INPUT "Y$=";Y$
1170 INPUT "Z$=";Z$
1180 PRI
1190 PRI "  NOW LET 'S RUN EVERYTHING ALL AT ONCE, WATCH THE TAPES!"
1195 P$="DATA"
1200 OPEN P$ FOR OUTPUT
1210 PRINT #,X$,Y$,Z$
1220 CLOSE
1230 OPEN P$ FOR INPUT
1240 INPUT #,X$,Y$,Z$
1250 PRINT X$,Y$,Z$
1260 PRI 
1270 PRI "  DID THE TAPE MOVE AS BEFORE?  DID YOU KNOW WHAT IT"
1280 PRI "WAS DOING?  WOULD YOU LIKE TO REPEAT ANY OF THIS AGAIN?"
1290 INPUT "(YES OR NO)";W$"
1300 IF W="YES" THEN 10
1310 PRI " YOU NOW KNOW ALL THERE IS TO KNOW ABOUT THE INPUT"
1320 PRI "OUTPUT OF THE PDP8 COMPUTER.  FOR MORE INFORMATION"
1330 PRI "CALL UP FROM THE $CATALOG THE PROGRAMS LISTED HERE..."
1340 PRI
1350 PRI TAB(15) "FILPUT"
1360 PRI TAB(15) "XXXXXXX"
1370 PRI 
1380 PRI "  YOU MIGHT ALSO TRY LISTING THE PROGRAMS AND DOING "
1390 PRI "A LITTLE EXPERIMENTING BY YOURSELF.  TRY IT YOU'LL"
1400 PRI "LIKE IT !!!!!"
1410 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search