![]() |
|||
Разделы сайта | Cтатьи. |
Статистика сайта.
Посещений за день: 20 Баннеры. Статистика в картинках. |
|
|
Тест памяти "Байта".
Для облегчения процесса контроля работоспособности ОЗУ и ПЗУ в компьютере "Байт" есть встроенный тест памяти. Для его запуска надо нажать одновременно три клавиши - "Ы", "В" и "А" на клавиатуре и после этого, не отпуская клавиш, нажать и отпустить кнопку "СБРОС". После этого клавиши можно отпускать. Внимание - кнопка "Совмест." должна быть отжата!
;Базовый тест ORG 0 DI LD A,#3A LD DE,#FFFF JR ST ORG #2B ST LD BC,#03EE JR ST1 ORG #5F ST1 OUT (C),A ;блокировка таймера ADD A,#40 DEC B JR ST3 RETN ST3 JR NZ,ST1 LD BC,#FDFE IN A,(C) AND #0E ;проверка на нажатие "ЫВА" для запуска теста JP TEST ORG #387F IN A,(#1F) ;переключение доп. ПЗУ RET TEST JP NZ,#11CB LD B,8 BDR1 OUT (C),B ;переключение бордюра 0,7..1 BDR DEC DE LD A,D OR E JR NZ,BDR DJNZ BDR1 ;Тест ПЗУ ;После прохода 1-го ПЗУ BORDER=3 ;После прохода 2-го ПЗУ BORDER=6 EX DE,HL PZU2 LD DE,#1FFF ;проверяем по каждом м/с в отдельности XOR A PZU1 ADD (HL) ;проверка КС ADC 0 INC HL DEC DE BIT 7,D JR Z,PZU1 INC B INC B INC B INC A ;проверка, что КС=#FF PZU JR NZ,PZU ;самозацикливание при ошибке OUT (C),B ;вывод BORDER BIT 6,H ;2-я м/с не проверена? JR Z,PZU2 LD A,D OUT (0),A XOR A ;Тест экранного ОЗУ OZU LD (HL),#17 INC HL CP H JR NZ,OZU ;запись всего ОЗУ LD BC,#170F ;кодами #17 LD DE,#F000 ;установка кодов тестирования LD A,4 OZU4 LD H,#40 EXX OZU3 LD A,B XOR (HL) ;проверка правильности кода OZU2 OUT (C),A LD B,(HL) JR NZ,OZU2 ;зацикливание при ошибке LD (HL),C INC HL LD A,H CP #5B JR NZ,OZU3 EXX LD H,C LD C,D LD D,E ;смена кода тестирования DEC B JR NZ,OZU4 ;запись атрибутов экрана LD HL,#5800 EXX OZU5 LD (HL),#08 INC HL CP H JR NZ,OZU5 LD SP,#4020 ;установка указателя стека ;запись области квадратами LD HL,#5840 ZOB2 LD B,#10 ZOB1 LD (HL),#28 INC HL LD (HL),#28 INC HL INC HL INC HL DJNZ ZOB1 BIT 0,H ;не записана вторая область квадратами? LD L,#C0 JR Z,ZOB2 ;тест второй части экранного и всей остальной области ОЗУ LD B,#5B ;подготовка данных для основного ОЗУ LD DE,#5840 LD A,#80 OUT (0),A Z22 LD HL,#4101 LD (HL),B EX AF,AF' LD BC,#17A5 ;подготовка данных тестирования LD DE,#FF00 EX AF,AF' LD BC,4 ;число данных в тесте Z21 EX AF,AF' LD HL,(#4100) ;начальный адрес тестирования ОЗУ Z2 EXX LD A,B AND (HL) CALL NZ,SOOS ;вывод п/п индикации ошибок ОЗУ LD (HL),C ;запись кода EXX INC DE CP H ;конец проверки JR NZ,Z2 LD B,C LD C,D LD D,E ;смещение тест. инф. EX AF,AF' DEC B JR NZ,Z21 ;переход к новой проверке OR A LD B,#80 ;пересылка кода #80 нач. обл. LD E,#C0 LD A,C ;конец области JR NZ,Z21 ;если не конец 2-й области LD A,(#4102) OR A ;проверка нормального окончания теста Z23 JR NZ,Z22 ;вывод линиий LD B,#20 LD A,#3C LD HL,#5900 CW LD (HL),A ;вывод цветных квадратов INC HL SUB 8 DJNZ CW ;пересылка ПЗУ LD HL,0 LD DE,#6000 LD BC,#4000 LDIR LD HL,#3A00 PUSH HL JP PRPZU ;п/п индикации ошибки SOOS EXX LD (#4102),A LD HL,AT-1 ADD HL,BC LD L,(HL) ADD HL,DE ;вычисление адреса первого символа SOOS2 SLA A PUSH AF JR NC,SOOS1 LD A,(HL) ;установка байта ошибки OR A JR Z,SOOS1 SUB 8 LD (HL),A SOOS1 POP AF INC HL INC HL INC HL INC HL JR NZ,SOOS2 EXX RET ;дальнейшая программа находится в дополнительном ПЗУ ORG #3A00 ;проверка клавиатуры на замыкание X0 XOR A LD (#4106),A LD BC,#FEFE LD HL,#58F0 X3 LD DE,#30 ADD HL,DE ;нах. в HL адреса вывода LD D,8 IN A,(C) ;приём клав. OR #40 X2 INC HL RLCA JR C,X4 LD (#4105),HL ;установка признака замыкания LD (HL),0 JR X1 X4 LD (HL),#18 X1 INC HL DEC D JR NZ,X2 RLC B ;проверка окончания по линиям адреса JR C,X3 LD A,(#4106) OR A JR NZ,X0 ;проверка - продолжать ли опрос клавиатуры? ;Проверка таймера LD A,#37 EX AF,AF' LD C,#8E ZWP LD B,#23 LD HL,NTZ-1 ZW INC HL PUSH HL LD H,(HL) LD L,2 LD D,#60 TW1 DEC DE LD A,D OR E JR NZ,TW1 EX AF,AF' OUT (#EE),A EX AF,AF' OUT (C),L OUT (C),H POP HL DEC B JR NZ,ZW EX AF,AF' ADD A,#40 EX AF,AF' LD A,#20 ADD A,C LD C,A CP #E0 JR C,ZWP ;Проверка ПЗУ после переключения XOR A LD (HRAN),A LD HL,#5800 PRPZ LD (HL),#2D INC HL LD A,H CP #5B JR NZ,PRPZ ;Заполняем экран синим LD HL,#5800 EXX LD DE,0 ;Адрес ПЗУ LD HL,#6000 EXX PRPZ1 EXX LD B,#80 PRPZ3 LD A,(DE) CP (HL) JR NZ,PRPZ2 INC HL INC DE DJNZ PRPZ3 EXX LD (HL),#12 PRPZ4 INC HL INC HL LD A,L AND #1F JR NZ,PRPZ1 LD BC,#20 ADD HL,BC EXX LD A,D EXX CP #40 JR NZ,PRPZ1 LD A,#12 LD (#5A48),A LD (#5A4A),A ;Установка цвета LD A,(HRAN) DEC A DEC A XXX JR NZ,XXX JP 0 PRPZ2 INC HL INC DE DJNZ PRPZ2 LD A,(HRAN) INC A LD (HRAN),A EXX LD (HL),#85 JR PRPZ4 NTZ DEFB #69,#77,#B6,#00,#58,#00,#58,#00 DEFB #69,#77,#B6,#00,#58,#00,#58,#00 DEFB #69,#77,#B6,#00,#58,#00,#D8,#00 DEFB #58,#00,#F5,#00,#61,#00,#61,#00,#00,#00,#00 HRAN EQU #4101>> |
||
BitByByte, 2000г. (2025). |