home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol028
/
remote.src
< prev
next >
Wrap
Text File
|
1984-04-29
|
2KB
|
71 lines
;
;
;PROCEDURE ACREMO(HCODE,UCODE,OPCODE,TIME: BYTE);
;
; THIS PROCEDURE WILL OUTPUT TO THE HOUSE CODE (HCODE) AND
; UNIT CODE (UCODE) THE OPERATION DENOTED BY OPCODE.
; THESE CODES ARE RECOGNIZED BY A SCITRONICS BSR INTERFACE
; BOARD AND THE BSR REMOTE COMMAND MODULES. UPON RECEIPT
; OF ONE OF THE CODE TYPES NOTED:
; ON= 18
; OFF= 50
; ALL LIGHTS OFF= 34
; ALL OFF= 2
; BRIGHT= 42
; DIM= 10
; AND= 26
; STOP= 0
;
; AN OPERATION WILL BE EXECUTED. WHEN PERFORMING A DIM FUNCTION
; THE TIME VALUE WILL BE USED. IN THIS CASE A TIME VALUE OF 255 MEANS
; THAT THE DIM WILL BE EXECUTED FOR 4 SECS. TIME VALUES ARE
; THEN LINEAR DOWN TO ZERO, WHERE ZERO MEANS NO OUTPUT.
;
;
; CONSTANTS:
SCIADDR EQU 20H; SCITRONICS CONTROLLER ADDRESS
DIM EQU 10; DIM FUNCTION = 10
BRIGHT EQU 42; BRIGHTENING FUNCTION
STOP EQU 0; CLEAR FUNCTION
BUSY EQU 128; BUSY BIT FOR SCI CONTROLLER
;
; STACK OFFSETS FOR VARIABLE ENTRY
TIME EQU 8;
OPCODE EQU 9;
UCODE EQU 10;
HCODE EQU 11;
;
; START OF PROCEDURE
;
NAME REMOTE
ENTRY ACREMO
ACREMO: ENTR D,2,0; MACRO SETUP ROUTINE
MVI A,STOP
OUT SCIADDR; CLEAR CONTROLLER
MOV A,HCODE(IX); GET HOUSE CODE
OUT SCIADDR
MOV A,UCODE(IX); GET USER CODE
OUT SCIADDR
MOV A,OPCODE(IX); OUTPUT OPERATION
OUT SCIADDR
CPI DIM; SEE IF IT IS THE DIM FUNCTION
JZ DIMCHK
CPI BRIGHT; SEE IF IT IS BRIGHTEN FUNCTION
JZ DIMCHK
FIN: IN SCIADDR
ANI BUSY ;SEE IF CONTROLLER IS FINISHED
JZ FIN
EXIT D,4; IF FINISHED DO EXIT MACRO
DIMCHK: MOV D,TIME(IX); STORE TIME VALUE
LP1: MVI C,09H; FIRST LOOP
LP2: MVI B,0FFH; SECOND LOOP
LP3: DCR B; THIRD LOOP
JNZ LP3
DCR C
JNZ LP2
DCR D
JNZ LP1
MVI A,STOP; TURNING OFF DIM FUNCTION
OUT SCIADDR;
JMP FIN; IF FINISHED GO TO FIN ROUTINE