Важная информация

User Tag List

Страница 10 из 43 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 429

Тема: Апогей-БК01 и Апогей-БК01Ц: Внешний ROM диск

  1. #91

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,224
    Поблагодарили
    876 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    предыдущие данные
    В таком случае, вешаем R/C на А0, и читаем в память короткую программу начальной загрузки, у которой все байты будут повторяться по два раза. Только надо извратиться и написать такую программу)

  2. #91
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #92

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я об этом уже думал Только я хотел соединить OE и R/C, что бы каждый второй байт был нулевым. Написать такую программу проще. Но ПЗУ ведет себя неадекватно, если дергать OE во время ввода адреса. Если же подключить OE через инвертор, то все работает нормально. Каждый второй байт читается нулевым.
    То есть один дополнительный корпус, как у меня.

    Только это не решает проблему "диагональной" записи загрузчика.

    Можно было бы поставить ATMega8 на плату. Она бы и с монитором была бы совместима и адрес сама бы увеличивала. И возможно разархивацией бы занималась. К этой же ATMega вместо ПЗУ можно было бы прикрутить SD-карту.

    А начиналось все просто с припаивания ПЗУ к разъему Апогея. Я не нашел маленьких переключателей для линий A16-A19 и впаял регистр. Потом меню нарисовал. Потом архивацию добавил. Сейчас уже мысли об SD-карте.

    Нет, надо просто ПЗУ прикрутить.

    Ниже первые наброски загрузчика. Надо будет не забыть посмотреть, где у Апогея стек расположен. Есть подозрение.
    Вложения Вложения
    Последний раз редактировалось vinxru; 22.11.2011 в 03:01.

  4. #93

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,224
    Поблагодарили
    876 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Я об этом уже думал Только я хотел соединить OE и R/C, что бы каждый второй байт был нулевым. Написать такую программу проще. Но ПЗУ ведет себя неадекватно, если OE дергать OE во время ввода адреса. Если же подключить OE через инвертор, то все работает нормально. Каждый второй байт читается нулевым.
    То есть один дополнительный корпус, как у меня.

    Только это не решает проблему "диагональной" записи загрузчика.
    Ничего страшного, можно записать и диагонально. А при распаковке и копировании будут пропускаться адреса, у которых номер столбца и строки равны.
    Дополнительный корпус - это не айс, если программно можно обойтись без него, хоть и с извратами.

    ---------- Post added at 01:37 ---------- Previous post was at 01:35 ----------

    Точно ли проверено, что если подсоединить A0 на R/C, а все остальные адреса A1 -> A0, A2 -> A1 и т.д., со смещением, то при чтении массива данных с адреса 0000 по, скажем 00FF, прочтутся парные байты?

  5. #94

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Точно ли проверено, что если подсоединить A0 на R/C, а все остальные адреса A1 -> A0, A2 -> A1 и т.д., со смещением, то при чтении массива данных с адреса 0000 по, скажем 00FF, прочтутся парные байты?
    100%
    Причем самый первый байт будет будет случайным. Или Z, что так же может породить случайный байт.
    Последний раз редактировалось vinxru; 22.11.2011 в 03:04.

  6. #95

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,224
    Поблагодарили
    876 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    100%
    Причем самый первый байт будет будет случайным. Или Z, что так же может породить случайный байт.
    Тогда предлагаю такой вот загрузчик.
    Загружается в память с адреса 0000 по 00FF, например. Стартует с адреса 0001, т.к. по адресу 0000 мусор.

    Код:
    0000	xx	
    	
    0001	06 B2		LD B,0xB2		; B = 0xB2 (Lenght)
    0003	B2		OR D	
    0004	11 11 00	LD DE,0x0011		; DE = 0x0011 (Source)
    0007	00		NOP
    0008	62		LD H,D
    0009	62		LD H,D
    000A	6A		LD L,D
    000B	6A		LD L,D			; HL = 0x0000 (Destination)
    000C	Е5		PUSH HL		
    000D	Е5		PUSH HL			; 0x0000 -> (SP)
    000E	C3 C3 00	JP 0x00C3		; --> 0x00C3
    
    0011	00		NOP
    0012	DATA
    ..	..
    00C1	DATA
    
    00C2	1A		LD A,(DE)		
    00C3	1A		LD A,(DE)		; A = (DE)
    00C4	13		INC DE
    00C5	13		INC DE			; DE = DE + 2
    00C6	77		LD (HL),A
    00C7	77		LD (HL),A		; (HL) = A
    00C8	3A 3A 23	LD A,(0x233A)
    00CB	23		INC HL			; HL = HL + 1
    00CC	06		DEC B
    00CD	06		DEC B			; B = B - 2
    00CE	C2 C2 00	JP NZ,0x00C2		; if (B <> 0) goto 0x00C2 -->
    00D1	00		NOP
    00D2	C9		RET			; goto 0x0000 -->	
    00D3	C9		RET
    Таким образом, все байты продублированы. Записан по диагонали во флешке. После запуска, он распаковывает с адреса 0x0011 на адрес 0x0000 уже нормальный вторичный загрузчик, в котором все байты индивидуальные, длина которого может достигать (0x00C2 - 0x0012) / 2 = 88 байт, чего вполне хватит, чтобы загрузить меню с распаковщиком.
    Последний раз редактировалось Titus; 22.11.2011 в 03:39.

  7. #96

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,145
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    774
    Поблагодарили
    419 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    Надо будет не забыть посмотреть, где у Апогея стек расположен. Есть подозрение.
    насколько помню стек у Апогея устанавливается с E1CFh
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  8. #97

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Тогда предлагаю такой вот загрузчик.
    Готов. Он загружает программу любого размера из ПЗУ в память и запускает. При загрузке пропускает адреса 0, 801h, 1002h, 1803h.

    Дальше я еще программу формирования прошивки переделаю, спаяю ROM-диск на проводах и можно проверять.

    UPD: Запуск по командам G3 или G1
    Вложения Вложения
    Последний раз редактировалось vinxru; 22.11.2011 в 15:52.

  9. #98

    Регистрация
    24.06.2011
    Адрес
    Тула
    Сообщений
    278
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не пинайте сильно, может не до конца разобрался - если R\C просто соединить с А0 - разве не будет читаться?

    ---------- Post added at 11:53 ---------- Previous post was at 11:46 ----------

    Только R\C надо легка задержать, чтобы стабильный адрес записался в ПЗУ.

    ---------- Post added at 11:55 ---------- Previous post was at 11:53 ----------

    И R\С подтянуть резитором к питанию, чтобы после включения сразу на нём была "1"

  10. #99

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AIS Посмотреть сообщение
    Не пинайте сильно, может не до конца разобрался - если R\C просто соединить с А0 - разве не будет читаться?
    В последней схеме, которую предложил Titus и под которую я уже переписал все программы, A0 соединен с R/C. Новые данные на выходе ПЗУ появляются только при изменении 0=>1 на входе R/C. То есть только при чтении нечетных адресов. В таком включении программа читается так, что каждый второй байт дублируется. Изначально я почему то подумал, что такую программу написать будет не просто и даже думать не стал, а Titus не поленился и написал загрузчик. Получилось 108 продублированных байт:

    06 06 06 06 B2 B2 11 11 00 00 62 62 6A 6A C3 C3
    00 00 01 01 FF FF 00 00 21 21 03 03 EE EE 36 36
    90 90 2B 2B 2B 2B 70 70 11 11 00 00 F0 F0 3A 3A
    1F 1F 00 00 3D 3D BB BB CA CA 25 25 00 00 23 23
    ...

    ---------- Post added at 11:14 ---------- Previous post was at 11:06 ----------

    Цитата Сообщение от AIS Посмотреть сообщение
    И R\С подтянуть резитором к питанию, чтобы после включения сразу на нём была "1"
    А это ведь косяк. При теплой перезагрузке компьютера, на A0 может и не быть 1. Следовательно, не только нулевой байт, но и первый байт может содержать мусор. Надо запускаться с 3-ого адреса. Исправил.
    Последний раз редактировалось vinxru; 22.11.2011 в 12:54.

  11. #100

    Регистрация
    24.06.2011
    Адрес
    Тула
    Сообщений
    278
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спешил предложить - недочитал тему...

Страница 10 из 43 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Апогей-БК01 и Апогей-БК01Ц: Обсуждение
    от Mick в разделе Радио-86РК
    Ответов: 370
    Последнее: 24.03.2025, 11:20
  2. Апогей-БК01 и Апогей-БК01Ц: Ремонт
    от ROMка в разделе Радио-86РК
    Ответов: 193
    Последнее: 15.11.2023, 15:09
  3. Продам Апогей БК 01
    от PicNov76 в разделе Барахолка (архив)
    Ответов: 27
    Последнее: 15.07.2010, 07:20
  4. Кому Апогей БК-01 в СПб?
    от spoonlite в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 06.10.2009, 22:57
  5. Корпус от Апогей БК01Ц
    от Mick в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 13.12.2007, 12:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •