100H: /* TWO'S COMPLEMENT *? /* CP/M BDOS SYSTEM CALL */ BDOS: PROCEDURE( FN, ARG ); DECLARE FN BYTE, ARG ADDRESS; GOTO 5;END; /* CONSOLE OUTPUT ROUTINES */ PR$CHAR: PROCEDURE( C ); DECLARE C BYTE; CALL BDOS( 2, C ); END; PR$NL: PROCEDURE; CALL PR$CHAR( 0DH ); CALL PR$CHAR( 0AH ); END; PR$HEX: PROCEDURE( B ); /* PRINTS B AS A 2 DIGIT HEX NUMBER */ DECLARE B BYTE; DECLARE D BYTE; IF ( D := SHR( B, 4 ) ) > 9 THEN CALL PR$CHAR( ( D - 10 ) + 'A' ); ELSE CALL PR$CHAR( D + '0' ); IF ( D := B AND 0FH ) > 9 THEN CALL PR$CHAR( ( D - 10 ) + 'A' ); ELSE CALL PR$CHAR( D + '0' ); END PR$HEX ; DECLARE A BYTE; A = 1; CALL PR$HEX( A ); CALL PR$CHAR( ' ' ); A = -A; CALL PR$HEX( A ); CALL PR$NL; EOF