/ SUBROUTINE A5TOA1(A,B,D) /(pdp11:)SUBROUTINE A5TOA1(A,B,C,D) / / THIS ROUTINE TAKES THE UP TO 6 CHARACTER "WORD" IN A:B:C / AND TYPES IT OUT, FOLLOWED BY THE PUNCTUATION MARK IN D. / IT ALSO APPENDS A CRLF TO GET TO A NEW LINE. / For OS/8: the word is in A,B with nothing in C. / / IMPLICIT INTEGER (A-Z) / COMMON /ALPHAS/ BLANK EXTERN SIXOUT EXTERN CGET EXTERN CPUT SECT A5TOA1 JA #ST #XR, ORG .+10 TEXT +A5TOA1+ #RET, SETX #XR SETB #BASE JA .+3 #BASE, ORG .+6 ZERO, F 0 A, ORG .+3 B, ORG .+3 D, ORG .+3 ONE, F 1 THREE, F 3 BLANK, TEXT + + ORG #BASE+30 FNOP JA #RET FNOP #GOBAK, 0;0 #RTN, BASE #BASE JA #GOBAK #ST, STARTD 0210 FSTA #GOBAK,0 0200 SETX #XR SETB #BASE LDX 0,1 FSTA #BASE FLDA% #BASE,1+ FSTA A FLDA% #BASE,1+ FSTA B FLDA% #BASE,1+ FSTA D STARTF FLDA% A FSTA A FLDA% B FSTA B FLDA% D FSTA D / IF (A .NE. BLANK) TYPE 1,A FLDA A FSUB BLANK JEQ #G0001 JSR TRIM JA .+4 JA A JSR SIXOUT JA .+10 JA A JA ZERO JA THREE / IF (B .NE. BLANK) TYPE 1,B #G0001, FLDA B FSUB BLANK JEQ #G0002 JSR TRIM JA .+4 JA B JSR SIXOUT JA .+10 JA B JA ZERO JA THREE / IF (C .NE. BLANK) TYPE 1,C / TYPE 2,D #G0002, JSR TRIM JA .+4 JA D JSR SIXOUT JA #RTN JA D JA ZERO JA ONE / RETURN / END /1 FORMAT('+',A2,$) /2 FORMAT('+',A2) SECT TRIM JA #TST #TXR, ORG .+10 TEXT +TRIM + #TRET, SETX #TXR SETB #TBASE JA .+3 #TBASE, ORG .+6 PSTR, ORG .+3 I, ORG .+3 CH, ORG .+3 K1, F 1 K6, F 6 K32, F 32 ORG #TBASE+30 FNOP JA #TRET FNOP #TGOBK, 0;0 #TRTN, BASE #TBASE JA #TGOBK #TST, STARTD 0210 FSTA #TGOBK,0 0200 SETX #TXR SETB #TBASE LDX 0,1 FSTA #TBASE FLDA% #TBASE,1+ FSTA PSTR STARTF FLDA K6 FSTA I #T10, FLDA PSTR STARTD FSTA #TG001 FSTA #TG002 STARTF JSR CGET JA .+0010 #TG001, JA . JA I JA CH FLDA CH FSUB K32 JNE #TRTN JSR CPUT JA .+0010 #TG002, JA . JA I JA ZERO FLDA I FSUB K1 FSTA I JGT #T10 JA #TRTN