home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
PROGRAMS
/
LIST
/
NECSET.ASM
< prev
next >
Wrap
Assembly Source File
|
2000-06-30
|
3KB
|
136 lines
; PROGRAM NECSET.ASM
;
; WRITTEN BY KENT WALKER
; OCTOBER, 1982
;
; 8080 ASSEMBLER CODE
; USING CP/M BDOS FUNCTIONS
;
; THIS PROGRAM IS DESIGNED
; TO SET THE
; >>>>>>>>NEC-8023A-C<<<<<<<<
; PRINTER PARAMETERS
; VIA KEYBOARD INPUT.
;
; A TABLE OF OPTIONS IS PRESENTED ON THE MONITOR.
; INPUT IS TERMINATED BY A CARRIAGE RETURN.
; INPUT CHARACTERS MUST BE IN UPPER CASE.
;
ORG 100H
BDOS EQU 0005H
INCHR EQU 1 ;KEYBOARD INPUT FUNCTION
LSTCHR EQU 5 ;CHARACTER TO LIST DEVICE FUNCTION
CR EQU 000DH ;CARRIAGE RETURN
LF EQU 000AH ;LINE FEED
TAB EQU 0009H ;TAB CHARACTER
CLRSCR EQU 001AH ;CLEAR SCREEN - CTRL Z - OSBORNE & TELEVIDEO
ESC EQU 001BH ;ESCAPE CODE
SO EQU 000EH ;SOCODE
SI EQU 000FH ;SI CODE
PRSTR EQU 9 ;PRINT STRING FUNCTION
BOOT EQU 0 ;WARM BOOT
;
LXI SP,STACK ;SET UP STACK
LXI D,MESAGE ;POINT TO MESSAGE
MVI C,PRSTR ;STRING PRINT FUNCTION
CALL BDOS
;
LOOP MVI C,INCHR
CALL BDOS
CPI CR ;CARRIAGE RETURN ENDS INPUT
JZ BOOT
;
LXI H,PICA ;TEST FOR 'B'
CPI 'B'
JZ LIST
;
LXI H,ELITE ;TEST FOR 'C'
CPI 'C'
JZ LIST
;
LXI H,MICRON ;TEST FOR 'D'
CPI 'D'
JZ LIST
;
LXI H,PROP ;TEST FOR 'P'
CPI 'P'
JZ LIST
;
LXI H,EMPH ;TEST FOR 'E'
CPI 'E'
JZ LIST
;
LXI H,NOEMPH ;TEST FOR 'F'
CPI 'F'
JZ LIST
;
LXI H,DBLWD ;TEST FOR '2'
CPI '2'
JZ LIST
;
LXI H,SNGLWD ;TEST FOR '1'
CPI '1'
JZ LIST
;
LXI H,SIXLPI ;TEST FOR '6'
CPI '6'
JZ LIST
;
LXI H,EITLPI ;TEST FOR '8'
CPI '8'
JZ LIST
;
JMP LOOP
;
;
; SUBROUTINE TO OUTPUT ESCAPE CODE TO PRINTER
;
LIST MOV E,M ;MOVE CHAR TO REG E
PUSH H ;SAVE STRING POINTER
MVI C,LSTCHR ;SET UP FOR LINE PRINTER
CALL BDOS ;PRINT CHARACTER
POP H ;RESTORE STRING POINTER
INX H ;POINT TO NEXT CHAR
MOV A,M ;MOVE NEXT CHAR TO REG A
CPI '$' ;IS IT THE TERMINATOR ($) ?
JZ LOOP ;RETURN IF YES
JMP LIST ;ELSE REPEAT
;
; END OF SUBROUTINE
;
;
; MESSAGES
;
MESAGE DB CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',CR,LF,LF
DB TAB,'B = 10 CHARACTERS PER INCH',CR,LF
DB TAB,'C = 12 CHARACTERS PER INCH',CR,LF
DB TAB,'D = 17 CHATACTERS PER INCH',CR,LF
DB TAB,'P = PROPORTIONAL SPACING' ,CR,LF,LF
DB TAB,'E = EMPHASIZED PRINT' ,CR,LF
DB TAB,'F = NON-EMPHASIZED PRINT' ,CR,LF,LF
DB TAB,'2 = DOUBLE WIDTH PRINT' ,CR,LF
DB TAB,'1 = SINGLE WIDTH PRINT' ,CR,LF,LF
DB TAB,'6 = 6 LINES PER INCH' ,CR,LF
DB TAB,'8 = 8 LINES PER INCH' ,CR,LF,LF
DB '$'
;
; TABLE OF PRINTER ESCAPE CODES
;
PICA DB ESC,'N$'
ELITE DB ESC,'E$'
MICRON DB ESC,'Q$'
PROP DB ESC,'P$'
EMPH DB ESC,'!$'
NOEMPH DB ESC,'"$'
DBLWD DB SO, '$'
SNGLWD DB SI, '$'
SIXLPI DB ESC,'A$'
EITLPI DB ESC,'B$'
;
; STACK AREA
;
DS 10H
STACK
;
END