This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
cdc6500_survival_guide [2019/03/26 17:06] bruces [Text Editor] |
cdc6500_survival_guide [2020/04/04 20:12] bruces Typo "apologizes" |
||
---|---|---|---|
Line 7: | Line 7: | ||
This document is a short guide for those interested in exploring the 6500's interactive command environment. | This document is a short guide for those interested in exploring the 6500's interactive command environment. | ||
- | //(Note: The author worked briefly with a CDC NOS computer 30 years ago, but all information below is based on study of the referenced manuals and experimentation on LC's 6500. The author apologizes | + | //(Note: The primary |
===== Connecting ===== | ===== Connecting ===== | ||
Line 14: | Line 14: | ||
- After the '' | - After the '' | ||
- After the '' | - After the '' | ||
- | - After the '' | + | - After the '' |
< | < | ||
Line 42: | Line 42: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
- | | '' | + | | '' |
| '' | | '' | ||
| '' | | '' | ||
Line 107: | Line 107: | ||
===== Programming Commands ===== | ===== Programming Commands ===== | ||
+ | There are several ways to develop programs using NOS 1.3 on the CDC 6500. Two of them are: | ||
- | The BASIC, FTNTS, and FORTRAN subsystems provide environments for interactively creating, modifying, debugging, and running programs: | + | (1) Using the BATCH subsystem the typical edit, compile, run development process can be used with ALGOL, BASIC, COBOL, FORTRAN 4 Extended, Minnesota FORTRAN, and Pascal. Refer to details on the BATCH subsystem, below. |
+ | |||
+ | (2) Using the BASIC, FTNTS, and FORTRAN subsystems. These provide environments for interactively creating, modifying, debugging, and running programs: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | The tree subsystems provide a development environment similar to the original Dartmouth BASIC and versions of Microsoft BASIC for microcomputers and early PCs. | + | These three subsystems provide a development environment similar to the original Dartmouth BASIC and versions of Microsoft BASIC for microcomputers and early PCs. |
==== Program source files ==== | ==== Program source files ==== | ||
Line 140: | Line 143: | ||
| '' | | '' | ||
RNH\\ | RNH\\ | ||
- | RUN, | + | RUN, |
+ | |||
+ | ** FORTRAN subsystem example** | ||
+ | Here the FORTRAN subsystem is selected, an existing program is loaded, listed, and run. | ||
+ | < | ||
+ | FORTRAN | ||
+ | READY. | ||
+ | |||
+ | OLD,TEST2 | ||
+ | LIST | ||
+ | |||
+ | 99/09/10. 21.13.26. | ||
+ | PROGRAM | ||
+ | |||
+ | 00100 PROGRAM TEST2(OUTPUT) | ||
+ | 00110 INTEGER J | ||
+ | 00120 REAL Z,W,Q,Q2,Q3 | ||
+ | 00130 Z=0.0 | ||
+ | 00140 Q=0.0 | ||
+ | 00150 DO 210 J=1,25 | ||
+ | 00160 Z=SQRT(Q)+Z | ||
+ | 00170 W=SQRT(Q) | ||
+ | 00180 Q2=Q*Q | ||
+ | 00190 Q3=Q*Q*Q | ||
+ | 00200 PRINT 190, | ||
+ | 00210 190 FORMAT(1X, | ||
+ | 00220 Q=Q+1.0 | ||
+ | 00230 210 CONTINUE | ||
+ | 00240 W=Z/25.0 | ||
+ | 00250 PRINT 230,W | ||
+ | 00260 230 FORMAT(1X, | ||
+ | 00270 END | ||
+ | |||
+ | READY. | ||
+ | |||
+ | RUN | ||
+ | |||
+ | | ||
+ | PROGRAM | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | 24 | ||
+ | 25 | ||
+ | | ||
+ | | ||
+ | |||
+ | SRU 0.447 UNTS. | ||
+ | |||
+ | RUN COMPLETE. | ||
+ | |||
+ | READY. | ||
+ | </ | ||
+ | |||
+ | ** FTNTS subsystem example ** | ||
+ | Here the FTNTS subsystem is selected, an existing | ||
+ | < | ||
+ | FTNTS | ||
+ | READY. | ||
+ | |||
+ | OLD,TEST1 | ||
+ | READY. | ||
+ | |||
+ | LNH | ||
+ | |||
+ | 00100 PROGRAM TEST1(OUTPUT) | ||
+ | 00120 INTEGER J | ||
+ | 00130 REAL Z,Q | ||
+ | 00140 Z=0.0 | ||
+ | 00150 Q=0.0 | ||
+ | 00160 DO 210 J=1,25 | ||
+ | 00170 Z=SQRT(Q)+Z | ||
+ | 00180 PRINT 190, | ||
+ | 00190 190 FORMAT(1X, | ||
+ | 00200 Q=Q+1.0 | ||
+ | 00210 210 CONTINUE | ||
+ | 00220 PRINT 230,Z/25.0 | ||
+ | 00230 230 FORMAT(1X, | ||
+ | 00240 END | ||
+ | |||
+ | READY. | ||
+ | |||
+ | RUN | ||
+ | |||
+ | 99/09/10. 20.42.34. | ||
+ | PROGRAM | ||
+ | |||
+ | S | ||
+ | 1 LOAD MAP - TEST1 CYBER LOADER 1.4-485 | ||
+ | |||
+ | ... | ||
+ | .549 CP SECONDS | ||
+ | ... | ||
+ | |||
+ | S | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ... | ||
+ | |||
+ | </ | ||
===== Text Editor ===== | ===== Text Editor ===== | ||
Line 147: | Line 254: | ||
Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program ('' | Although the programming subsystems include basic functionality for entering and modifying program source code in the primary file, the NOS Text Editor program ('' | ||
- | | '' | + | | '' |
- | EDIT,''// | + | | '' |
- | | edit,fn=lfn | Begin an edit session of the specified " | + | | '' |
- | | reset | Reset current line pointer to first line| | + | | '' |
- | | set;n | Set the current-line pointer by moving it +/- " | + | | '' |
- | | f:/ | + | | '' |
- | | list;n | List " | + | | '' |
- | | extract | + | | '' |
- | | add | Add one or more lines after the current line-pointer position| | + | | '' |
- | | add< | + | | '' |
- | | delete;n | Delete one or more lines beginning with the current line| | + | |
- | | rs:/ | + | |
| '' | | '' | ||
+ | |||
+ | Here is an example session using the '' | ||
+ | |||
+ | < | ||
+ | / | ||
+ | BEGIN TEXT EDITING. | ||
+ | ? add | ||
+ | ENTER TEXT. | ||
+ | ? /This is a test file. | ||
+ | ? It has multiple lines of text. | ||
+ | ? This file demonstrates the edit command. | ||
+ | ? This is line 4./ | ||
+ | | ||
+ | ? list;* | ||
+ | This is a test file. | ||
+ | It has multiple lines of text. | ||
+ | This file demonstrates the edit command. | ||
+ | This is line 4. | ||
+ | -END OF FILE- | ||
+ | ? add | ||
+ | ENTER TEXT. | ||
+ | ? /Pointer at line 1, we insert a new line 2./ | ||
+ | | ||
+ | ? list;* | ||
+ | This is a test file. | ||
+ | Pointer at line 1, we insert a new line 2. | ||
+ | It has multiple lines of text. | ||
+ | This file demonstrates the edit command. | ||
+ | This is line 4. | ||
+ | -END OF FILE- | ||
+ | ? set;4 | ||
+ | ? list | ||
+ | This is line 4. | ||
+ | ? delete | ||
+ | -END OF FILE- | ||
+ | ? add | ||
+ | ENTER TEXT. | ||
+ | ? /This is line 5./ | ||
+ | | ||
+ | ? reset | ||
+ | ? list;* | ||
+ | This is a test file. | ||
+ | Pointer at line 1, we insert a new line 2. | ||
+ | It has multiple lines of text. | ||
+ | This file demonstrates the edit command. | ||
+ | This is line 5. | ||
+ | -END OF FILE- | ||
+ | ? end | ||
+ | END TEXT EDITING. | ||
+ | $EDIT, | ||
+ | /SAVE,test | ||
+ | </ | ||
+ | |||
+ | ===== Batch ===== | ||
+ | |||
+ | |||
+ | The BATCH subsystem provides the ability to create and submit batch jobs as well as run system commands interactively. It is probably the closest to the modern shell or command-line environment. | ||
+ | |||
+ | The typical process is as follows, | ||
+ | * Create a new, empty, file | ||
+ | * Add the program source to the file using the EDIT or XEDIT text editors | ||
+ | * Save the program source file to permanent storage | ||
+ | * Invoke the compiler for the program source language | ||
+ | * Correct any reported errors | ||
+ | * Recompile | ||
+ | * Replace the file in permanent storage with the revised file | ||
+ | * Invoke the compiled loadable-object file | ||
+ | |||
+ | ** COBOL ** | ||
+ | Here is an example of creating, compiling, and running an example COBOL program. | ||
+ | It waits for entry of two integer values, calulates the product and prints the result. | ||
+ | |||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | / | ||
+ | XEDIT 3.0.20 | ||
+ | ?? tabs 8,12,16,20 | ||
+ | ?? deftab ; | ||
+ | ?? | ||
+ | INPUT | ||
+ | ? ; | ||
+ | ? ;program-id products. | ||
+ | ? ; | ||
+ | ? ; | ||
+ | ? ; | ||
+ | ? ; | ||
+ | ? ;data division. | ||
+ | ? ; | ||
+ | ? ;01 result pic 9(9). | ||
+ | ? ;01 mult1 pic 9(5). | ||
+ | ? ;01 mult2 pic 9(4). | ||
+ | ? ;procedure division. | ||
+ | ? ;first-par. | ||
+ | ? ;;accept mult1. | ||
+ | ? ;;multiply mult1 by mult2 giving result. | ||
+ | ? ;;display " | ||
+ | ? ;;stop run. | ||
+ | ? | ||
+ | EDIT | ||
+ | ?? | ||
+ | ?? quit | ||
+ | SAMPLE1 IS A LOCAL FILE | ||
+ | |||
+ | / | ||
+ | |||
+ | / | ||
+ | |||
+ | /lgo | ||
+ | |||
+ | S | ||
+ | ? 65432 | ||
+ | ? 1065 | ||
+ | ANSWER: 069685080 | ||
+ | |||
+ | / | ||
+ | </ | ||
+ | |||
+ | ** Pascal ** | ||
+ | Here is an exmample of loading an existing Pascal source file, listing it, compile, run. | ||
+ | The program displays a table of squares and square roots of the integers 1 to 20. | ||
+ | |||
+ | < | ||
+ | / | ||
+ | |||
+ | /LIST | ||
+ | PROGRAM SMPL3(INPUT/, | ||
+ | VAR | ||
+ | | ||
+ | J : INTEGER; | ||
+ | BEGIN | ||
+ | | ||
+ | FOR J := 1 TO 20 DO | ||
+ | BEGIN | ||
+ | V1 := J; | ||
+ | V2:= SQR(V1); | ||
+ | V3:= SQRT(V1); | ||
+ | | ||
+ | | ||
+ | END. | ||
+ | |||
+ | / | ||
+ | ... | ||
+ | 0.263 CP SECS, 44276B CM USED. | ||
+ | |||
+ | /LGO | ||
+ | ... | ||
+ | S | ||
+ | N | ||
+ | 1.000000000000 | ||
+ | 2.000000000000 | ||
+ | 3.000000000000 | ||
+ | 4.000000000000 | ||
+ | 5.000000000000 | ||
+ | ... | ||
+ | 0.129 CP SECS, 5725B CM USED. | ||
+ | / | ||
+ | </ | ||
+ | |||
===== Messaging ===== | ===== Messaging ===== | ||
Line 208: | Line 473: | ||
- [[http:// | - [[http:// | ||
- [[http:// | - [[http:// | ||
+ | - [[http:// | ||
+ | - [[http:// | ||
===== Future Improvements ===== | ===== Future Improvements ===== | ||
Line 215: | Line 482: | ||
* Document compilation and execution of programs with FORTRAN subsystem. | * Document compilation and execution of programs with FORTRAN subsystem. | ||
- | * Text Editor | + | * XEDIT text editor |
- | * Batch subsystem guide. | + | * Batch subsystem guide continued, add FORTRAN and Pascal examples. |
* Execute subsystem guide. | * Execute subsystem guide. | ||