| P856 Simulation (Simulation of another Philips 16 bit P800 minicomputer) | 
This page is devoted to the simulation of a member of the second generation of the P800 computers: the P856. Differences between the hardware of this computer and the computers of the first generation are summarized. These differences are incorporated in the P856 simulator. In contrary to the P855/P860 simulation, for the P856 the original DOS software is available, which is able to run on the P856 simulator. The biggest part of this page is used to show some running DOS examples.
Examples of running original P800 software with the P856 simulator
On the hard/software interface, the main differences are:
- interrupt locations at another place in memory. 
	    - no common line: all interrupts handled by priority.
	    - RTN A15 restores PLR, CR, ENB, SU from the stack (on P855,860 and 852, ENB is always set to 1).
      
	    - no instructions to set/reset the mask for common line interrupts.
  
		- Stack overflow interrupt generated when A15 stackpointer < 100(hex); on P855,860 when A15 stackpointer = 100(hex).
  
		- On the P855/60 an invalid operation generates a LKM interrupt when the interrupt is enabled;
           on the P852/56/57 a trap to location /7E is generated, also when the interrupt is not enabled.
  
		   A trap generates and operates like an interrupt; however the program level (PLR) is NOT changed:
           - invalid instruction not attempted to be executed
           - instruction address and processor state saved in stack
           - interrupts are inhibited (if not yet inhibited)
           - an indirect branche is made to location /7E: to the trap routine
           - the program level (PLR) is NOT changed.
           (A trap to /7E is also generated when a privileged instruction is
           executed in User Mode, or when the A15 stack is used in User Mode.
           This behavior is however not(yet) implemented) 
      
- the channels are controlled by WER/RER instructions and external registers
 
         - 2-Complement: NGR 
 
         - Clear Memory: CMR, CM, CM* 
 
         - Execute: EXR, EXR*, EXK, EX, EX* 
 
         - Write External Register: WER 
 
         - Read  External Register: RER 
      
 
         - X1210 replaced by the X1215 (X1215: 2 spindles per unit, 1 removable cartridge and a fixed disk) 
 
         - X1210 had 203 cylinders, the X1215 had 204 cylinders 
 
         - CIO SEEK operation references absolute cylinders iso a delta to move forward or backward 
 
         - 2 disks/4 heads per disk unit with a single actuator position per unit for the 4 heads 
 
         - the control unit supports 2 units, so 4 drives 
 
         - status word bits are different 
      
Note: A P857 with memory less than 32kw and without a floating point processor operates exactly as a P856
The Simulator (version 0.043 and version 0.045)The P856 simulator is, like the P855/P860 simulator, built as a Perl program and tested to run under Linux and Windows. Development and most testing is done under Linux however. Added to the default Perl installation are three CPAN modules:
Usage: p856-xx.pl [<do-script-name>]
After starting the simulator, a prompt is displayed after which a simulator control command is requested.The P856 simulator and its related software can be downloaded from the P856 directory.
With version 0.043 it is possible (under Linux) to use an xterm to display the lineprinter output (set switch LINUX to 1 in the source). Because this is only possible under Linux, another approach is taken in version 0.045. Here the Perl Tk module is used to make the program working in 3 windows: ControlPanel, Terminal (TTY) and Lineprinter (LPT). So in addition to the other three modules (Term::ReadKey, Time::HiRes, IO::Handle) the Tk module must be installed in the Perl installation in order to run the p856.044 emulator.
The P856 directory on the website contains 3 X1215 disk image files:
The dos5 image contains a DOS version 5, consisting of a bootable monitor DOM, a Control Command Interpreter (CCI) and some software modules like an Assembler (ASM), a Linkage Editor (LKE), a Basic interpreter (BASIC), High Speed Fortran compiler (HSF) and a number of utilities. Furthermore there is an object library containing the Fortran library with modules to be linked to a compiled Fortran source program to make it an executable Fortran program. With commands given to CCI the system is controlled e.g. to assemble or link a program, to copy a file to disk, to open/close a user session, etc. CCI is able to execute an extensive set of commands, which are described in the DOM manual. A copy of that manual will be published on this website when it is scanned. For now the remaining part of this page will show some short examples of the usage of DOS as being executed on the P856 simulator (on Linux).
DOM, the Disk Operating Monitor
DOM is the monitor installed on the dos5 disk file image, which provides the basis of a single user, disk oriented system for the development and execution of P800 programs. Normal practice was to generate the monitor to suite the configuration on which the monitor had to run (SYSGEN). For the simulator however the available monitor is pregenerated (without a SYSGEN being available), so we have to adapt the simulated computer configuration to the monitor which is requested to be executed.
The monitor on this disk (dos5.img) is configured for the following features/devices:
The devices with address /01,/21, /04 and /05 (the 2nd. moving head disk unit, magtape and castape) are (currently) not supported by the P856 simulator. On the other hand, the simulator supports a cardreader (address /06), which is not available in the pregenerated monitor. Running the pregenerated monitor on the simulator is not a problem however as long as the devices either not available in the simulator (2nd MD, MT, TK) or not available in the monitor (CR) are not used.
Booting the P856 system with the DOS version 5 (explanation being given between [ ])
pclx4:/usr/local/src/p800perl/p856 # perl p856-03.pl [start the P856 simulator] 
P856 Emulator, version 0.3
> rtc on [switch on the real time clock]
CU 10000 INTERVAL 3000 [clock status reply] 
  RTC is active
