Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
43
Task/Integer-overflow/PL-M/integer-overflow.plm
Normal file
43
Task/Integer-overflow/PL-M/integer-overflow.plm
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
100H: /* SHOW INTEGER OVERFLOW */
|
||||
|
||||
/* CP/M SYSTEM CALL */
|
||||
BDOS: PROCEDURE( FN, ARG ); DECLARE FN BYTE, ARG ADDRESS; GOTO 5; END;
|
||||
/* CONSOLE I/O ROUTINES */
|
||||
PRCHAR: PROCEDURE( C ); DECLARE C BYTE; CALL BDOS( 2, C ); END;
|
||||
PRSTRING: PROCEDURE( S ); DECLARE S ADDRESS; CALL BDOS( 9, S ); END;
|
||||
PRNL: PROCEDURE; CALL PRCHAR( 0DH ); CALL PRCHAR( 0AH ); END;
|
||||
PRNUMBER: PROCEDURE( N );
|
||||
DECLARE N ADDRESS;
|
||||
DECLARE V ADDRESS, N$STR( 6 ) BYTE, W BYTE;
|
||||
N$STR( W := LAST( N$STR ) ) = '$';
|
||||
N$STR( W := W - 1 ) = '0' + ( ( V := N ) MOD 10 );
|
||||
DO WHILE( ( V := V / 10 ) > 0 );
|
||||
N$STR( W := W - 1 ) = '0' + ( V MOD 10 );
|
||||
END;
|
||||
CALL PRSTRING( .N$STR( W ) );
|
||||
END PRNUMBER;
|
||||
|
||||
/* TASK */
|
||||
|
||||
/* THE ONLY TYPES SUPPORTED BY THE ORIGINAL PL/M COMPILER ARE */
|
||||
/* UNSIGED, BYTE IS 8 BITS AND ADDRESS IS 16 BITS */
|
||||
DECLARE SV BYTE, LV ADDRESS;
|
||||
|
||||
SV = 255; /* MAXIMUM BYTE VALUE */
|
||||
LV = 65535; /* MAXIMUM ADDRESS VALUE */
|
||||
|
||||
CALL PRSTRING( .'8-BIT: $' );
|
||||
CALL PRNUMBER( SV );
|
||||
CALL PRSTRING( .' INCREMENTS TO: $' );
|
||||
SV = SV + 1;
|
||||
CALL PRNUMBER( SV );
|
||||
CALL PRNL;
|
||||
|
||||
CALL PRSTRING( .'16-BIT: $' );
|
||||
CALL PRNUMBER( LV );
|
||||
CALL PRSTRING( .' INCREMENTS TO: $' );
|
||||
LV = LV + 1;
|
||||
CALL PRNUMBER( LV );
|
||||
CALL PRNL;
|
||||
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue