27 lines
910 B
Plaintext
27 lines
910 B
Plaintext
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
|