home *** CD-ROM | disk | FTP | other *** search
- ;
- ; SYSLIB Module Name: SCPOUT
- ; Author: Richard Conn
- ; SYSLIB Version Number: 2.0
- ; Module Version Number: 1.0
- ; Module Entry Points:
- ; CPOUT
- ; Module External References:
- ; POUT
- ;
-
- ;
- ; CPOUT --
- ; PUNCH OUTPUT ROUTINE WITH CONTROL CHARACTER PROCESSING
- ; OUTPUT CHAR IN REG A ON PUN:
- ; AFFECT NO REGISTERS OR FLAGS
- ;
- EXT POUT
-
- CPOUT::
- CPI ' ' ; CHECK FOR LESS THAN <SP>
- JNC POUT ; PROCESS NORMALLY IF EQUAL OR GREATER
- ; TRAP OUT <NULL>, <BEL>, <BS>, <LF>, <CR>
- CPI NULL ; <NULL>
- JZ POUT
- CPI BEL ; <BEL>
- JZ POUT
- CPI BS ; <BS>
- JZ POUT
- CPI LF ; <LF>
- JZ POUT
- CPI CR ; <CR>
- JZ POUT
- ; PRINT AS CTRL-CHAR
- PUSH PSW ; SAVE A
- PUSH PSW
- MVI A,'^' ; PRINT UP ARROW
- CALL POUT
- POP PSW ; GET CHAR
- ADI 40H ; CONVERT TO CHAR
- CALL POUT
- POP PSW ; RESTORE A
- RET
-
- ;
- ; ASCII SPECIAL CHARACTER EQUATES
- ;
- NULL EQU 0 ; NULL
- BEL EQU 7 ; BELL
- BS EQU 8 ; BACKSPACE
- TAB EQU 9 ; TAB
- LF EQU 10 ; LINE FEED
- CR EQU 13 ; CARRIAGE RETURN
- CTRLR EQU 'R'-40H ; CTRL-R
- CTRLU EQU 'U'-40H ; CTRL-U
- CTRLX EQU 'X'-40H ; CTRL-X
- DEL EQU 7FH ; DELETE CHAR
-
- END
-