diff --git a/build/misc.tcl b/build/misc.tcl index 43404834..6e359a95 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -1331,3 +1331,7 @@ expect ":KILL" # runtime errors (e.g. not being able to open TTY:). respond "*" ":midas sys;ts monit_dmcg;monit\r" expect ":KILL" + +# IBMASC +respond "*" ":midas sys3;ts ibmasc_sysen1;ibmasc\r" +expect ":KILL" diff --git a/doc/programs.md b/doc/programs.md index 8d1e794f..1f21125f 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -113,6 +113,7 @@ - HOSTS3, the host table compiler. - HSNAME, displays user's HSNAME. - HSNDEV, HSNAME device. +- IBMASC, read 8-bit ASCII tape file. - IO-11, PDP-11 I/O processor. - IDLE, list idle users. - IFILE, Chaosnet file service. diff --git a/src/sysen1/ibmasc.1 b/src/sysen1/ibmasc.1 new file mode 100755 index 00000000..80a21739 --- /dev/null +++ b/src/sysen1/ibmasc.1 @@ -0,0 +1,80 @@ +TITLE READ THE TAPE +A=1 +B=2 +C=3 +D=4 +E=5 +W=16 +P=17 +MAGI=10 +DSK=11 +TYO=12 +START: MOVE P,PDL + .OPEN MAGI,MAG + .VALUE + .OPEN DSK,DSKO + .VALUE +LP0: MOVE B,[-1,,MAGBUF] + .IOT MAGI,B + SKIPGE B + JRST DONE + MOVSI A,-4 + MOVE C,[441000,,MAGBUF] + MOVE D,[440700,,DSKBUF] +LP: ILDB E,C + IDPB E,D + AOBJN A,LP + MOVE B,[-1,,DSKBUF] + .IOT DSK,B + JRST LP0 +DONE: .CLOSE MAGI, + .CLOSE DSK, + .VALUE [ASCIZ /:DONE. ALT P TO READ MOREî/] + JRST START + +STOP: MOVE A,[MAGI,,[11]] + .MTAPE A, + JFCL + .CLOSE MAGI, + +REWIND: .OPEN MAGI,MAG + .VALUE + MOVE A,[MAGI,,[1]] + .MTAPE A, + .VALUE + .CLOSE MAGI, + .VALUE + +SPACE: .OPEN MAGI,MAG + .VALUE + MOVE B,[MAGI,,A] + MOVEI A,7 + .MTAPE B, + .VALUE + .CLOSE MAGI, + .VALUE + +EOT: .OPEN MAGI,MAG + .VALUE + MOVE B,[MAGI,,[10]] + .MTAPE B, + .VALUE + .CLOSE MAGI, + .VALUE + +DSKBUF: 0 +MAGBUF: 0 +MAG: 426,,(SIXBIT /MT0/) + 0 + 0 + +DSKO: SIXBIT / 'DSK/ +FNAM1: SIXBIT /JLKTAP/ +FNAM2: SIXBIT />/ + + +PDL: -100,,PDL1 +PDL1: BLOCK 100 + +END START + \ No newline at end of file