35 lines
657 B
Plaintext
35 lines
657 B
Plaintext
100H:
|
|
|
|
/* CP/M CALL AND NUMBER OUTPUT ROUTINE */
|
|
BDOS: PROCEDURE (FN, ARG);
|
|
DECLARE FN BYTE, ARG ADDRESS;
|
|
GO TO 5;
|
|
END BDOS;
|
|
|
|
PRINT: PROCEDURE (STR);
|
|
DECLARE STR ADDRESS;
|
|
CALL BDOS(9, STR);
|
|
END PRINT;
|
|
|
|
PRINT$NUMBER: PROCEDURE (N);
|
|
DECLARE S (8) BYTE INITIAL ('.....',13,10,'$');
|
|
DECLARE (N, P) ADDRESS, C BASED P BYTE;
|
|
P = .S(5);
|
|
DIGIT:
|
|
P = P - 1;
|
|
C = N MOD 10 + '0';
|
|
N = N / 10;
|
|
IF N > 0 THEN GO TO DIGIT;
|
|
CALL PRINT(P);
|
|
END PRINT$NUMBER;
|
|
|
|
/* PRINT NUMBERS UNTIL ADDRESS VARIABLE OVERFLOWS */
|
|
DECLARE N ADDRESS INITIAL (1);
|
|
DO WHILE N <> 0;
|
|
CALL PRINT$NUMBER(N);
|
|
N = N + 1;
|
|
END;
|
|
|
|
CALL BDOS(0,0);
|
|
EOF
|