From abddd1a707c7bb3d2013565519e3b35da3f2b99c Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 12 Jan 2017 22:40:45 +0100 Subject: [PATCH] Print octal and half words. --- src/sysen3/od.93 | 118 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/sysen3/od.93 diff --git a/src/sysen3/od.93 b/src/sysen3/od.93 new file mode 100644 index 00000000..83930da6 --- /dev/null +++ b/src/sysen3/od.93 @@ -0,0 +1,118 @@ +TITLE OD - print binary file + +A=1 +B=2 +C=3 +D=4 +E=5 +P=17 + +BIN=7 ;Channel for binary input. +TYO=8 ;Channel for terminal output. + +$$RFN==1 +.INSRT SYSENG; RFN > + +FNAM: +DEV: 0 +FN1: 0 +FN2: 0 +SNAM: 0 + +START: + MOVE P,[-PDLSIZ,,PDL] + + .BREAK 12,[..RJCL,,JCL] + MOVEI B,FNAM + MOVE D,[440700,,JCL] + PUSHJ 17,RFN"RFN + + .CALL [SETZ + SIXBIT /OPEN/ + [.UII,,BIN] + DEV ? FN1 ? FN2 ? SETZ SNAM] + .LOSE + + .CALL [SETZ + SIXBIT /OPEN/ + [.UAO,,TYO] + SETZ [SIXBIT /TTY/]] + .LOSE + +NEXT: .CALL [SETZ + SIXBIT /IOT/ + %CLIMM,,BIN + SETZ DATA] + .LOSE + + PUSHJ P,OCT + PUSHJ P,OUT + + .IOT TYO,[" ] + .IOT TYO,[";] + .IOT TYO,[" ] + + PUSHJ P,HALF + PUSHJ P,OUT + + .IOT TYO,[13.] + .IOT TYO,[10.] + JRST NEXT + +FIN: .LOGOUT 1, + +OCT: MOVSI B,-12. + MOVE E,[440300,,DATA] + MOVE D,[440700,,OUTBUF] +OCT1: ILDB A,E + ADDI A,"0 + IDPB A,D + AOBJN B,OCT1 + POPJ 17, + +HALF: MOVE D,[440700,,OUTBUF] + SKIPGE A,DATA + JRST [MOVEI B,"- + IDPB B,D + MOVNS A + HLLM A,DATA + JRST .+1] + MOVSI B,-6 + MOVE E,[440300,,DATA] + PUSHJ 17,OCT1 + + MOVEI B,", + IDPB B,D + IDPB B,D + + HRLZ A,DATA + JUMPL A,[MOVEI B,"- + IDPB B,D + MOVNS A + HLRM A,DATA + JRST .+1] + MOVSI B,-6 + MOVE E,[220300,,DATA] + PUSHJ 17,OCT1 + POPJ 17, + +OUT: MOVE D,[440700,,OUTBUF] + MOVEI E,12. + .CALL [SETZ + SIXBIT /SIOT/ + %CLIMM,,TYO + D + SETZ E] + .LOSE + POPJ 17, + +RSIXTP: + POPJ 17, + +JCL: BLOCK 10 +PDLSIZ=100 +PDL: BLOCK PDLSIZ +DATA: 0 +OUTBUF: BLOCK 10 + +END START