TH8155 DS 1 ; TIMER HIGH PART OF 8155 IN I/O SPACE
DEFSEG PA8355SEG,START=8,CLASS=IOSPACE
SEG PA8355SEG
PA8355 DS 1 ; PORT A OF 8355 IN I/O SPACE
PB8355 DS 1 ; PORT B OF 8355 IN I/O SPACE
DA8355 DS 1 ; DDR OF PORT A OF 8355 IN I/O SPACE
DB8355 DS 1 ; DDR OF PORT B OF 8355 IN I/O SPACE
;
;PROGRAMM
DEFSEG STARTSEG,CLASS=CODE,START=0
SEG STARTSEG
LXI SP,STPOINT
; JMP ZAD1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Нечет.
; JMP ZAD3
; JMP ZAD5
; JMP ZAD19
; JMP ZAD21
JMP PROG
DEFSEG RST75SEG,CLASS=CODE,START=3CH
SEG RST75SEG
PUSH PSW
IN PB8155
MOV M,A
INX H
DCR B
JZ SET_FLAG
POP PSW
EI
RET
SET_FLAG:
MVI A,0
STA FLGZGR
POP PSW
EI
RET
SEG CODE
PROG: LXI SP,STPOINT
MVI A,00001011B ;SET MASK TO RST6.5, RST5.5
SIM
INIT1 STACKR,'.',STACKSIZE
INIT1 BUF1,'1',TEXTSIZE-1
INIT1 BUF2,'2',TEXTSIZE-1
INIT1 BUF3,'3',TEXTSIZE-1
MVI A,1
STA FLGZGR
MVI A,0 ;ALL INPUT
OUT DB8355
LXI H,BUF1+TEXTSIZE-1 ;END OF BUF1
DCR A
OUT DA8355 ;ALL OUTPUT
; BIT= 76543210
MVI A,00101000B ;B7,6=TIMER-STOP,
;B5,4=INTB-DESABLE, INTA -ENABLE,
;B3,2=ALT4
OUT CS8155 ;PORT A,B 8155 - INPUT
;
; MAIN
;
Нечет.
LXI H,BUF1
MVI B,TEXTSIZE-1 ;1BYTE - END BUFFER +
;1BYTE - EMPTY BYTE FROM INPUT_FILE
IN PB8155 ;ONLY FOR THE ACTIVATE INPUT FILE
EI
WAITBUFFER:
LDA FLGZGR
ORA A
JNZ WAITBUFFER ;WAIT BUFFER
MVI A,00001111B ;MASK FROM ALL INTERRUPT
SIM
LXI H,BUF1
CALL KONSUM
LXI D,BUF2
MVI A,1
STA PASS1
LOOP1:
MOV A,M
ORA A
JZ ENDTEXT
CALL CODING
STAX D
INX H
INX D
JMP LOOP1
ENDTEXT:
STAX D
LDA PASS1
ORA A
MVI A,0
STA PASS1
JZ HALT
PRODOLJ:
LXI H,BUF2
LXI D,BUF3
JMP LOOP1
;
HALT:
DI
LXI H,BUF3
CALL KONSUM
; OUTPUT FROM THE PORT B
LXI H,BUF2
MVI B,TEXTSIZE-1
LOOPOUT:
MOV A,M
OUT PA8355
INX H
DCR B
JNZ LOOPOUT
HLT
CODING:
;SUBROUTINE
CMA
RET
Чет.
$ALLPUBLIC
$TITLE(TITLE 'LAB-RAB5. I8085 2009 =L_01.A85')
;-------------------------------------------------
; L_01.A85
; ВАРИАНТ ПРОГРАММЫ ИЗ НЕСКОЛЬКИХ ИСХОДНЫХ ФАЙЛОВ
; РАЗДЕЛ 7 ЛАБОРАТОРНОГО ПРАКТИКУМА
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.