Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
013-bot.docx
Скачиваний:
11
Добавлен:
01.05.2025
Размер:
382 Кб
Скачать
☆

Исходные определения и ручной расчет результатов работы программы: «Цифровой фильтр»

Разностное уравнение представим в виде:

yn = xn + 1.02xn-2 – 0.04 yn-2 = xn + xn-2 + k1xn-2 – k2 yn-2 ; k1 = 0.02 ; k2 = 0.04

1.Реализуемый коэффициент масштабирования kmp (число без знака) при 8-разрядном формате беззнаковых коэффициентов:

; где

(10) kmp=,0111 1100 (2)=7C(16)= 0.484375(10)

2.Реализуемые коэффициенты разностного уравнения k1 и k2 (число без знака) при 8-разрядном формате беззнаковых коэффициентов:

k1=0.02(10) k1=.0000 0101(2)=05(16)=0.01953125(10)

k2=0.04(10) k2=.0000 1010(2)=0A(16)=0.0390625(10)

3.Код АЦП для положительного входного отчёта максимальной амплитуды (немасштабированный отчёт):

Xn=0111 1111(2)=7F(16)

4.Масштабироывнный входной положительный отсчёт максимальной амплитуды:

xn=kmpxn=,0111 1100(2)∙0.111 1111(2)≈0.011 1101(2)=3D(16)=+0.4765625(10)

5.Зададим состояние памяти для положительных входных отсчётов и отрицательных выходных отсчётов максимальной амплитуды:

Для положительных входных отсчётов

Адрес ячейки памяти

Содержимое ячейки памяти

0800h (порт РА РФ55)

xn=7F(16) немасштабированный входной отсчет

30h

Вычисляется программой в текущем цикле:

Xn=3D(16)=0.0111101(2)=+0.4765625(10), масштабированный входной отсчёт

31h

Xn-1=3D(16)=0.0111101(2)=+0.4765625(10)

32h

Xn-2=3D(16)=0.0111101(2)=+0.4765625(10)

40h

Вычисляется программой в текущем цикле:

yn=7D(16)

41h

yn-1=C3(16)=1.100 0011(2)=-0.4765625(10)

42h

yn-2=C3(16)=1.100 0011 (2)=-0.4765625(10)

50h

Вычисляется программой в текущем цикле:

p1n=01(16)

51h

Вычисляется программой в текущем цикле:

p2n=FE(16)

6.Получим произведение p1n:

p1n=k1xn=05(16)∙3D(16)=.0000 0101(2)∙0.011 1101(2)≈0.000 0001(2)=01(16)=0.0078125(10)

7.Получим модуль произведения отрицательного отсчёта yn-2 на коэффициент k2

P2n=k2∙|yn-2|=0A(16)∙3D(16)=.0000 1010(2)∙0.011 1101(2)≈0.000 0010(2)=02(16)=0.015625(10)

8.Вычислим выходной отсчёт:

yn=xn+xn-2+p1n-(-|p2n|)= xn+xn-2+p1n+|p2n||=3D(16)+3D(16)+01(16)+02(16)=7D(16)=+0.9765625(10);

Для отрицательного входного отсчёта

Адрес ячейки памяти

Содержимое ячейки памяти

0800h (порт РА РФ55)

xn=7F(16) немасштабированный входной отсчет

30h

Вычисляется программой в текущем цикле:

Xn=С3(16)=1.1000011(2)=-0.4765625(10), масштабированный входной отсчёт

31h

Xn-1=С316)=1.1000011 (2)=-0.4765625(10)

32h

Xn-2=С3(16)=1.1000011 (2)=-0.4765625(10)

40h

Вычисляется программой в текущем цикле:

yn=83(16)

41h

yn-1=3D(16)=0.0111101 (2)=+0.4765625(10)

42h

yn-2=3D(16)=0.0111101 (2)=+0.4765625(10)

50h

Вычисляется программой в текущем цикле:

p1n=FF(16)

51h

Вычисляется программой в текущем цикле:

p2n=02(16)

6.Получим произведение p2n:

P2n=k2∙yn-2=0A(16)∙3D(16)=.0000 1010(2)∙0.011 1101(2)≈0.000 0010(2)=02(16)=0.015625 (10)

7.Получим модуль произведения отрицательного отсчёта Xn-2 на коэффициент k1

|p1n|=k1|xn|=05(16)∙3D(16)=.0000 0101(2)∙0.011 1101(2)≈0.000 0001(2)=01(16)=0.0078125(10)

