File SUBR.TMP

Directory of image this file is from
This file as a plain text file

1 REM - UTILITY SUBROUTINE TO BE USED WITH BASIC PROGRAMS. 
2 REM - WRITTEN BY : SOFTWARE STAFF. 
3 REM - REGISTERED DATE :  SEPTEMBER 1, 1972 
4 REM - REVISED BY : SOFTWARE STAFF
5 REM - REVISED DATE :  JULY 15, 1973
6 PRINT \ PRINT "COPYRIGHT 'C' 1972" 
7 PRINT "REMCOS" \ PRINT "TIME-SHARING SERVICE COMPANY"
8 PRINT "RACINE, WISCONSIN" \ PRINT\PRINT
100PRINT"THIS PROGRAM CONTAINS THE FOLLOWING SUBROUTINES:"\PRINT 
102PRINT"1.  CONVERSION OF ALPHAMERIC TO ASCII CHARACTER CODES." 
103PRINT"    (LINE 1500 THRU 1550)"
104PRINT"2.  RIGHT JUSTIFYING NUMBERS FOR ACCOUNTING PURPOSES."
105PRINT"    (LINE 1560 THRU 1620)"
106PRINT"3.  READ/WRITE MAGNETIC TAPE TO AVOID ROCKING ACTION."
107PRINT"    (LINE 1630 THRU 1670)"
108PRINT"4.  CONVERSION OF COMPLEX NUMBERS FROM RECTANGULAR TO POLAR." 
109PRINT"    (LINE 1680 THRU 1770)"
110PRINT"5.  SORT NUMERICAL VALUES IN ASCENDING ORDER."
111PRINT"    (LINE 1780 THRU 1840)"
150PRINT\PRINT"TO OBTAIN THE DESIRED SUBROUTINE, USER SHOULD PERFORM"
152PRINT"THE FOLLOWING STEPS:"\PRINT 
154PRINT"1.  PAPER TAPE PUNCH 'ON' AND PRESS 'HERE IS' KEY." 
156PRINT"2.  PUNCH UNIT 'OFF'."\PRINT"3.  PRESS 'RE-TURN'" 
158PRINT"4.  TYPE 'LIS (NUMBER OF FIRST LINE, NUMBER OF LAST LINE" 
160PRINT"              (OF DESIRED SUBROUTINE AS DESCRIBED ABOVE." 
162PRINT"5. TURN PUNCH 'ON' AGAIN AND PRESS 'RE-TURN' KEY."  
170PRINT\PRINT\STOP
1500 REM - SUBROUTINE TO CONVERTS ALPHAMERIC TO ASCII CHARACTER CODE. 
1505 REM - VARIABLES USED: Z$,Z0,Z1,Z2,Z3,Z4,Z(6) 
1510 REM - Z$ SHOULD BE USED IN THE MAIN PROGRAM
1515 DIM Z(6) 
1520 Z0=0 \ Z1=4 \ Z2=1 
1525 CHANGE Z$ TO Z 
1530 FOR Z4=1 TO 4 \ IF Z(Z1)<48 THEN 1545 \ IF Z(Z1)>57 THEN 1545
1535 IF Z(Z1)=32 THEN 1545
1540 Z3=Z(Z1)-48 \ Z0=Z0+(Z3*Z2) \ Z2=Z2*10 
1545 Z1=Z1-1 \ NEXT Z4
1550 RETURN 
1560 REM- SUBROUTINE FOR RIGHT JUSTIFYING NUMBERS.
1565 REM - VARIABLES USED: N,T (T: EMBEDDED SPACES <>0 AND <72) 
1570 T=N1 
1575 IF N=0 THEN 1610 \ IF ABS(N)<.1 THEN 1590 \ IF N>999999 THEN 1615
1580 IF N=INT(N) THEN 1595
1585 PRINT TAB(T-INT(LOG(ABS(N))/LOG(10)));N \ GOTO 1620
1590 PRINT TAB(T-INT(LOG(.1+ABS(N))/LOG(10)));N \ GOTO 1620 
1595 PRINT TAB(T-INT(LOG(ABS(N))/LOG(10))); N;
1600 N=0 \ PRINT TAB(1+(T-INT(LOG(.1+ABS(N))/LOG(10)))); ".00"
1605 GOTO 1620
1610 PRINTTAB(1+(T-INT(LOG(.1+ABS(N))/LOG(10)))); ".00" \ GOTO 1620 
1615 PRINT TAB(T); N
1620 RETURN 
1630 REM - SUBROUTINE TO READ/WRITE RECORDS ALONG MAG. TAPE.
1635 REM - READ/WRITE ONE RECORD EACH TIME CALLED.
1640 R=R+9
1645 IF R<=1483 THEN 1665 
1650 IF R=1483 THEN 1670
1655 R=R-1483 \ IF R>0 THEN 1665
1660 R=R+10 
1665 RETURN 
1670 PRINT"END OF TAPE" 
1680 REM - SUBROUTINE TO CONVERT COMPLEX NUMBERS FROM RECT. TO POLAR. 
1685 REM - VARIABLES USED: A9,B9,C9,R9 (A9: REAL; B9: IMMAGINARY) 
1690 R9=SQR(A9^2+B9^2)
1695 IFA9<0THEN 1725\ IFA9=0THEN 1700\ IFA9>0THEN 1745
1700 IFB9<0THEN 1705\ IFB9=0THEN 1710\ IFB9>0THEN 1720
1705 C9=270 \ GOTO 1765 
1710 PRINT \ PRINT "DEGENERATE CASE A=B=0"\ PRINT 
1715 GOTO 1770
1720 C9=90 \ GOTO 1765
1725 IF B9<0 THEN 1730 \ IF B9=0 THEN 1735 \ IF B9>0 THEN 1740
1730 C9=180+57.296*ATN(ABS(B9/A9)) \ GOTO 1765
1735 C9=180 \ GOTO 1765 
1740 C9=180-57.296*ATN(ABS(B9/A9)) \ GOTO 1765
1745 IF B9<0 THEN 1750 \ IF B9=0 THEN 1755 \ IF B9>0 THEN 1760
1750 C9=360-57.296*ATN(ABS(B9/A9)) \ GOTO 1765
1755 C9=0 \ GOTO 1765 
1760 C9=57.296*ATN(ABS(B9/A9))
1765 PRINT R9, C9 
1770 RETURN 
1780 REM - SUBROUTINE TO SORT NUMERICAL LIST IN ASCENDING ORDER.  
1785 REM - MAXIMUM NUMBERS ON THE LIST IS 100 
1790 DIM A(100) 
1795 FOR I=1 TO N 'N<=100 AND SHOULD BE ASSIGNED IN THE MAIN PROGRAM. 
1800 READ A(I) \ NEXT I 'READ DATA FROM LINE 2000 TO 2040.
1805 PRINT "UNSORTED LIST"
1810 FOR I=1 TO N \ PRINT A(I) \ NEXT I 
1815 FOR I=1 TO N-1 \ FOR J=I+1 TO N \ IF A(I)<=A(J) THEN 1825
1820 Z=A(I) \ A(I)=A(J) \ A(J)=Z
1825 NEXT J \ NEXT I
1830 PRINT\ PRINT"SORTED LIST"
1835 FOR I=1 TO N\ PRINT A(I) \ NEXT I
1840 RETURN 
1845 END
2046 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search