P856 Simulation (Simulation of another Philips 16 bit P800 minicomputer)

Home
Back

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
Booting the P856 with DOS-v5
DOM configuration being used
Format an X1215 disk pack
A short BASIC session
Fortran program compilation, Link and Exec
Assembly of a program, Link and Exec

Differences between the P856 and its predecessors the P855 and P860

On the hard/software interface, the main differences are:

  1. Interrupt system

    - 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)

  2. IO processor connected Multiplex channels

    - the channels are controlled by WER/RER instructions and external registers

  3. A few additional instructions

    - 2-Complement: NGR
    - Clear Memory: CMR, CM, CM*
    - Execute: EXR, EXR*, EXK, EX, EX*
    - Write External Register: WER
    - Read External Register: RER

  4. Moving head disk support

    - 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

  5. RTC: not started/stopped with CIO instructions but via a key on the control panel

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:

A 32k word machine is simulated and the same set of peripherals is supported as for the P855/P860 simulator. Disk support is different however: 2 X1215 moving head disk units are implemented, each unit contains 2 spindles. The names of the disks in the simulator are: The commands to control the simulator are similar to the P855/P860 command set, but extended to control P856 specific items:

Usage: p856-xx.pl [<do-script-name>]

After starting the simulator, a prompt is displayed after which a simulator control command is requested.
Software can be loaded being assembled and linked with the cross assembler/linker. The assembler is extended with the additional P856 instructions. However also original standard P800 software is available, which can be loaded and executed on this simulator. This original software is available either as load modules (extension .LM or .lm and to be loaded with the load command) or on a disk image file (extension .img).

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.

Running original standard P800 software

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).

  top

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.

  top

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]

  top

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!

  top

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
>

  top

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
>

  top

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]

 top

 

Page last updated on: Feb 26 2017 | Contact: Info@theoengel.nl