8.Вычислим выходной отсчёт:

yn=xn+xn-2+p1n|-p2n|= C316)+C3(16)+FF(16)-02(16)=7D(16)=-0.9765625(10);

Расчётные значения и соответствующие им значения, вычисляемые программой, идентичны – программа работает правильно (без переполнения и логических ошибок).

;Программа "Цифровой фильтр"

;Автор Бочков В.В.

;Дата 25.04.2013

;Разностное уравнение Yn = Xn + Xn-2 + 0.02*Xn-2 - 0,04*Yn-2

;Определение символических имён операндов

B2: .EQU 92h ;линия P1.2 для вывода импульса

;запуска АЦП

PA: .EQU 0800h ;порт PA РФ55

PB: .EQU 0801h ;порт PB РФ55

RGRF1: .EQU 0802h ;регистр направления передачи

;порта РA РФ55

RGRF2: .EQU 0803h ;регистр направления передачи

;порта РB РФ55

SRF1: .EQU 00h ;управляющее слово для настройки

;порта PA РФ55

SRF2: .EQU FFh ;управляющее слово для настройки

;порта PB РФ55

TMOD: .EQU 89h ;регистр управления режимами

;таймеров-счётчиков

STMOD: .EQU 02h ;управляющее слово для настройки

;таймера-счётчика

TH0: .EQU 8Ch ;старший байт Т/С0

STH0: .EQU 83h ;управляющее слово для задания

;частоты переполнения T/C0

TR0: .EQU 8Ch ;управляющий бит пуска T/C0

IE: .EQU A8h ;регистр разрешения прерываний

SIE: .EQU 83h ;слово разрешения прерываний

;от T/C0 и входа INT0

B: .EQU F0h ;регистр В

K1: .EQU 05h ;1-ый коэффициент разностного уравнения

K2: .EQU 0Ah ;2-ой коэффициент разностного уравнения

KM: .EQU 7Ch ;коэффициент масштабирования

X: .EQU 30h ;ячейка хранения отсчёта Xn

X1: .EQU 31h ;ячейка хранения отсчёта Xn-1

X2: .EQU 32h ;ячейка хранения отсчёта Xn-2

Y: .EQU 40h ;ячейка хранения отсчёта Yn

Y1: .EQU 41h ;ячейка хранения отсчёта Yn-1

Y2: .EQU 42h ;ячейка хранения отсчёта Yn-2

PR1: .EQU 50h ;ячейка хранения произведения 0,04*Yn-2

PR2: .EQU 51h ;ячейка хранения произведения 0,02*Xn-2

.FILLCHAR 00h ;записать в пропусках

;между секциями нули

;Инициализация по сигналу RST

S0: .SECTION

.ORG 0000h

LJMP INIT ;переход к программе инициализации

S1: SECTION

.ORG 00A0h

INIT: MOV TMOD, #STMOD ;настройка режима Т/С0

MOV TH0, #STH0 ;задание частоты дискретизации

SETB TR0 ;пуск Т/С0

MOV A, #SRF1 ;настройка порта PA РФ55

MOV DPTR, #RGRF1 ;на ввод

MOVX @DPTR, A

MOV A, #SRF2 ;настройка порта PB РФ55

MOV DPTR, #RGRF2 ;на вывод

MOVX @DPTR, A

MOV IE, #SIE ;разрешение прерываний

;от Т/С0 и входа INT0

STOP: SJMP STOP ;останов программы

;Формирование импульса пуска АЦП по внутреннему прерыванию от Т/С0

S2: .SECTION

.ORG 000Bh

LJMP START ;переход к программе

;формирования импульса

;пуска АЦП

S3: .SECTION

.ORG 00D0h

START: CLR B2 ;сброс бита Р1.2

SETB B2 ;установка бита Р1.2

RETI ;возврат из подпрограм-

;мы обработки прерывания

;Вычисление выходного отсчёта по сигналу внешнего прерывания

; от входа INT0, рабочий цикл фильтра

S4: .SECTION

.ORG 0003h

LJMP XYOUT ;переход к программе

;рабочего цикла фильтра

S5: .SECTION

.ORG 0100h

XYOUT: MOV DPTR, #PA ;ввод отсчёта Xn из АЦП

MOVX A, @DPTR ;через порт РА РФ55

;программный модуль масштабирования:

;вычисление произведения Xn := KмXn

;входной отсчёт - в аккумуляторе, масштаби-

;рованный отсчёт записать в ячейку ПЗУ

RLC A ;анализ знака Xn

