* * $Id: pkchar.s,v 1.1.1.1 1996/02/15 17:54:49 mclareni Exp $ * * $Log: pkchar.s,v $ * Revision 1.1.1.1 1996/02/15 17:54:49 mclareni * Kernlib * * MODULE M_PKCHAR % % CERN PROGLIB# M427 PKCHAR .VERSION KERNNOR 1.05 810521 % ORIG. H.OVERAS, CERN, 810609 % % CALL PKCHAR(IV,XVM,N,MPAR) PACK CHARACTER-VECTOR % MPAR = NBITS,NCHAR,NZONE,IGNOR,NFILL % IMPORT-D SLATE EXPORT PKCHAR ROUTINE PKCHAR LIB PKCHAR VBAS: STACK FIXED PAR: W BLOCK 4 NBITS: W BLOCK 1 NCHAR: W BLOCK 1 NZONE: W BLOCK 1 IGNOR: W BLOCK 1 NFILL: W BLOCK 1 NM: W BLOCK 1 TEMP: W BLOCK 1 NBDONE:W BLOCK 1 NBE: W BLOCK 1 JGM: W BLOCK 1 NBITSW:W DATA 32 NHIGH: W BLOCK 1 NLOW: W BLOCK 1 ENDSTACK PKCHAR: ENTF VBAS W1:=IND(B.PAR+8) IF>=GO L24 W1+1 W MOVE B.NFILL,IND(B.PAR+4)(R1) GO L22 L41: W COMP2 B.NZONE,B.NBITSW IF=GO L21 W SUB3 B.NBITSW,B.IGNOR,R3 W SUB3 B.NZONE,B.NBITS,B.NBE W INCR B.NBE W4:=B.NCHAR IF=GO L42 W4 MULAD B.NBITS,B.IGNOR W4 COMP B.NBE IF>=GO L42 W4=:B.NBE L42: W MOVE B.IGNOR,B.NBDONE L43: W TEST R3 IF>=GO L44 W3+B.NBITSW W1+1 W MOVE B.NFILL,IND(B.PAR+4)(R1) GO L43 L44: W3-B.NBITS IFGO SPEC W4:=IND(B.PAR)(R2) W4 PUTBF IND(B.TEMP)(R1),B.JGM+3,B.NBITS+3 GO L58 SPEC: W4=:B.NHIGH W SUB3 B.NBITSW,B.JGM,B.NLOW W4:=IND(B.PAR)(R2) W4 PUTBF IND(B.TEMP)(R1),B.JGM+3,B.NLOW+3 W MUL2 B.NLOW,-1:B W SUB2 B.TEMP,4 W SHL R4,B.NLOW+3 W4 PUTBF IND(B.TEMP)(R1),0:B,B.NHIGH+3 L58: W LOOPI R2,B.NM,L59 OUT: W INCR R1 W1=:SLATE RET L59: W ADD2 B.NBDONE,B.NBITS W COMP2 B.NBDONE,B.NBE IF