32 lines
1.2 KiB
Text
32 lines
1.2 KiB
Text
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
|