Trailing-Edge
-
PDP-10 Archives
-
CFS_TSU04_19910205_1of1
-
update/cblsrc/pnz.mac
There are 7 other files named pnz.mac in the archive. Click here to see a list.
; UPD ID= 1039 on 4/29/83 at 12:06 AM by NIXON
TITLE PNZ FOR COBOTS.
SUBTTL DETERMINE IF A STRING IS POSITIVE, NEGATIVE OR ZERO /ACK
SEARCH COPYRT
SALL
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
COPYRIGHT (C) 1974, 1983, 1984 BY DIGITAL EQUIPMENT CORPORATION
SEARCH LBLPRM ;DEFINE PARAMETERS.
%%LBLP==:%%LBLP
EXTERN EASTB. ;FORCE EASTBL TO BE LOADED.
HISEG
.COPYRIGHT ;Put standard copyright statement in REL file
;REVISION HISTORY:
;V10 *****
; 28-JAN-76 [424] FIX ZERO
; 19-DEC-74 /ACK CREATION.
; 5/15/75 /DBT/ BIS
;*****
COMMENT \
THIS ROUTINE IS USED TO DETERMINE IF A STRING IS POSITIVE OR
IF A STRING IS NEGATIVE OR IF A STRING IS ZERO.
CALL:
MOVEI 16,PARAMETER ADDRESS
PUSHJ 17,POS.6/POS.7/POS.9/NEG.6/NEG.7/NEG.9/ZERO.6/ZERO.7/ZERO.9
PARAMETERS:
BITS 0-5 BYTE POINTER RESIDUE FOR INPUT FIELD.
BIT 6 1 IF AN OPERATIONAL SIGN IS PRESENT.
BITS 7-17 SIZE OF THE INPUT FIELD.
BITS 18-35 ADDRESS OF THE FIRST CHARACTER OF THE INPUT FIELD.
RETURNS:
CALL+1 IF THE TEST FAILS.
CALL+2 IF THE TEST SUCCEEDS.
REGISTERS USED:
CH, T1 (ALIAS CH), T2, SW, JAC, PARM, CNT
\
;THE POSITIVE TEST:
ENTRY POS.6 ;IF THE INPUT IS SIXBIT.
ENTRY POS.7 ;IF THE INPUT IS ASCII.
ENTRY POS.9 ;IF THE INPUT IS EBCDIC.
POS.6: JSP BISCH, POS ;ENTER HERE IF THE INPUT IS SIXBIT,
POS.7: JSP BISCH, POS ; HERE IF IT IS ASCII AND
BLOCK 1
POS.9: JSP BISCH, POS ; HERE IF IT IS EBCDIC.
POS:
SUBI BISCH,POS.6-5 ;COMPUTE BYTE SIZE.
HRLI PARM,(<Z DSTHI,0>) ;PUT DESTINATION AC INTO PARM
PUSHJ PP, GDX.## ;CONVERT TO BINARY
JUMPL DSTHI,RET.1## ;NEGATIVE
CAIN DSTLO,0
CAIE DSTHI,0
AOS (PP) ;POSITIVE
POPJ PP, ;ZERO
;THE NEGATIVE TEST:
ENTRY NEG.6 ;IF THE INPUT IS SIXBIT.
ENTRY NEG.7 ;IF THE INPUT IS ASCII.
ENTRY NEG.9 ;IF THE INPUT IS EBCDIC.
NEG.6: JSP BISCH, NEG ;ENTER HERE IF THE INPUT IS SIXBIT,
NEG.7: JSP BISCH, NEG ; HERE IF IT IS ASCII AND
BLOCK 1
NEG.9: JSP BISCH, NEG ; HERE IF IT IS EBCDIC.
NEG:
SUBI BISCH,NEG.6-5 ;COMPUTE BYTE SIZE.
HRLI PARM,(<Z DSTHI,0>) ;PUT DESTINATION AC INTO PARM
PUSHJ PP,GDX.
JUMPL DSTHI,RET.2## ;NEGATIVE
POPJ PP, ;POS/ZERO
;THE ZERO TEST:
ENTRY ZERO.6 ;IF THE INPUT IS SIXBIT.
ENTRY ZERO.7 ;IF THE INPUT IS ASCII.
ENTRY ZERO.9 ;IF THE INPUT IS EBCDIC.
ZERO.6: JSP BISCH, ZERO ;ENTER HERE IF THE INPUT IS SIXBIT,
ZERO.7: JSP BISCH, ZERO ; HERE IF IT IS ASCII AND
BLOCK 1
ZERO.9: JSP BISCH, ZERO ; HERE IF IT IS EBCDIC.
ZERO:
SUBI BISCH,ZERO.6-5 ;COMPUTE BYTE SIZE.
HRLI PARM,(<Z DSTHI,0>) ;PUT DESTINATION AC INTO PARM
PUSHJ PP,GDX.
CAIN DSTLO,0 ; [424] IS LOW PART ZERO?
CAIE DSTHI,0
POPJ PP, ;NON-ZERO
JRST RET.2## ;ZERO
END