DEFSEG RAM_BUF2,CLASS=DATA,START=RAM+TEXTSIZE
SEG RAM_BUF2
BUF2 DS TEXTSIZE
DEFSEG RAM_BUF3,CLASS=DATA,START=RAM+TEXTSIZE*2
SEG RAM_BUF3
BUF3 DS TEXTSIZE
;STACK
STACKSIZE EQU 32
DEFSEG STACK,CLASS=DATA,START=RAM+LEN_RAM-STACKSIZE
SEG STACK
STACKR DS STACKSIZE
STPOINT EQU $ ;
;
;MASKS FOR 2EXAPLES
MASK11 EQU 00000011B ;
MASK12 EQU 01010000B ;
;FLAGS
DEFSEG RAM_VARI,CLASS=DATA,START=RAM+0C0H
SEG RAM_VARI
PASS1 DS 1
FLGZGR DS 1 ;1=LOAD BUFFER, 0=MASK INTERRUPT
19.1.
ADDR DW 820H
;
;MACROCOMMAND
INIT1 %MACRO BU,SIM,SZ
%LOCAL LOOP_INIT
LXI H,BU
MVI B,SZ
LOOP_INIT:
MVI M,SIM
INX H
DCR B
JNZ LOOP_INIT
%ENDM
SEG IOSPACE,START=0
CS8155 DS 1 ; COMMAND/STATUS REG OF 8155 IN I/O SPACE
PA8155 DS 1 ; PORT A OF 8155 IN I/O SPACE
PB8155 DS 1
PC8155 DS 1 ; PORT C OF 8155 IN I/O SPACE
TL8155 DS 1 ; TIMER LOW PART OF 8155 IN I/O SPACE
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
JMP PROG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DEFSEG RST65SEG,CLASS=CODE,START=34H
SEG RST65SEG
PUSH PSW
PUSH H
IN PB8155 ;в задаче вместо PB8155 надо писать 0E0H
XRI 10100001B
LHLD POINT
MOV M,A
POP H
POP PSW
EI
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INX H
DCR B
JZ SET_FLAG
POP PSW
EI
19.1.
RET
SET_FLAG:
MVI A,0
STA FLGZGR
POP PSW
EI
RET
SEG CODE
PROG: LXI SP,STPOINT
MVI A,00001101B ;SET MASK TO RST7.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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.