Using the PMC-20 Minicomputer - An example session

This post is a little different. It shows a typical login session on the PMC-20.

You start by connecting via a ssh session:

Workstation1:~ $ ssh kurt@pmc20
kurt@pmc20's password:


Last login: Fri Jan 26 16:24:37 2018 from pi1

  #     # ######  #######     #######  #####   #####
  ##   ## #     # #           #     # #     # #     #
  # # # # #     # #           #     # #             #
  #  #  # ######  #####       #     #  #####   #####
  #     # #       #           #     #       #       #
  #     # #       #           #     # #     # #     #
  #     # #       #######     #######  #####   #####

      --- Welcome to MPE on the PMC-20 ---

To view available commands type 'commands' at the prompt.
For command help, type 'help [command]', or just 'help'.

You will be logged out after 20 minutes of inactivity.

Assigned JOB number 114

~/kurt> commands

*** MPE Built-in Commands ***
cd               change directories
help             show this help file
exit             exit the mpe shell
ver              show mpe version information
dbase            run database commands
cls              clear the screen
commands         show built-in commands
attach           jump to another users directory
edit             invoke the text editor
type             display a text file
copy             copy/move/rename files
del              delete a file
motd             display the M.O.T.D. file
status           show system/user status
create           create an empty directory or file
deldir           delete an empty directory
logout           logoff the system
bye              logoff the system
search           search for files
noidle           stop idle timeout logoff
files            show files in current directory
assign           assign name to device
hex2dec          convert hexadecimal to decimal
dec2hex          convert decimal to hexadecimal
time             show local time and date
utc              show utc time and date
timer            program execution timer
load             load file from device
como             send program/display out to file
makefs           create an MPFS Filesystem
formatfs         format an MPFS Filesystem
usefs            set a filesystem name
showfs           show assigned filesystem
$save            save a file to filesystem
$listf           show files in filesystem
$load            load a file from filesystem
$dir             show files in filesystem
$rename          rename a file on filesystem 

tape             use the tape drive (load/save/listf)

dir              show a detailed directory listing
submit           run batch processing jobs

~/kurt> help
Help is available for the following commands:
Type help [command] to view command help.

assign    attach      backup      bash        bwbasic       
bye       catalog     cd          cls         cobol       
commands  como        copy        create      del       
deldir    dir         edit        exit        f77       
files     fortran     help        load        logout       
memuse    motd        python      restore     prot       
search    status      submit      tape        time       
type      ver       

~/kurt> cd C
~/kurt/C>  dir
87    kurt     RW-  r--  Fri Jan  5 13:59:03 2018     Makefile
6012  kurt     RWX  r-x  Sun Jan 14 20:35:38 2018     *hex2dec
284   kurt     RW-  r--  Sun Jan 14 20:35:28 2018     hex2dec.c
12212 kurt     RWX  r-x  Sun Jan  7 17:50:54 2018     *pi_atn
8020  kurt     RW-  r--  Sun Jan  7 17:50:25 2018     pi_atn.c
6120  kurt     RWX  r-x  Fri Jan  5 13:59:07 2018     *t1
234   kurt     RW-  r--  Sun Apr  9 23:38:06 2017     t1.c
1280  kurt     RW-  r--  Fri Jan  5 13:59:06 2018     t1.o
5948  kurt     RWX  r-x  Fri Jan  5 16:48:15 2018     *t2
328   kurt     RW-  r--  Fri Jan  5 16:48:11 2018     t2.c
6040  kurt     RWX  r-x  Sun Jan 14 21:37:29 2018     *time
222   kurt     RW-  r--  Sun Jan 14 21:37:25 2018     time.c
162   kurt     RW-  r--  Sat Jan 13 22:35:28 2018     ttt.c

 46,949 bytes in 13 files
 

~/kurt/C> type t1.c
#include <stdio.h>
#include <stdlib.h>

int main(void) {

    int i;
    printf("\nHello, World!\n");
    for (i=1; i != 11; i++)
        printf("\n%d",i);
    printf("\n");
    for (i = 1; i < 30; i+=4)
        printf("\nI: %d",i);
    printf("\n");
    exit(0);
}

~/kurt/C> cc -o t1 t1.c
~/kurt/C> time
Fri Jan 26 17:01:28 2018
~/kurt/C> timer set
timer is SET
~/kurt/C> ./t1

Hello, World!

1
2
3
4
5
6
7
8
9
10

I: 1
I: 5
I: 9
I: 13
I: 17
I: 21
I: 25
I: 29
Runtime: 0.010862
~/kurt/C> showfs

Filesystem      Owner (uid)      Size
---------------------------------------
disk01          kurt (1200)     33 MB

Found 1 Filesystem(s)

~/kurt/C> status jobs

JOB 100  NAME kurt        PID 22528  CPU pi4   Idle (sec): 11392
JOB 101  NAME kurt        PID 26929  CPU pi5   Idle (sec): 11084
JOB 113  NAME kurt        PID 27902  CPU pi5   Idle (sec): 2113
JOB 114  NAME kurt        PID 32305  CPU pi2   Idle (sec): 566
 

~/kurt/C> status me
Job Number 114 on cpu2, PID 32305
Connect time (seconds): 00591     (hhhh:mm:ss) 0000:09:51
noidle is CLEAR
 

~/kurt/C> ver
Running MPE version 3.02
Compiled Jan 26 2018  k.theis <theis.kurt@gmail.com>
 

~/kurt> bye
Exiting Job # 114
Connect time (seconds): 684     (hhhh:mm:ss) 0000:11:23
CPU time used 0.694309 seconds
Goodbye
Connection to pmc20 closed.




As you can see, a lot of the commands are unix friendly, with the job control of RSTS and Primos. 


The attach command lets users share directories (think student/teacher). Do to the filesystem constraints of MPE, a user normally can only move around his/her directory. As far as the typical user, there is nothing above or outside of their home directory. The are free to create and use sub-directories within their home directory. The attach command (is the user sets up permissions) will let a user jump to anothers home directory.

The makefs/formatfs/showfs/$save/$load/$dir/$listf/$rename commands let the user create and use a portable filesystem (MPFS) that they can take off-site, transfer between systems, etc.

MPE (the operating shell, command set, file structure) provides a complete user process accounting system for the system administrator to keep track of the users sessions and the overall system operation.

The submit command is a batch processing system (another complete shell/job session: (think IBM jcl but with a better syntax) where users can remotely submit work to be done when the system is less busy.

~Kurt






Comments

Popular posts from this blog

nano80 - An Arduino nano based 8080 Simulator

Our Universe is a Simulation

Lightwave Communications