> attach md1 dos5.img [attach the dos disk image to spindle md1 (unit 0, disk 1, address /22)]
  File dos5.img attached to device MD1
  X1215 unit-0 is NOT READY [unit 0 is ready in case both md0 and md1 are attached] 
  To make unit-0 ready, both MD0 and MD1 must be attached to a diskimage file
> attach md0 scratch.img [attach the working disk to spindle md0 (unit 0, disk 0, address /02)] 
  File scratch.img attached to device MD0
  X1215 unit-0 is READY
> boot md1 [boot from the dos image] 
  File scratch.img reattached to device MD0 [the boot command to the simulator contains a reset all = master clear] 
  File dos5.img reattached to device MD1 [with this reset, attached files are reattached at load point]
  X1215 disk unit-0 is ready 
  X1215 disk unit-1 is NOT ready 
  
  MONITOR ? DOM [IPL is booted on the simulated P856 and requests which monitor to load; the reply is DOM] 
  
  **DOS 05 ** 
  
  DATE : 06/10/08 [the started DOM on the simulated P856 requests date and time] 
  
  TIME : 22:58 
  
  BATCH PROCESSING ? N [interactive CCI processing is requested] 
  
  USERID: SYSTEM [userid requested; reply is SYSTEM, which is a special user on the dos image] 
   
   
  S:LSD [CCI requests a command by prompting S: .... the reply is LSD, meaning List Directory] 
  LABEL = DOS5              DATE =  23/09/08        PACK NBR =  001 
  *********LIBRARY DIRECTORY********* 
  ****FILENAME****TYPE****ADDRESS**** 
  IPL:DK      LM      0010 [IPL program, requesting which monitor to start] 
  CCI         LM      0200 [Control Command Interpreter] 
  DOM         LM      01C8 [Monitor]
  ASM         LM      0208 [Assembler]
  LKE         LM      0230 [Link Editor] 
  DEB         LM      02C0 [Debug program] 
  MAC         LM      02D8 [Macro processor] 
  TED         LM      03B8 [Text Editor?] 
  BASIC       LM      03D0 [BASIC Interpreter] 
  PREMDK      LM      0408 [Disk formatter] 
  LISDIS      LM      0460 [List content of a diskpack (must run in systemmode:RUN LISDIS,0)] 
  M:PROC      UF      0488 [File with catalogued procedures] 
  /OBJCT      OB      04C0 [Object library] 
  OBDIR       UF      0640 [cross ref of object library] 
  HSF         LM      06D8 [High Speed Fortran Compiler] 
  FX1         LM      06E0 [overlays of the High Speed Fortran Compiler] 
  FX2         LM      0700 
  F:ERMS      UF      0720 
  FX3         LM      0740 
  FX4         LM      0758 
  FX5         LM      0770 
  FX6         LM      0788 
  FX7         LM      07A8 
  S:LSF [CCI request a next command. Reply is LSF, meaning List the currently assigned filecodes to devices] 
  1  TY10 [user typewriter, used by CCI for its output and by the user program] 
  2  TY10 [print unit, connected to the TTY] 
  3  PP30 [punch unit, connected to the papertape puncher] 
  4  PR20 [source input file unit, connected to the papertape reader] 
  5  TY10 
  6  TY10 
  7  TK05 [not part of the simulator] 
  8  LP07 [line printer] 
  9  MT04 [not part of the simulator] 
  /E0  TY10 [CCI input unit] 
  /E1  PR20 [source input unit] 
  /E2  PR20 [object input unit] 
  /EF  TY10 [system operator's typewriter (system output in response to a panel interrupt) 
  /F0  DK22 [boot disk] 
  LABEL = DOS5              DATE =  23/09/08        PACK NBR =  001 
  /F1  DK02 [other disk] 
  LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002 
  /F2  DK03 [not part of the simulator] 
  /F3  DK13 [not part of the simulator] 
  S:DCU THEO,/F1 [next CCI command. Reply is DCU, meaning Declare a new User in this case on the disc connected to filecode /F1]   
  S:LIC /F1 [next CCI command. Reply is LIC /F1, meaning List the Catalogue on the disc connected to filecode /F1] 
  LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002 
  *****GENERAL CATALOGUE***** 
  ****USERIDNT****ADDRESS**** 
  SYSTEM        0008 
  THEO          0010 
  S:LIC /F0  [next CCI command. Reply is LIC /F0, meaning List the Catalogue on the disc connected to filecode /F0] 
  LABEL = DOS5              DATE =  23/09/08        PACK NBR =  001 
  *****GENERAL CATALOGUE***** 
  ****USERIDNT****ADDRESS**** 
  SYSTEM        0008 
  S:BYE [next CCI command. reply is BYE, meaning a request to close the current user session]
   
  USERID: [CCI requests a userid to open a new user session] 
  Keyboard interrupt [interrupt the simulator] 
   
  Run/Boot: emulation stopped at address  1BAA 
  28908460 instructions in 173.20832 seconds: 166899 instructions per second 
>      [simulator requests a next command] 
                               
Formatting a new X1215 disk (explanation being given between [ ])
In this example the standalone diskformatter is loaded and executed to format a new X1215 diskpack. The new diskpack is loaded in drive md0 (unit 0, address /02) and the 2nd drive of unit 0 is loaded with the dos5 pack as a dummy pack to make unit 0 ready. An X1215 unit must be loaded with 2 disks to make the unit ready!.
pclx4:/usr/local/src/p800perl/p856 # cp emptyX1215pack.img new.img [the new pack is made by a copy command] 
pclx4:/usr/local/src/p800perl/p856 # perl p856-03.pl
P856 Emulator, version 0.3
> attach md0 new.img [attach the new pack to be formatted] 
File new.img attached to device MD0
X1215 unit-0 is NOT READY
To make unit-0 ready, both MD0 and MD1 must be attached to a diskimage file
> attach md1 dos5.img [attach a dummy pack] 
File dos5.img attached to device MD1
X1215 unit-0 is READY
> load prdk52.lm 1000 [load the standalone formatter at address /1000] 
Load prdk52.lm
Load  0A4B words; start loading at 1000
LOADING COMPLETE; 1st free address is 2496
Start address (P) is:  182E
> run [run the formatter] 
File new.img reattached to device MD0
File dos5.img reattached to device MD1
X1215 disk unit-0 is ready
X1215 disk unit-1 is NOT ready
 INITIALISATION OF PRMK52 B05 [the formatter shows its init message] 
 DISK UNIT PHYSICAL ADDRESS = 02 [and asks to which address the new disk to format is connected] 
  LABEL = TEST [label information is requested] 
  DATE = 13/10/08
  PACK NBR = 003
  SYSTEM USERID = SYSTEM
  -WRITING THE IDENTIFIERS [and the disk is formatted] 
 -CHECKING THE IDENTIFIERS [and checked] 
 -END OF CHECK
 -NBR. OF BAD GRANULES = 0000 [and OK!] 
RUN AGAIN ? : NO
  END OF PRMK52
Execution stopped with a HLT [the standalone formatter stops itself with a HLT] 
Run: emulation stopped at address  20A4
20629364 instructions in 244.821809 seconds: 84262 instructions per second
Memory and Registers Checked
> exit
File new.img detached from device MD0 and closed
File dos5.img detached from device MD1 and closed
EXIT!
Running a short BASIC program (explanation being given between [ ])
pclx4:/usr/local/src/p800perl/p856 # perl p856-03.pl
P856 Emulator, version 0.3
> att md0 dos5.img
File dos5.img attached to device MD0
X1215 unit-0 is NOT READY
To make unit-0 ready, both MD0 and MD1 must be attached to a diskimage file
> att md1 scratch.img
File scratch.img attached to device MD1
X1215 unit-0 is READY
> boot md0 [in this example booting is done from md0] 
File dos5.img reattached to device MD0
File scratch.img reattached to device MD1
X1215 disk unit-0 is ready
X1215 disk unit-1 is NOT ready
MONITOR ? DOM
**DOS 05 **
 DATE : 13/08/08
 TIME : 22:26
 BATCH PROCESSING ? N
USERID: SYSTEM [start a session] 
S:RUN BASIC
LABEL = DOS5              DATE =  23/09/08        PACK NBR =  001     SYSTEM
B:10 LET A=1 [is simple program is typed in on the TTY] 
B:20 LET B=4
B:30 LET C=B*A
B:40 LET D=A+B+C
B:50 PRINT D
B:60 END
B:LIST [request a listing from the typed in program] 
10 LET A=1
20 LET B=4
30 LET C=B*A
40 LET D=A+B+C
50 PRINT D
60 END
:EOS
B:RUN [and run it] 
        9 [..........the result] 
ST  00  0060
B:SEND [stop BASIC and exit to the monitor]
PROG ELAPSED TIME:  00H-00M-00S-000MS- [sorry, the clock was not switched on] 
EXIT CODE = 00
S:BYE [CCI requests a new command; exit the session with BYE] 
USERID:
Keyboard interrupt
Run/Boot: emulation stopped at address  1BAA
32078658 instructions in 191.120598 seconds: 167845 instructions per second
>   
                                                                         
Running a Fortran compilation, Link and Execution (short explanation being given between [ ])
pclx4:/usr/local/src/p800perl/p856 # perl 2ptr.pl tsqrt.txt [Convert program textfile to papertape] 
 
Convert tsqrt.txt to tsqrt.ptr
 
tsqrt.txt is converted
 
pclx4:/usr/local/src/p800perl/p856 # perl p856-03.pl
 
P856 Emulator, version 0.3
> att md1 dos5.img
 
File dos5.img attached to device MD1
 
X1215 unit-0 is NOT READY
 
To make unit-0 ready, both MD0 and MD1 must be attached to a diskimage file
> att md0 scratch.img
 
File scratch.img attached to device MD0
 
X1215 unit-0 is READY
> att ptr tsqrt.ptr [attach papertape to the program source file] 
 
File tsqrt.ptr attached to device PTR
> rtc on
 
CU 10000 INTERVAL 3000
 
RTC is active
> boot md1
 
File tsqrt.ptr reattached to device PTR
 
File scratch.img reattached to device MD0
 
File dos5.img reattached to device MD1
 
X1215 disk unit-0 is ready
 
X1215 disk unit-1 is NOT ready
 
 
MONITOR ? DOM
 
 
**DOS 05 **
 
 
 DATE : 14/10/08
 
 
 
 TIME : 12:43
 
 
 
 BATCH PROCESSING ? N
 
 
 
 
 USERID: /F1,THEO [open session on disk /F1 for user THEO] 
 
 
 S:RDS [read source from papertape] 
 S:PRT /S [print the source] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
 
0000        IDENT TSQRT
 
0001  C TEST HSF
 
0002  7     FORMAT(1H ,F10.2)
 
0003        A=3
 
0004        B=1.7
 
0005        C=-31.92
 
0006        ROOT = (-B+SQRT(B**2 - 4.0*A*C))/(2.0*A)
 
0007        WRITE (2,7) ROOT
 
0008        PAUSE PA
 
0009        A=3
 
0010        B=4
 
0011        ROOT = SQRT(A*A + B*B)
 
0012        WRITE (2,7) ROOT
 
0013        STOP ST
 
0014        END
 
:EOS
 
:EOF
 
S:KPF /S,TSQRT [make the source file permanent on disk under the name TSQRT] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
S:HSF TSQRT [compile program] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
HSFC VER.  02 [the printfilecode (2) is assigned to the operator typewriter, so all printing is done on the TTY] 
 
0000       0        IDENT TSQRT
 
0001          C TEST HSF
 
0002       1  7     FORMAT(1H ,F10.2)
 
0003       2        A=3
 
0004       3        B=1.7
 
0005       4        C=-31.92
 
0006       5        ROOT = (-B+SQRT(B**2 - 4.0*A*C))/(2.0*A)
 
0007       6        WRITE (2,7) ROOT
 
0008       7        PAUSE PA
 
0009       8        A=3
 
0010       9        B=4
 
0011      10        ROOT = SQRT(A*A + B*B)
 
0012      11        WRITE (2,7) ROOT
 
0013      12        STOP ST
 
0014      13        END
 
:EOF
 
PROG ELAPSED TIME:  00H-00M-21S-980MS-
 
S:KPF /O [make the compiled object file permanent on disk in the OBJCT library] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
S:LKE M [link edit and ask for a map] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
 
 
  TSQRT   0008 [link edit output: the main module to link]
 
  F:MS    01DC [link edit output: linked modules searched from the object library]
 
  F:SEQW  02EE
 
  F:SEQU  0300
 
  F:PREP  043E
 
  F:EXCL  0498
 
  F:VARP  077C
 
  F:AWDS  080C
 
  F:LWDS  0846
 
  F:OUTN  0884
 
  F:FLOC  09FC
 
  F:ICIC  0BEC
 
  F:COPY  0C14
 
  F:BAZP  0C34
 
  F:IORC  0C6E
 
  F:IOCS  0CE6
 
  F:STAT  0D14
 
  F:ASCI  0DEE
 
  F:IOWS  0E06
 
  SQRT    0E0E
 
  F:DI    0EF8
 
  F:DD    0FFC
 
  F:DM    11B0
 
  F:DN    132C
 
  F:T3    138A
 
  F:RI    13BA
 
  F:FX    14B2
 
  F:FL    1540
 
  F:RD    1552
 
  F:RM    167A
 
  F:RP    17AE
 
  F:TLN   1882
 
  F:TRA   18E6
 
                ***   SYMBOL   TABLE  ***
 
  
 
$TSQRT 01A2 R   %TSQRT 0164 R   F:ASCI 0DEE R   F:AW   080C R
 
F:CL   0574 R   F:CLIO 07D4 R   F:CLOR 0E0C R   F:COP  0C14 R
 
F:DD   1018 R   F:DI   0F2A R   F:DM   11CA R   F:DN   132C R
 
F:ER   02B4 R   F:ER03 02A2 R   F:ER04 02A6 R   F:ER10 02AA R
 
F:ER11 02AE R   F:ERLK 02B2 R   F:FCT  0000 A   F:FL   1540 R
 
F:FLOC 09FC R   F:FX   14B8 R   F:ICI  0BEC R   F:IOAS 0C52 R
 
F:IOB  0C34 R   F:IOCS 0CE6 R   F:IOCV 0E0A R   F:IOP  0C4A R
 
F:IORC 0C6E R   F:IORQ 0C92 R   F:IOZ  0C46 R   F:L1   057C R
 
F:L2   0580 R   F:LPFC 0002 A   F:LW   0846 R   F:MESS 0DDA R
 
F:OUTN 0884 R   F:PA   024C R   F:PREP 043E R   F:RACL 07EA R
 
F:RD   1568 R   F:RECV 0E08 R   F:RI   13E4 R   F:RLWS 0DCE R
 
F:RM   1690 R   F:RN   185E R   F:RP   17B0 R   F:RS   17B4 R
 
F:RSEV 0E06 R   F:RSQR 0E30 R   F:SEQU 0300 R   F:ST   0220 R
 
F:STAS 0D14 R   F:STAT 0D2C R   F:SUB  0800 R   F:SW   02EE R
 
F:T1   14BC R   F:T3   1398 R   F:TLN  1882 R   F:TRA  18E6 R
 
F:TYFC 0001 A   F:VAR  077C R
 
                            ******
 
                  START = 0054   LENGTH = 1922   REGION = 0D47
 
:EOF
 
PROG ELAPSED TIME:  00H-01M-16S-560MS-
 
S:KPF /L,TSQRT [make the linked program permanent on disk under the name TSQRT] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
S:LSD [list the directory] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002
 
*********LIBRARY DIRECTORY*********
 
****FILENAME****TYPE****ADDRESS****
TSQRT       SC      0018 [<= program source file] 
 
    /OBJCT      OB      0028
 
    OBDIR       UF      0048
    TSQRT       LM      0050 [<= linked program file 
  S:RUN TSQRT [execute the program] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002     THEO
2.99 [<= program output, value 1] 
F:PA [<= program output, result of the PAUSE statement, on the operator TTY] 
F:PA [<= program output, result of the PAUSE statement, on the print file] 
 
[<= program output, the program continues after typing a CR on the TTY] 
5.00 [<= program output, value 2] 
F:ST [<= program output, result of the STOP statement, on the operator TTY] 
F:ST [<= program output, result of the STOP statement, on the print file] 
 
PROG ELAPSED TIME:  00H-00M-03S-700MS-
 
 
EXIT CODE = 00
 
S:BYE
 
 
 
USERID:
 
Keyboard interrupt
 
 
Run/Boot: emulation stopped at address  1BAA
 
62534199 instructions in 389.507243 seconds: 160546 instructions per second
 
>     
                                                              
Running a program Assembly, Link and Execution (explanation being given between [ ])
This example shows, using standard P800 software, the construction of a small text editor. The result of the job steps are printed on the lineprinter which is connected to filecode 2. The printed output of the simulated lineprinter is saved in this text file.
pclx4:/usr/local/src/p800perl/p856 # perl 2ptr.pl leditd.txt [convert the program source to a papertape] 
 
Convert leditd.txt to leditd.ptr
 
leditd.txt is converted
 
pclx4:/usr/local/src/p800perl/p856 # perl p856-03.pl
 
P856 Emulator, version 0.3
 
> rtc on
 
CU 10000 INTERVAL 3000
 
RTC is active
 
> attach ptr leditd.ptr [attach the papertape to the papertape reader] 
 
File leditd.ptr attached to device PTR
 
> attach md1 dos5.img
 
File dos5.img attached to device MD1
 
X1215 unit-0 is NOT READY
 
To make unit-0 ready, both MD0 and MD1 must be attached to a diskimage file
 
> attach md0 scratch.img
 
File scratch.img attached to device MD0
 
X1215 unit-0 is READY
 
> attach lpt lp07.txt [attach the lineprinter to a printfile] 
 
File lp07.txt attached to device LPT
 
> boot md1 [boot from the dos5 disk] 
 
File leditd.ptr reattached to device PTR
 
File lp07.txt reattached to device LPT
 
File scratch.img reattached to device MD0
 
File dos5.img reattached to device MD1
 
X1215 disk unit-0 is ready
 
X1215 disk unit-1 is NOT ready
 
 
MONITOR ? DOM
 
 
**DOS 05 **
 
 
 DATE : 14/10/08
 
 
 TIME : 13:11
 
 
 BATCH PROCESSING ? N
 
 
 
USERID: /F1,THEO [open a session for user THEO on the scratch disk] 
 
 
S:ASG 02,LP07 [assign the printfile (filecode 2) to the lineprinter] 
 
S:RDS [read the program source from filecode 4 which is assigned to the papertape reader] 
 
S:KPF /S,LEDITD [make the source file permanent on disk with the name LEDITD] 
 
S:ASM LEDITD [assemble LEDITD; all printed output on the lineprinter] 
 
S:KPF /O [make the assembled object file permanent on disk in the OBJCT library] 
 
S:LSD [list the directory of the current user (THEO)] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002
 
*********LIBRARY DIRECTORY*********
 
****FILENAME****TYPE****ADDRESS****
 
    TSQRT       SC      0018
 
    /OBJCT      OB      0028
 
    OBDIR       UF      00C0
 
    TSQRT       LM      0050
 
    LEDITD      SC      0020 [<=source file] 
 
S:LSD /OBJCT [list the OBJCT library] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002
 
*********LIBRARY DIRECTORY*********
 
****OBJECT MODULES****
 
    TSQRT
 
    LEDIT   VERSION D [<=object file] 
 
S:INC LEDIT [prepare linking; put the main object module in a temporary file] 
 
S:LKE M [link and ask for a map] 
 
S:KPF /L,LEDITD [make the linked file permanent on disk with the name LEDITD] 
 
S:LSD [list the directory] 
 
LABEL = SCRATCH           DATE =  06/10/08        PACK NBR =  002
 
*********LIBRARY DIRECTORY*********
 
****FILENAME****TYPE****ADDRESS****
 
    TSQRT       SC      0018
 
    /OBJCT      OB      0028
 
    OBDIR       UF      00C0
 
    TSQRT       LM      0050
 
    LEDITD      SC      0020
 
    LEDITD      LM      00C8 [<= the linked program file] 
 
S:RUN LEDITD [run the program, a simple text editor] 
 
 
#RA.1 [ask input from the ASR/TTY] 
 
LINE 1 [some text] 
 
LINE 2
 
LINE 3
 
:EOS [stop text input] 
 
 
#PA.0 .10 [print the buffer]
 
001 LINE 1
 
002 LINE 2
 
003 LINE 3
 
004 :EOS
 
 
#<.3 [insert a new line before line 3] 
 
 
    NEW LINE 3 [the new line] 
 
 
#PA.0 .10 [print the buffer] 
 
 
001 LINE 1
 
002 LINE 2
 
003 NEW LINE 3
 
004 LINE 3
 
005 :EOS
 
 
#$?E [exit the program and return to the monitor] 
 
S: [CCI requests an next command] 
 
Keyboard interrupt
 
 
Run/Boot: emulation stopped at address  1BAA
90555614 instructions in 596.499251 seconds: 151811 instructions per second
 
> exit [exit the simulator] 
 
File leditd.ptr detached from device PTR and closed
 
File lp07.txt detached from device LPT and closed
 
File scratch.img detached from device MD0 and closed
 
File dos5.img detached from device MD1 and closed
 
EXIT!
 
pclx4:/usr/local/src/p800perl/p856 #     [linux asks a next command] 
                                                
 
Page last updated on: Feb 26 2017 | Contact: Info@theoengel.nl  |