100H: /* SHOW AN ASCII TABLE FROM 32 TO 127 */ /* CP/M BDOS SYSTEM CALL */ BDOS: PROCEDURE( FN, ARG ); DECLARE FN BYTE, ARG ADDRESS; GOTO 5; END; /* I/O ROUTINES */ PR$CHAR: PROCEDURE( C ); DECLARE C BYTE; CALL BDOS( 2, C ); END; PR$STRING: PROCEDURE( S ); DECLARE S ADDRESS; CALL BDOS( 9, S ); END; PR$BYTE: PROCEDURE( N ); DECLARE N BYTE; DECLARE V BYTE; V = N MOD 100; CALL PR$CHAR( ' ' ); CALL PR$CHAR( '0' + ( N / 100 ) ); CALL PR$CHAR( '0' + ( V / 10 ) ); CALL PR$CHAR( '0' + ( V MOD 10 ) ); END PR$BYTE; /* ASCII TABLE */ DECLARE ( A, C ) BYTE; DO C = 32 TO 32 + 15; DO A = C TO C + ( 16 * 5 ) BY 16; CALL PR$BYTE( A ); CALL PR$STRING( .': $' ); IF A = 32 THEN CALL PR$STRING( .'SPC$' ); ELSE IF A = 127 THEN CALL PR$STRING( .'DEL$' ); ELSE DO; CALL PR$CHAR( ' ' ); CALL PR$CHAR( A ); CALL PR$CHAR( ' ' ); END; END; CALL PR$STRING( .( 0DH, 0AH, '$' ) ); END; EOF