ASMB,R,Q,C * NAME: GETST * SOURCE: 92070-18196 * RELOC: 92070-1X196 * PGMR: HLC * * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * * NAM GETST,7 92070-1X196 REV.1941 790205 ENT GETST * EXT .ENTR,EXEC,.LBT,.SBT * A EQU 0 B EQU 1 * * D14 DEC 14 D1 DEC 1 COMLN NOP FROM NOP TO NOP COMA OCT 54 * BUFF NOP CNT NOP TLOG NOP GETST NOP ENTRY POINT JSB .ENTR GET PARAMETER ADDRESSES DEF BUFF JSB EXEC GET THE ORIGINAL STRING DEF *+5 DEF D14 DEF D1 DEF BUFF,I DEF CNT,I SZB,RSS JMP EXIT NO STRING AVAILABLE * LDA CNT,I SSA,RSS IF REQUEST WAS POSITIVE, B CONTAINS WORD COUNT BLS CONVERT TO CHARACTER COUNT CMB,INB STB COMLN NEGATIVE NO. OF CHARS LDA =D-2 STA PUT COMMA COUNTER LDA BUFF RAL CONVERT TO BYTE ADDRESS STA FROM STA TO LP1 JSB GET THROW AWAY EVERYTHING UNTIL SECOND COMMA ISZ COMLN RSS JMP TLOG. THERE WERE LESS THAN 2 COMMAS CPA COMA ISZ PUT JMP LP1 LP2 JSB GET NOW SHIFT THE REST OF THE LINE JSB PUT TO THE START OF THE BUFFER ISZ COMLN JMP LP2 * TLOG. LDB BUFF COMPUTE NUMBER OF VALID CHARACTERS RBL CMB,INB ADB TO STB TLOG,I NUMBER OF CHARACTERS PASSED LDA =B40 SLB JSB PUT PAD WITH SPACE IF ODD NUMBER * LDB TLOG,I INB BRS ROUND UP TO NO. OF WORDS LDA CNT,I SSA,RSS EXIT STB TLOG,I WORDS WERE REQUESTED JMP GETST,I * * * GET NOP GET A CHARACTER FROM THE BUFFER LDB FROM JSB .LBT LOAD A BYTE STB FROM JMP GET,I * * * PUT NOP PUT A CHARACTER INTO THE BUFFER LDB TO JSB .SBT STORE A BYTE STB TO JMP PUT,I * END