Последние темы
» Вити больше нет!автор bug19 Пн Фев 20 2023, 19:54
» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47
» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05
» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03
» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02
» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52
» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36
» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37
» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33
» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00
» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58
» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17
» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07
» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08
» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09
» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02
» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47
» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11
» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33
» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38
» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12
» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01
» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22
» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08
» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08
Самые активные пользователи за месяц
Нет пользователей |
Поиск
Тест памяти "Радио-86РК"
Страница 1 из 1 • Поделиться
Тест памяти "Радио-86РК"
1
Данная тема создана с перспективой на будущее и вообще потому, что такое существует в природе. Я выложу здесь ту информацию, которая мне доступна и как вроде связанна с данной темой. В надежде, что пользователи поправят меня, если что, и дополнят тему в будущей перспективе...
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
Viktor2312- RIP
- Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск
.
3
- ТЕСТ РК86:
; Дизассемблированный ТЕСТ РК86
; Полный оригинал
; Использована JPO после команды 'DEC A' в том же
; самом месте, что и в мониторе (в п/п-ме COUT_C).
; Потому на Z80 работать не будет.
.Z80
aseg
ORG 100H
RAM16K EQU 1
PPA_KL EQU 08000H
PPA_DOP EQU 0A000H
VG_75 EQU 0C000H
VT_57 EQU 0E000H
if RAM16K
SCREEN EQU 36D0H
SCBASE EQU 37C2H ; Левый верхний угол экрана
BASE EQU 3400H
else
SCREEN EQU 76D0H
SCBASE EQU 77C2H ; Левый верхний угол экрана
BASE EQU 7400H
endif
EK_ADR EQU BASE
TMPSTK EQU TMPSTK
;--------------------------------------------
.xcall MACRO ADDR
LOCAL M1
LD SP,M1
JP ADDR
M1: DW M1
ENDM
;--------------------------------------------
.phase 0F800H
defb 0AAH
defb 55H ; для проверки шины на залип в шаговом решиме
JP START
;--------------------------------------------
START: LD A,8AH
LD (PPA_KL+3),A
LD A,80H
LD (PPA_DOP+3),A
LD A,55H
LD (PPA_DOP+1),A
LD A,00001000B ; зажигаем светодиод
LD (PPA_KL+2),A
XOR A ; гасим светодиод
LD (PPA_KL+2),A
.xcall SOUND
AF825: LD A,(0) ; ждём команды с клавиатуры
LD (0),A
LD A,(PPA_KL+2) ; проверим нажали ли на спец.клавишу
LD B,A
AND 80H
JP Z,KEY_RL ; если нажата РУСЛАТ
LD A,B
AND 40H
JP Z,AF8F6 ; если нажата УС
LD A,B
AND 20H
JP Z,AFA9F ; если нажата СС
JP AF825
;--------------------------------------------
KEY_RL: LD A,(PPA_KL+2) ; ждём отпускания клавиши РУСЛАТ
AND 80H
JP Z,KEY_RL
LD HL,4000H
.xcall PAUSHL
.xcall SOUND
LD HL,0
.xcall PAUSHL
LD HL,0 ; заполнение ОЗУ 0...3FFF кодом 55H
LD D,55H
AF86E: LD (HL),55H
INC HL
LD A,H
CP 40H
JP NZ,AF86E
LD HL,0
AF87A: LD A,(HL) ; Проверка, что во всём ОЗУ код 55H
LD E,A
CP 55H
JP NZ,ERROR
INC HL
LD A,H
CP 40H
JP NZ,AF87A
LD HL,0 ; заполнение ОЗУ 0...3FFF кодом 0AAH
LD D,0AAH
AF88D: LD (HL),0AAH
INC HL
LD A,H
CP 40H
JP NZ,AF88D
LD HL,0 ; Проверка, что во всём ОЗУ код 0AAH
LD A,(HL)
LD E,A
CP 0AAH
JP NZ,ERROR
INC HL
LD A,H
CP 40H
JP NZ,AFB98+1
LD HL,0 ; заполнение ОЗУ кодом его младшего бита адреса
AF8AA: LD (HL),L
INC HL
LD A,H
CP 40H
JP NZ,AF8AA
LD HL,0 ; Проверка, что в ОЗУ код младшего бита адреса
AF8B5: LD A,(HL)
LD E,A
LD D,L
CP L
JP NZ,ERROR
INC HL
LD A,H
CP 40H
JP NZ,AF8B5
.xcall SOUND
LD A,8 ; зажечь светодиод
LD (PPA_KL+2),A
ZAVIS: JP ZAVIS ; зациклиться и зависнуть
ERROR: .xcall SOUND
LD HL,8000H
.xcall PAUSHL
LD SP,AF8EC
JP SOUND
AF8EC: DW BITOUT
BITOUT: LD A,D
XOR E
LD (PPA_DOP+1),A ; вывод несовпадающих битов 1-ми в порт А
ZAVIS2: JP ZAVIS2
AF8F6: LD SP,AF8EC ; Вывод звука и на вывод дохлых битов
JP SOUND
DW BITOUT
LD A,D ; сюда вообще нет переходов !
XOR E
LD B,B
.xcall PAUSHL
LD HL,8000H
.xcall PAUSHL
.xcall INIT
LD SP,EK_ADR-100H
CALL CLS
AF922: LD C,20H
AF924: CALL SCOUTA
INC C
LD A,C
CP 80H
JP NZ,AF924
AF92E: LD A,(PPA_KL+2)
AND 40H
JP NZ,AF92E ; если не нажата УС
LD HL,4000H
CALL PAUSHL
AF93C: LD A,(PPA_KL+2)
AND 40H
JP Z,AF93C
LD HL,4000H
CALL PAUSHL
JP AF922
;--------------------------------------------
COUT_C: LD C,A
SCOUTA: PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD HL,TOBACK
PUSH HL
LD HL,(EK_ADR+2)
EX DE,HL
LD HL,(EK_ADR)
LD A,(LOC04)
DEC A
JP M,AF97F
JP Z,AF9F6
JP PO,AFA04
LD A,C
SUB 20H
LD C,A
AF96E: DEC C
JP M,RESESC
PUSH BC
CALL COD_18
POP BC
JP AF96E
;--------------------------------------------
RESESC: XOR A
SETESC: LD (EK_ADR+04H),A
RET
;--------------------------------------------
AF97F: LD A,C
AND 7FH
LD C,A
CP 1FH
JP Z,CLS1
CP 0CH
JP Z,COD_0C
CP 13
JP Z,COD_0D
CP 10
JP Z,COD_0A
CP 8
JP Z,COD_08
CP 18H
JP Z,COD_18
CP 19H
JP Z,COD_19
CP 1AH
JP Z,COD_1A
CP 1BH
JP Z,COD_1B
CP 7
JP NZ,AF9C9
SOUND:
LD BC,5010H
SND_1: LD A,B
SND_2: EI
DEC A
JP NZ,SND_2
LD A,B
SND_3:
DI
DEC A
JP NZ,SND_3
DEC C
JP NZ,SND_1
RET
;--------------------------------------------
AF9C9: LD (HL),C
CALL COD_18
LD A,D
CP 3
RET NZ
LD A,E
CP 8
RET NZ
CALL COD_19
COD_0A:
LD A,D
CP 27
JP NZ,COD_1A
PUSH HL
PUSH DE
LD HL,SCBASE
LD DE,SCBASE+78
LD BC,25*78
AF9E9: LD A,(DE)
LD (HL),A
INC HL
INC DE
DEC BC
LD A,C
OR B
JP NZ,AF9E9
POP DE
POP HL
RET
;--------------------------------------------
AF9F6: LD A,C
CP 'Y'
JP NZ,RESESC
CALL COD_0C
LD A,2
JP SETESC
;--------------------------------------------
AFA04: LD A,C
SUB 20H
LD C,A
AFA08: DEC C
LD A,4
JP M,SETESC
PUSH BC
CALL COD_1A
POP BC
JP AFA08
;--------------------------------------------
TOBACK: LD (EK_ADR),HL
EX DE,HL
LD (EK_ADR+2),HL
LD A,80H
LD (VG_75+1),A
LD A,L
LD (VG_75),A
LD A,H
LD (VG_75),A
POP HL
POP DE
POP BC
POP AF
RET
;--------------------------------------------
COD_1B: LD A,1
JP SETESC
;--------------------------------------------
CLS1: LD HL,3FF4H
LD DE,2341
AFA3A:
XOR A
LD (HL),A
DEC HL
DEC DE
LD A,E
OR D
JP NZ,AFA3A
COD_0C: LD DE,776
LD HL,SCBASE
RET
;--------------------------------------------
COD_18: LD A,E
CP 'G'
JP NZ,AFA56
CALL COD_0D
JP COD_1A
;--------------------------------------------
AFA56: INC HL
INC E
RET
;--------------------------------------------
COD_08: LD A,E
CP 8
JP NZ,AFA68
LD E,8+63 ; = 71
LD BC,63
ADD HL,BC
JP COD_19
;--------------------------------------------
AFA68: DEC HL
DEC E
RET
;--------------------------------------------
COD_1A: LD A,D
CP 27
JP NZ,DOWN
LD D,3
LD BC,-750H ; = - (24*78)
ADD HL,BC
RET
;--------------------------------------------
DOWN: INC D
LD BC,78
ADD HL,BC
RET
;--------------------------------------------
COD_19: LD A,D
CP 3
JP NZ,UP
LD D,27
LD BC,24*78
ADD HL,BC
RET
;--------------------------------------------
UP: DEC D
LD BC,-78
ADD HL,BC
RET
;--------------------------------------------
COD_0D: LD A,L
SUB E
JP NC,AFA97
DEC H
AFA97: LD L,A
LD E,8
LD BC,8
ADD HL,BC
RET
;--------------------------------------------
AFA9F: LD A,(PPA_KL+2)
AND 20H
JP Z,AFA9F
LD HL,4000H
LD SP,AFAB0
JP PAUSHL
AFAB0: DW AFAB2
AFAB2: LD SP,AFAB8
JP INIT
AFAB8: DW AFABA
AFABA: LD SP,EK_ADR-100H
CALL CLS
AFAC0: CALL AFB1B
LD C,A
CALL SCOUTA
JP AFAC0
;--------------------------------------------
AFACA: CALL AFB2A
LD (EK_ADR+0BH),A
LD A,(LOC05)
OR A
RET NZ
CALL AFB2A
OR A
PUSH HL
JP P,AFAE8
LD (EK_ADR+0AH),A
LD A,80H
AFAE2: LD (EK_ADR+6),A
POP HL
XOR A
RET
;--------------------------------------------
AFAE8: LD L,A
LD A,(EK_ADR+0AH)
CP L
JP Z,AFB0F
LD A,L
LD (EK_ADR+0AH),A
LD A,80H
AFAF6: LD (EK_ADR+06H),A
LD A,(LOC08)
OR A
JP NZ,AFB08
PUSH BC
LD BC,5003H
CALL SND_1
POP BC
AFB08: LD A,0FFH
LD (LOC05),A
POP HL
RET
;--------------------------------------------
AFB0F: LD A,(EK_ADR+06H)
DEC A
JP NZ,AFAE2
LD A,8
JP AFAF6
;--------------------------------------------
AFB1B: CALL AFACA
OR A
JP Z,AFB1B
XOR A
LD (LOC05),A
LD A,(EK_ADR+0AH)
RET
;--------------------------------------------
AFB2A: PUSH HL
LD A,(PPA_KL+2)
AND 80H
JP NZ,AFB84
AFB33: LD A,(PPA_KL+2)
AND 80H
JP Z,AFB33
LD A,(PPA_KL+2)
AND 20H
JP NZ,AFB4D
LD A,(LOC09)
OR A
JP Z,AFB5F
JP AFB73
;--------------------------------------------
AFB4D: LD HL,LOC07
LD A,(PPA_KL+2)
AND 40H
JP NZ,AFB7E
INC HL
LD A,(HL)
CPL
LD (HL),A
JP AFB84
;--------------------------------------------
AFB5F: DEC A
LD (LOC09),A
LD HL,0
ADD HL,SP
LD (TMPSTK),HL
AFB6A:
CALL AFB1B
CALL COUT_C
JP AFB6A
;--------------------------------------------
AFB73: LD HL,(TMPSTK)
LD SP,HL
XOR A
LD (LOC09),A
JP AFB84
;--------------------------------------------
AFB7E: LD A,(HL)
CPL
LD (HL),A
LD (PPA_KL+2),A
AFB84: LD L,1
LD H,7
AFB88: LD A,L
RRCA
LD L,A
CPL
LD (PPA_KL),A
LD A,(PPA_KL+1)
CPL
OR A
JP NZ,AFB9F
DEC H
AFB98: JP P,AFB88
AFB9B: LD A,0FFH
POP HL
RET
;--------------------------------------------
AFB9F: LD L,40H
AFBA1: LD A,(PPA_KL+1)
CPL
OR A
JP Z,AFB9B
DEC L
JP NZ,AFBA1
LD L,8
AFBAF:
DEC L
RLCA
JP NC,AFBAF
LD A,H
LD H,L
LD L,A
CP 1
JP Z,AFBE6
JP C,AFBDF
RLCA
RLCA
RLCA
ADD A,20H
OR H
CP 5FH
JP NZ,AFBF2
LD A,20H
POP HL
RET
;--------------------------------------------
TABK1: defb 9,10,13,7FH,8,19H,18H,1AH
AFBD6: defb 0CH,1FH,1BH,0,1,2,3,4,5
;--------------------------------------------
AFBDF: LD A,H
LD HL,AFBD6
JP AFBEA
;--------------------------------------------
AFBE6: LD A,H
LD HL,TABK1
AFBEA: ADD A,L
LD L,A
LD A,(HL)
CP 40H
POP HL
RET C
PUSH HL
AFBF2: LD L,A
LD A,(PPA_KL+2)
LD H,A
AND 40H
JP NZ,AFC06 ; если нажали
LD A,L
CP 40H
JP M,AFC2B
AND 1FH
POP HL
RET
;--------------------------------------------
AFC06: LD A,(LOC07)
OR A
JP Z,AFC16
LD A,L
CP 40H
JP M,AFC16
OR 20H
LD L,A
AFC16:
LD A,H
AND 20H
JP NZ,AFC2B
LD A,L
CP 40H
JP M,AFC27
LD A,L
XOR 20H
POP HL
RET
;--------------------------------------------
AFC27: LD A,L
AND 2FH
LD L,A
AFC2B: LD A,L
CP 40H
POP HL
RET P
PUSH HL
LD L,A
AND 0FH
CP 0CH
LD A,L
JP M,AFC3C
XOR 10H
AFC3C: POP HL
RET
;--------------------------------------------
PAUSHL: DEC HL
LD A,H
OR L
JP NZ,PAUSHL
RET
;--------------------------------------------
INIT: LD HL,SCREEN and 0FF00H ; 3600H
AFC48: LD (HL),20H ; заполнение экрана пробелами
INC HL
LD A,H
CP 40H
JP NZ,AFC48
LD HL,VG_75+1
LD (HL),0 ; reset commando
DEC HL ; адрес VG_75
LD (HL),4DH ; 0.1001101 77+1 знакомест
LD (HL),1DH ; 00.011101 29+1 строк
LD (HL),99H ; 1001.1001 9 +1 линия подчерк.
; 9+1 линий в знакоместе
LD (HL),93H ; 1.0.01.0011 без смещ.
; курсор - мигающая линия подчеркивания
; атрибуты отображать пробелом
; 3 --> 8 тактов сдвига, длина обр хода стр.р.
LD A,80H
LD (VT_57+,A
LD HL,VT_57+4
LD (HL),low SCREEN
LD (HL),high SCREEN
INC HL
LD (HL),23H
LD (HL),49H
LD HL,VG_75+1
LD (HL),27H ; start display commando
LD (HL),0E0H
LD A,0A4H
LD (VT_57+,A
RET
CLS: XOR A
LD (EK_ADR-200H+4),A ; Зачем это ????
LD (LOC04),A
LD (LOC05),A
LD (LOC08),A
LD (LOC07),A
LD (LOC09),A
LD C,1FH
CALL SCOUTA
RET ; хо-хо
ZZZ aset $ and 0FFFH
if ZZZ ne 0
rept 1000H-ZZZ
defb 255
endm
endif
.dephase
END
Последний раз редактировалось: barsik (Вс Дек 23 2018, 11:27), всего редактировалось 1 раз(а)
barsik- Ветеран
- Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия, СПб
Похожие темы
» Ассемблер "Радио-86РК"
» Радио-86РК: По страницам журнала "Радио" и не только...
» Эмулятор радио 86рк
» Анти Радио-86РК
» Оригинальный БП для Радио-86РК
» Радио-86РК: По страницам журнала "Радио" и не только...
» Эмулятор радио 86рк
» Анти Радио-86РК
» Оригинальный БП для Радио-86РК
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|