JC M1 ;переход к программе умножения отрицательного

;отсчёта Xn на Kм

RRC A ;восстановление положи-

;тельного отсчёта Xn

;в аккумуляторе

MOV B, #KM ;вычисление произведе-

MUL AB ;ния KмXn

MOV X, B ;запоминание масштабированного отсчёта Xn

;в памяти

SJMP M2 ;переход к продолжению

M1: RRC A ;восстановление отрица-

;тельного отсчёта Xn в аккумуляторе

CPL A ;получение положительно-

INC A ;го отсчёта Xn (смена знака)

MOV B, #KM ;вычисление произведе-

MUL AB ;ния KмXn и пересылка

MOV A, B ;в аккумулятор

CPL A ;получение отрицательно-

INC A ;го произведения KмXn (смена знака)

MOV X, A ;запоминание масштабированного отсчёта Xn

;в памяти

;программный модуль вычисления

;произведения PR1n := K1*Xn-2

;Xn-2 хранится в ячейке ПЗУ с адресом X2

;PR1n записать в ячейку ПЗУ с адресом PR1

M2: MOV A, X2 ;копирование Xn-2 в аккуму-

RLC A ;лятор и анализ знака

JC M3 ;переход к программе ум-

;ножения отрицательного

;отсчёта Xn-2 на K1

RRC A ;восстановление положительного отсчёта Xn-2

;в аккумуляторе

MOV B, #K1 ;вычисление произведе-

MUL AB ;ния K1Xn-2

MOV PR1, B ;запоминание K1Xn-2 в памяти

SJMP M4 ;переход к продолжению

M3: RRC A ;восстановление отрица-

;тельного отсчёта Xn-2

;в аккумуляторе

CPL A ;получение положительно-

INC A ;го отсчёта Xn-2 (смена знака)

MOV B, #K1 ;вычисление произведе-

MUL AB ;ния K1Xn-2 и пересылка

MOV A, B ;в аккумулятор

CPL A ;получение отрицательно-

INC A ;го произведения K1Xn-2 (смена знака)

MOV PR1, A ;запоминание K1Xn-2 в памяти

;программный модуль вычисления

;произведения PR2n := K2*Yn-2

;Yn-2 хранится в ячейке ПЗУ с адресом Y2

;PR2n записать в ячейку ПЗУ с адресом PR2

M4: MOV A, Y2 ;копирование Yn-2 в аккуму-

RLC A ;лятор и анализ знака

JC M5 ;переход к программе ум-

;ножения отрицательного

;отсчёта Yn-2 на K2

RRC A ;восстановление положительного отсчёта Yn-2

;в аккумуляторе

MOV B, #K2 ;вычисление произведе-

MUL AB ;ния K2Yn-2

MOV PR2, B ;запоминание K2Yn-2 в памяти

SJMP M6 ;переход к продолжению

M5: RRC A ;восстановление отрицательного отсчёта Yn-2

;в аккумуляторе

CPL A ;получение положительно-

INC A ;го отсчёта Yn-2 (смена знака)

MOV B, #K2 ;вычисление произведе-

MUL AB ;ния K2Yn-2 и пересылка

MOV A, B ;в аккумулятор

CPL A ;получение отрицательно-

INC A ;го произведения K2Yn-2

;(смена знака)

MOV PR2, A ;запоминание K2Yn-2 в памяти

;программный модуль вычисления выходного

;отсчёта Yn = Xn + Xn-2 + PR1n - PR2n, слагаемые

;хранятся в ячейках ОЗУ, результат записать

;в ячейку ПЗУ и вывести на ЦАП

M6: MOV A, X ;вычисление отсчёта Yn

ADD A, X2 ;и сохранение в памяти

CLR C

ADD A, PR1

CLR C

SUBB A, PR2

MOV Y, A

ADD A, #80h ;получение смещённого

;кода Yn для ЦАП

MOV DPTR, #PB ;вывод смещённого кода

MOVX @DPTR, A ;Yn на ЦАП через порт

;РВ РФ55

;программный модуль сдвига отсчётов

;в памяти, подготовка следующего рабочего

;цикла

MOV X2, X1 ;

MOV X1, X ;

MOV Y2, Y1 ;

MOV Y1, Y ;

RETI ;возврат из подпрограммы обслуживания

;прерывая по входу INT0

.END

Mon Apr 21 2013 09:24 Page 1

2500 A.D. 8051 Macro Assembler - Version 4.02a

------------------------------------------------

Input Filename : 013-bot.asm

Output Filename : 013-bot.obj

