/ 2 OS/8 V3D FORTRAN II CHARACTER STRING SUBROUTINES / / VERSION 2 ( HIGH SPEED ) / / 22-MAR-74 (SUBSC-VERSION) WOLFGANG HOUBEN / 2-NOV-78 WOLFGANG HOUBEN / / 1) FUNCTION LGET( STRING , INDEX ) / / 2) SUBROUTINE LSET( STRING , INDEX , CHAR ) / / DEFINITIONEN / OPDEF BSW 7002 OPDEF TADI 1400 OPDEF DCAI 3400 OPDEF JMPI 5400 ENTRY LSET ENTRY LGET / / VARIABLEN / STRING, BLOCK 1 / STRINGADDRESSE INDEX, BLOCK 1 / CHARACTERINDEX CHAR, BLOCK 1 / CHARACTERCODE / / FUNCTION LGET / LGET, BLOCK 1 / ENTRYPOINT 2 / VERSION 2 TAD LGET DCA CDF1 / CDF CALL CDF1, HLT TADI LGET# DCA CDF3 / CDF STRING INC LGET# TADI LGET# DCA STRING / STRING ADDR INC LGET# TADI LGET# DCA CDF2 / CDF INDEX INC LGET# TADI LGET# DCA INDEX / INDEX ADDR INC LGET# CDF2, HLT CLA CMA TADI INDEX / GET INDEX DCA INDEX / INDEX - 1 TAD INDEX CLL RAR / MAKE WORD INDEX TAD STRING DCA STRING / WORDADDR TAD INDEX CLL RAR CLA CDF3, HLT TADI STRING / GET WORD SNL / LEFT OR RIGHT BYTE ? BSW / LEFT ! AND (77 / MASK 6BIT DCA STRING / SAVE IT CLA CLL IAC RAL / AC = 2 TAD CDF1 DCA CIF1 CIF1, HLT / CDI CALL TAD STRING / GET RESULT JMPI LGET# / FAST RETURN / / SUBROUTINE LSET / LSET, BLOCK 1 / ENTRYPOINT 2 / VERSION 2 TAD LSET DCA CDF4 / CDF CALL CDF4, HLT TADI LSET# DCA CDF5 / CDF STRING INC LSET# TADI LSET# DCA STRING / STRING ADDR INC LSET# TADI LSET# DCA CDF6 / CDF INDEX INC LSET# TADI LSET# DCA INDEX / INDEX ADDR INC LSET# TADI LSET# DCA CDF7 / CDF CHAR INC LSET# TADI LSET# DCA CHAR / CHAR ADDR INC LSET# CDF6, HLT CLA CMA TADI INDEX DCA INDEX / INDEX - 1 CDF7, HLT TADI CHAR AND (77 / MASK 6 BIT DCA CHAR TAD INDEX CLL RAR / WORDINDEX TAD STRING DCA STRING / WORDADDR TAD INDEX CLL RAR CLA CDF5, HLT TADI STRING / GET WORD SNL / LEFT OR RIGHT BYTE ? BSW AND (7700 / MASK LEFT HALF TAD CHAR SNL BSW DCAI STRING / RESTORE WORD CLA CLL IAC RAL / AC = 2 TAD CDF4 DCA CIF2 / CDI CALL CIF2, HLT JMPI LSET# / END