0060 7A mov a,d
0061 F6 08 ori 08
0063 57 mov d,a
0064 32 04 80 sta PPI ; снятие выбора Х (!CS = 1)
;----------------------------------------
; Вычисление функций Yi
;----------------------------------------
; Вычисление Y1
0067 7E mov a,m ; выделение !Х3
0068 E6 04 ani 4
006A 1F rar
006B 1F rar
006C EE 01 xri 1
006E 4F mov c,a
006F 7E mov a,m ; выделение !Х2
0070 E6 02 ani 2
0072 1F rar
0073 EE 01 xri 1
0075 47 mov b,a
0076 7E mov a,m ; выделение Х1
0077 E6 01 ani 1
0079 A0 ana b
007A A1 ana c ; Y1
007B 23 inx h
007C 77 mov m,a ; запись Y1 в таблицу
; Вычисление Y2
007D 21 01 08 lxi h,DT+1
0080 7E mov a,m ; А <- N2
0081 23 inx h
0082 86 add m ; A <- A+N1
0083 DA 9D 00 jc Y3 ; если перенос, то N1+N2 > K
0086 47 mov b,a
0087 3A 20 80 lda K
008A 90 sub b
008B DA 91 00 jc CMP_Q ; если перенос, то N1+N2 > K
008E 3A 20 80 lda K ; иначе N1+N2 <= K
0091 3A 3E 02 CMP_Q: lda Q
0094 90 sub b
0095 DA 9D 00 jc Y3 ; если перенос, то Y2=0 (Y3=1)
0098 3E 01 mvi a,1
009A C3 9F 00 jmp SAVEY2 ; иначе, то Y2=1 (Y3=0)
009D 3E 00 Y3: mvi a,0
009F 32 05 08 SAVEY2:sta DT+5 ; запись Y1 в таблицу
; Вычисление Y4
00A2 3A 00 08 lda DT
00A5 47 mov b,a
00A6 3A 40 02 lda A1
00A9 4F mov c,a
00AA CD 64 01 call MULT ; h = HIGH(N3*A1)
00AD 3A 3F 02 lda A0
00B0 84 add h ; A = A0+ HIGH(N3*A1)
00B1 32 06 08 sta DT+6 ; запись Y1 в таблицу
;----------------------------------------
; Вывод вычисленных величин
;----------------------------------------
; сигнал Y1
00B4 21 04 08 lxi h,DT+4
00B7 7E mov a,m
00B8 A7 ana a
00B9 CA D2 00 jz O_Y2
00BC 3E D0 mvi a,0d0h ; запись констант в 0-й канал
00BE 32 0C 80 sta PIT ; для сигнала Y1 (10 мкс)
00C1 3E 07 mvi a,07
00C3 32 0C 80 sta PIT
00C6 7A mov a,d
00C7 F6 20 ori 20h
00C9 32 04 80 sta PPI ; строб GATE0
00CC E6 0F ani 0fh
00CE 57 mov d,a
00CF 32 04 80 sta PPI
00D2 23 O_Y2: inx h
00D3 7E mov a,m
00D4 A7 ana a
00D5 CA E7 00 jz O_Y3
00D8 3A 41 02 lda L_FRQ ; запись констант в 1-й канал
00DB 32 0D 80 sta PIT+1 ; для сигнала Y2 (60 мкс)
00DE 3A 42 02 lda H_FRQ
00E1 32 0D 80 sta PIT+1
00E4 C3 F5 00 jmp EO_Y2
00E7 3A 41 02 O_Y3: lda L_FRQ ; запись констант в 1-й канал
00EA 07 Rlc ; для сигнала Y3 (120 мкс)
00EB 32 0D 80 sta PIT+1
00EE 3A 42 02 lda H_FRQ
00F1 07 rlc
00F2 32 0D 80 sta PIT+1
00F5 7A EO_Y2:mov a,d ; строб GATE1
00F6 F6 40 ori 40h
00F8 32 04 80 sta PPI
00FB E6 BF ani 0bfh
00FD 32 04 80 sta PPI
0100 57 mov d,a
0101 23 O_Y4: inx h ; вывод Y4 в ЦАП
0102 7E mov a,m
0103 32 24 80 sta OUT_REG
;----------------------------------------
; приготовление к новому циклу
;----------------------------------------
; обнуление признака повторного сбоя
0106 3A 02 08 lda SECOND
0109 A7 ana a
010A CA 15 01 jz C_MODE
010D 3E 00 mvi a,0
010F 32 02 08 sta SECOND
0112 32 06 80 sta PPI+2
0115 3A 06 80 C_MODE:lda PPI+2
0118 47 mov b,a
0119 E6 20 ani 20h ; если режим "тест" -
011B CA 2F 00 jz BEGIN ; переход к началу цикла
011E F3 di ; иначе (рабочий режим)
011F D5 push d ; заполнение таблицы DT_INT
0120 21 02 08 lxi h,DT+2
0123 11 01 08 lxi d,DT_INT
0126 0E 05 mvi c,5
0128 7E F_DTI: mov a,m
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.