1 ;Программа "Цифровой фильтр"

2 ;Автор Бочков В.В.

3 ;Дата 21.04.2013

4 ;Разностное уравнение Yn = Xn + Xn-2 + 0.02*Xn-2 - 0,04*Yn-2

5

7 ;Определение символических имён операндов

8

9 0092 B2: .EQU 92h ;линия P1.2 для вывода импульса

10 ;запуска АЦП

11 0800 PA: .EQU 0800h ;порт PA РФ55

12 0801 PB: .EQU 0801h ;порт PB РФ55

13 0802 RGRF1: .EQU 0802h ;регистр направления передачи

14 ;порта РA РФ55

15 0803 RGRF2: .EQU 0803h ;регистр направления передачи

16 ;порта РB РФ55

17 0000 SRF1: .EQU 00h ;управляющее слово для настройки

18 ;порта PA РФ55

19 00FF SRF2: .EQU FFh ;управляющее слово для настройки

20 ;порта PB РФ55

21 0089 TMOD: .EQU 89h ;регистр управления режимами

22 ;таймеров-счётчиков

23 0002 STMOD: .EQU 02h ;управляющее слово для настройки

24 ;таймера-счётчика

25 008C TH0: .EQU 8Ch ;старший байт Т/С0

26 0083 STH0: .EQU 83h ;управляющее слово для задания

27 ;частоты переполнения T/C0

28 008C TR0: .EQU 8Ch ;управляющий бит пуска T/C0

29 00A8 IE: .EQU A8h ;регистр разрешения прерываний

30 0083 SIE: .EQU 83h ;слово разрешения прерываний

31 ;от T/C0 и входа INT0

32 00F0 B: .EQU F0h ;регистр В

33 0005 K1: .EQU 05h ;1-ый коэффициент разностного уравнения

34 000A K2: .EQU 0Ah ;2-ой коэффициент разностного уравнения

35 007C KM: .EQU 7Ch ;коэффициент масштабирования

36 0030 X: .EQU 30h ;ячейка хранения отсчёта Xn

37 0031 X1: .EQU 31h ;ячейка хранения отсчёта Xn-1

38 0032 X2: .EQU 32h ;ячейка хранения отсчёта Xn-2

39 0040 Y: .EQU 40h ;ячейка хранения отсчёта Yn

40 0041 Y1: .EQU 41h ;ячейка хранения отсчёта Yn-1

41 0042 Y2: .EQU 42h ;ячейка хранения отсчёта Yn-2

42 0050 PR1: .EQU 50h ;ячейка хранения произведения 0,04*Yn-2

43 0051 PR2: .EQU 51h ;ячейка хранения произведения 0,02*Xn-2

45 .FILLCHAR 00h ;записать в пропусках

46 ;между секциями нули

47

Mon Apr 21 2013 09:24 Page 2

48 ;Инициализация по сигналу RST

49 0000 S0: .SECTION

50 0000 .ORG 0000h

51 0000 02 00 A0 LJMP INIT ;переход к программе

52 ;инициализации

53 0000 S1: SECTION

54 00A0 .ORG 00A0h

55 00A0 75 89 02 INIT: MOV TMOD, #STMOD ;настройка режима Т/С0

56 00A3 75 8C 83 MOV TH0, #STH0 ;задание частоты дискре-

57 ;тизации

58 00A6 D2 8C SETB TR0 ;пуск Т/С0

59

60 00A8 74 00 MOV A, #SRF1 ;настройка порта PA РФ55

61 00AA 90 08 02 MOV DPTR, #RGRF1 ;на ввод

62 00AD F0 MOVX @DPTR, A

63 00AE 74 FF MOV A, #SRF2 ;настройка порта PB РФ55

64 00B0 90 08 03 MOV DPTR, #RGRF2 ;на вывод

65 00B3 F0 MOVX @DPTR, A

66 00B3 75 A8 83 MOV IE, #SIE ;разрешение прерываний

67 ;от Т/С0 и входа INT0

69 00B6 80 FE STOP: SJMP STOP ;останов программы

71 ;Формирование импульса ;пуска АЦП по внутреннему ;прерыванию от Т/С0

74 0000 S2: .SECTION

75 000B .ORG 000Bh

76 000B 02 00 D0 LJMP START ;переход к программе

77 ;формирования импульса

78 ;пуска АЦП

79 0000 S3: .SECTION

80 00D0 .ORG 00D0h

81 00D0 C2 92 START: CLR B2 ;сброс бита Р1.2

82 00D2 D2 92 SETB B2 ;установка бита Р1.2

83 00D4 32 RETI ;возврат из подпрограм-

84 ;мы обработки прерыва-

85 ;ния

87 ;Вычисление выходного отсчёта по сигналу внешнего прерыва-

88 ;ния от входа INT0, рабочий цикл фильтра

89 0000 S4: .SECTION

90 0003 .ORG 0003h

91 0003 02 01 00 LJMP XYOUT ;переход к программе

92 ;рабочего цикла фильтра

93 0000 S5: .SECTION

94 0100 .ORG 0100h

95 0100 90 08 00 XYOUT: MOV DPTR, #PA ;ввод отсчёта Xn из АЦП

96 0103 E0 MOVX A, @DPTR ;через порт РА РФ55

98 ;программный модуль масштабирования:

99 ;вычисление произведения Xn := KмXn

100 ;входной отсчёт - в аккумуляторе, масштаби-

101 ;рованный отсчёт записать в ячейку ПЗУ

103 0104 33 RLC A ;анализ знака Xn

104 0105 40 0A JC M1 ;переход к программе ум-

Mon Apr 21 2013 09:24 Page 3

105 ;ножения отрицательного

106 ;отсчёта Xn на Kм

108 0107 13 RRC A ;восстановление положи-

109 ;тельного отсчёта Xn

110 ;в аккумуляторе

111

112 0108 75 F0 7C MOV B, #KM ;вычисление произведе-

113 010B A4 MUL AB ;ния KмXn

114

115 010C 85 F0 30 MOV X, B ;запоминание масштаби-

116 ;рованного отсчёта Xn

117 ;в памяти

118

119 010F 80 0D SJMP M2 ;переход к продолжению

120 0111 13 M1: RRC A ;восстановление отрица-

121 ;тельного отсчёта Xn

122 ;в аккумуляторе

123

124 0112 F4 CPL A ;получение положительно-

125 0113 04 INC A ;го отсчёта Xn (смена знака)

127 0114 75 F0 7C MOV B, #KM ;вычисление произведе-

128 0117 A4 MUL AB ;ния KмXn и пересылка

129 0118 E5 F0 MOV A, B ;в аккумулятор

130

131 011A F4 CPL A ;получение отрицательно-

132 011B 04 INC A ;го произведения KмXn

133 ;(смена знака)

134

135 011C F5 30 MOV X, A ;запоминание масштаби-

136 ;рованного отсчёта Xn

137 ;в памяти

138

139 ;программный модуль вычисления

140 ;произведения PR1n := K1*Xn-2

141 ;Xn-2 хранится в ячейке ПЗУ с адресом X2

142 ;PR1n записать в ячейку ПЗУ с адресом PR1

143

144 011E E5 32 M2: MOV A, X2 ;копирование Xn-2 в аккуму-

145 0120 33 RLC A ;лятор и анализ знака

147 0121 40 0A JC M3 ;переход к программе ум-

148 ;ножения отрицательного

149 ;отсчёта Xn-2 на K1

151 0123 13 RRC A ;восстановление положи-

152 ;тельного отсчёта Xn-2

153 ;в аккумуляторе

155 0124 75 F0 05 MOV B, #K1 ;вычисление произведе-

156 0127 A4 MUL AB ;ния K1Xn-2

157 0128 85 F0 50 MOV PR1, B ;запоминание K1Xn-2

158 ;в памяти

159 012B 80 0D SJMP M4 ;переход к продолжению

161 012D 13 M3: RRC A ;восстановление отрица-

Mon Apr 21 2013 09:24 Page 4

162 ;тельного отсчёта Xn-2

163 ;в аккумуляторе

164 012E F4 CPL A ;получение положительно-

165 012F 04 INC A ;го отсчёта Xn-2 (смена знака)

167 0130 75 F0 05 MOV B, #K1 ;вычисление произведе-

168 0133 A4 MUL AB ;ния K1Xn-2 и пересылка

169 0134 E5 F0 MOV A, B ;в аккумулятор

171 0136 F4 CPL A ;получение отрицательно-

172 0137 04 INC A ;го произведения K1Xn-2

173 ;(смена знака)

174 0138 F5 50 MOV PR1, A ;запоминание K1Xn-2 в памяти

177 ;программный модуль вычисления

178 ;произведения PR2n := K2*Yn-2

179 ;Yn-2 хранится в ячейке ПЗУ с адресом Y2

180 ;PR2n записать в ячейку ПЗУ с адресом PR2

182 013A E5 42 M4: MOV A, Y2 ;копирование Yn-2 в аккуму-

183 013C 33 RLC A ;лятор и анализ знака

185 013D 40 0A JC M5 ;переход к программе ум-

186 ;ножения отрицательного

187 ;отсчёта Yn-2 на K2

189 013F 13 RRC A ;восстановление положи-

190 ;тельного отсчёта Yn-2

191 ;в аккумуляторе

193 0140 75 F0 0A MOV B, #K2 ;вычисление произведе-

194 0143 A4 MUL AB ;ния K2Yn-2

195 0144 85 F0 51 MOV PR2, B ;запоминание K2Yn-2

196 ;в памяти

197 0147 80 0D SJMP M6 ;переход к продолжению

199 0149 13 M5: RRC A ;восстановление отрица-

200 ;тельного отсчёта Yn-2

201 ;в аккумуляторе

202 014A F4 CPL A ;получение положительно-

203 014B 04 INC A ;го отсчёта Yn-2 (смена знака)

205 014C 75 F0 0A MOV B, #K2 ;вычисление произведе-

206 014F A4 MUL AB ;ния K2Yn-2 и пересылка

207 0150 E5 F0 MOV A, B ;в аккумулятор

209 0152 F4 CPL A ;получение отрицательно-

210 0153 04 INC A ;го произведения K2Yn-2

211 ;(смена знака)

212 0154 F5 51 MOV PR2, A ;запоминание K2Yn-2 в памяти

215 ;программный модуль вычисления выходного

216 ;отсчёта Yn = Xn + Xn-2 + PR1n - PR2n, слагаемые

217 ;хранятся в ячейках ОЗУ, результат записать

218 ;в ячейку ПЗУ и вывести на ЦАП

Mon Apr 21 2013 09:24 Page 5

219

220 0156 E5 30 M6: MOV A, X ;вычисление отсчёта Yn

221 0158 25 32 ADD A, X2 ;и сохранение в памяти

222 015A C3 CLR C

223 015B 25 50 ADD A, PR1

224 015D C3 CLR C

225 015E 95 51 SUBB A, PR2

226

227 0161 F5 40 MOV Y, A

229 0163 24 80 ADD A, #80h ;получение смещённого

230 ;кода Yn для ЦАП

232 0165 90 08 01 MOV DPTR, #PB ;вывод смещённого кода

233 0168 F0 MOVX @DPTR, A ;Yn на ЦАП через порт

234 ;РВ РФ55

236 ;программный модуль сдвига отсчётов

237 ;в памяти, подготовка следующего рабочего

238 ;цикла

240 0169 85 31 32 MOV X2, X1 ;

241 016C 85 30 31 MOV X1, X ;

242 016F 85 41 42 MOV Y2, Y1 ;

243 0172 85 40 41 MOV Y1, Y ;

244 0175 32 RETI ;возврат из подпрограммы

245 ;обслуживания прерывание

246 ;по входу INT0

247 0176 .END

Mon Apr 21 2013 09:24 Page 6

Defined Symbol Name Value References

32 B = 00F0

9 B2 = 0092 81 82

Pre BSECT 0000

Pre CODE 0000

Pre DATA 0000

29 IE = 00A8

55 INIT 00A0 51

33 K1 = 0005 155 167

34 K2 = 000A 193 205

35 KM = 007C 112 127

120 M1 0111 104

144 M2 011E 119

161 M3 012D 147

182 M4 013A 159

199 M5 0149 185

220 M6 0156 197

11 PA = 0800 95

12 PB = 0801 232

42 PR1 = 0050 157 174 223

43 PR2 = 0051 195 212 225

13 RGRF1 = 0802 61

15 RGRF2 = 0803 63

Pre RSECT 0000

49 S0 0000 50

53 S1 00A0 54

74 S2 000B 75

79 S3 00D0 80

89 S4 0003 90

93 S5 0100 94

30 SIE = 0083 66

17 SRF1 = 00FF 60

19 SRF2 = 0000 62

81 START 00D0 76

26 STH0 = 0083 56

23 STMOD = 0002 55

69 STOP 00B6 69

25 TH0 = 008C

21 TMOD = 0089

28 TR0 = 008C

36 X = 0030 115 135 220 241

37 X1 = 0031 240 241

38 X2 = 0032 144 221 240

95 XYOUT 0100 91

39 Y = 0040 227 243

40 Y1 = 0041 242 243

41 Y2 = 0042 182 242

Lines Assembled : 248 Assembly Errors : 0