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

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 69

Тема: "ZX-8088" - Даунгрейд компьютера "Ленинград". Часть 3

  1. #41
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    tasmом (если это не Telemark Assembler) с универа не пользовался (зато недавно пользовался fasmом), но вроде у практически всех асмов x86 адрес компиляции задается по org
    Вот я собственно тоже уже лет так 15 не открывал его
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  2. #42
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    351
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Цитата Сообщение от PVV
    Для чего? он активем во время действия RD/ или WR/, заходит лишь на один вход TTL(добавляемой ЛЛ1).
    В тех даташитах, которые я читал, про A16-A19/S3-S6 написано так:
    ADDRESS/STATUS: During T1, these are the four most significant address lines for memory operations. During I/O operations, these lines are LOW. During memory and I/O operations, status information is available on these lines during T2, T3, TW, and T4.
    Да, что то я стал забывать, посмотрел, действительно, надо его защелкивать инверсным ALE на тм2. И как раз увидел еще момент - на А18 в моменты активности /RD или /WR присутствует флаг разрешения прерываний. Соответственно можно эту ножку именно по /RD защелкивать на второй половинке тм2, и этим управлять разрешением прерывания от NMI.

  3. #43
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    На D12.2 идет RDROM/. При выполнении стартовой команды будут активны и CSRAM/ и RROM/, что приведет к соревнованию кто сильнее между D33 и ПЗУшкой.
    Обновил схему в первом посте.
    Пока обошелся без A19.

    - - - Добавлено - - -

    Цитата Сообщение от PVV Посмотреть сообщение
    Да, что то я стал забывать, посмотрел, действительно, надо его защелкивать инверсным ALE на тм2. И как раз увидел еще момент - на А18 в моменты активности /RD или /WR присутствует флаг разрешения прерываний. Соответственно можно эту ножку именно по /RD защелкивать на второй половинке тм2, и этим управлять разрешением прерывания от NMI.
    Если использовать ТМ2, то ALE надо тогда инвертировать для пущей надежности
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  4. #44
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Mick, извини, но в текущем варианте даже не хочется разбираться, надо упрощать "схему начального пуска". Если выбирать между этим вариантом и предлжением PVV, то я однозначно за его, подумаешь добавить регистр, зато просто и понятно.
    Если хочется спасти вариант без A19, то для отключения не стоит зацикливаться только на адресных линиях. Можно отключать например по факту обращения к порту. Т.е. jmp far (сделали CS=0) и потом in или out.

  5. #45
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Mick, извини, но в текущем варианте даже не хочется разбираться, надо упрощать "схему начального пуска". Если выбирать между этим вариантом и предлжением PVV, то я однозначно за его, подумаешь добавить регистр, зато просто и понятно.
    Не, ну какой вредный.

    Вот вариант с A19 - https://disk.yandex.ru/d/OoTICcrkyOMKEQ

    Можно еще один подрисовать, где по A19 рулить выбором ПЗУ или ОЗУ, но тогда сам понимаешь надо будет играться с сегментами и об этом надо будет помнить.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #46
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Видишь, как здорово, даже ошибиться особо негде (я про схему начального пуска).

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

  8. #47
    Moderator Аватар для Mick
    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    9,917
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    695
    Поблагодарили
    368 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Видишь, как здорово, даже ошибиться особо негде (я про схему начального пуска).
    Поправил печатную плату согласно последней схеме с A19



    - - - Добавлено - - -

    Тут в качестве оффтопа нашел у себя на работе старую плату от факса и там вон какая плюшка



    UPD70208 - NEC V40 и он тоже умеет эмулировать 8080А, ссылка на даташит - https://www.google.com/url?sa=t&rct=...54273844674378

    - - - Добавлено - - -

    Нашел пример, как типа эмуляция включается V20

    Код:
    ;	SBCV20 terminal test program
    ;	Assembler: asm86.com/asm86.cmd
    ;
    MEM	equ	0000h	;Memory top
    ROM	equ	8000h	;Rom top
    STACK	equ	8000h	;Stack top
    REGAD	equ	00h	;8251 data register
    REGAC	equ	01h	;8251 control register
    RTSHIG	equ	17h	;RTS high
    RTSLOW	equ	37h	;RTS low
    ;
    BUFSIZ	equ	128		;Buffer size(2^n, max128)
    FULSIZ	equ	BUFSIZ*14/16	;Buffer almost full
    ;
    	dseg	MEM
    	org	0000h
    ;
    ;	Interrupt vector
    DEVERR	rw	2	;Devide error
    BRKFLG	rw	2	;Break flag
    NMIREQ	rw	2	;Non maskable interrupt
    BR3INS	rw	2	;BRK3 instruction
    BRVINS	rw	2	;BRKV instruction
    CHKINS	rw	2	;CHKIND instruction
    	org	0400h-20
    VGETCH	rw	2	;CALLN 251
    VKBHIT	rw	2	;CALLN 252
    VPUTCH	rw	2	;CALLN 253
    VBRKEM	rw	2	;BRKEM 254
    INTREQ	rw	2	;External interrupt
    ;
    ;	Receive buffer
    RECBUF	rb	BUFSIZ
    RBFRDP	rw	1
    RBFWTP	rw	1
    RBFCNT	rb	1
    ;
    	cseg	MEM
    	org	ROM
    ;
    ;	8251 -> buffer by interrupt
    ;
    intsr:	push	ax	;Save ax
    	push	bx	;Save bx
    	in	al,REGAD	;Get char
    	mov	ah,al		;Save it
    ;
    	mov	al,RBFCNT	;Get count of chars
    	cmp	al,BUFSIZ	;Buffer full?
    	jz	isext		;If yes, ignore
    	inc	al		;Count up
    	mov	RBFCNT,al	;Update
    	cmp	al,FULSIZ	;Buffer almost full?
    	jnz	isst1		;If no, skip flow control
    	mov	al,RTSHIG	;RTS control
    	out	REGAC,al	;Out it
    ;
    isst1:	mov	bx,RBFWTP	;Get write point
    	mov	al,ah		;Restore char
    	mov	[bx],al		;Write char into buffer
    ;
    	inc	bl		;Next write point
    	and	bl,BUFSIZ-1	;Wrap
    	mov	RBFWTP,bx	;Update
    ;
    isext:	pop	bx	;Restore bx
    	pop	ax	;Restore ax
    	sti		;Enable interrupt
    	iret
    ;
    ;	buffer -> al
    getch:	push	bx	;Save bx
    ;
    gcst1:	mov	al,RBFCNT	;Get count of chars
    	cmp	al,0		;Buffer enpty?
    	jz	gcst1		;If yes, wait
    	cli			;Disable interrupt
    ;
    	mov	al,RBFCNT	;Critical timing measures
    	cmp	al,FULSIZ	;Need flow control?
    	jnz	gcst2		;If no, skip flow control
    	mov	ah,al		;Save char
    	mov	al,RTSLOW	;RTS control
    	out	REGAC,al	;Out it
    	mov	al,ah		;Restore char
    gcst2:	dec	al		;Count down
    	mov	RBFCNT,al	;Update
    ;
    	mov	bx,RBFRDP	;Get read point
    	mov	al,[bx]		;Read char from buffer
    ;
    	inc	bl		;Next read point
    	and	bl,BUFSIZ-1	;Wrap
    	mov	RBFRDP,bx	;Update
    ;
    	pop	bx	;Restore bx
    	sti		;Enable interrupt
    	ret
    ;
    ;	al -> 8251
    putch:	push	ax		;Save char
    ;
    pcst1:	in	al,REGAC	;Get status
    	and	al,01h		;check TxBUF enpty
    	jz	pcst1		;wait for empty
    ;
    	pop	ax		;Restore char
    	out	REGAD,al	;Out it
    	ret
    ;
    ;	put string
    puts:	cld			;set DF for SI increment
    ptst1:	lodsb			;get data to AL and SI++
    	cmp	al,00h		;check tail
    	jz	ptext		;if tail, return
    	call	putch		;display a charactor
    	jmp	ptst1		;loop until tail
    ptext:	ret
    ;
    ;	message
    ckcpu	db	13,10,'PROCESSOR: ',0
    nec	db	'NEC V20(uPD70108)',13,10,0
    intel	db	'Intel 8088',13,10,0
    ;
    ;	CALLN wrapping
    ngetch:	call	getch
    	iret
    nkbhit:	mov	al,RBFCNT	;Get count of chars
    	iret
    nputch:	call	putch
    	iret
    ;
    ;	start
    start:	mov	ax,cs		;set com model
    	mov	ds,ax
    	mov	es,ax
    	mov	ss,ax
    	mov	sp,STACK	;set stack
    ;
    	mov	VGETCH,offset ngetch
    	mov	VGETCH+2,ax
    	mov	VKBHIT,offset nkbhit
    	mov	VKBHIT+2,ax
    	mov	VPUTCH,offset nputch
    	mov	VPUTCH+2,ax
    	mov	VBRKEM,offset emu80
    	mov	VBRKEM+2,ax
    	mov	INTREQ,offset intsr
    	mov	INTREQ+2,ax
    ;
    ;	8251 setup
    	mov	dx,REGAC
    	mov	al,00h	;Default mode or no operation
    	out	dx,al	;Try command
    	out	dx,al	;Try command
    	out	dx,al	;Try command
    	mov	al,40h	;reset
    	out	dx,al	;Delay
    	mov	CX,16	;Delay
    	loop	$	;Delay
    	mov	al,4eh	;mode
    	out	dx,al	;Out it
    	mov	al,37h	;command
    	out	dx,al	;Out it
    ;
    ;	Buffer initialize
    	xor	al,al			;Clear al
    	mov	RBFCNT,al		;Set count of chars
    	mov	ax,offset RECBUF	;Get buffer top
    	mov	RBFRDP,ax		;Set read point
    	mov	RBFWTP,ax		;Set write point
    ;
    	sti		;Enable interrupt
    ;
    ;	display CPU
    	mov	si,offset ckcpu	;set message top
    	call	puts		;display message
    ;
    ;	Check CPU
    	mov	ax,0101h
    	db	0d5h,10h	;aad 10h
    	cmp	al,0Bh		;NEC V20 ignores the argument
    	je	isv20
    	mov	si,offset intel
    isV20:	call	puts
    ;
    ;	Emulation sequence
    	db	0fh,0ffh	;BRKEM
    	db	offset VBRKEM/4	;Vector number
    ;
    emu80:
    	db	21h	;LXI
    	dw	offset hello
    string:
    	db	7Eh	;MOV A,M
    	db	0FEh,0	;CPI 0
    	db	0CAh	;JZ
    	dw	offset loop
    	db	0EDh,0EDh,0FDh	;CALLN 253(putch)
    	db	23h	;INX H
    	db	0C3h	;JMP
    	dw	offset string
    loop:
    	db	0EDh,0EDh,0FBh	;CALLN 251(getch)
    	db	0EDh,0EDh,0FDh	;CALLN 253(putch)
    	db	0C3h	;JMP
    	dw	offset string
    ;
    hello:	;HELLO, WORLD,CR,LF,0
    	db	48h,45h,4Ch,4Ch
    	db	4Fh,2Ch,20h,57h,4Fh,52h
    	db	4Ch,44h,0Dh,0Ah,00
    ;
    ;	reset
    	org	0fff0h
    	db	0eah	;jmp
    	dw	start	;offset
    	dw	0000h	;segment
    ;
    	end
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  9. #48
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я вот этим проектом вдохновляюсь. Основная неприятность в том, что нет эмулятора V20.

  10. #49
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    351
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    85
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    offtop: хотел в личку написать, а она отключена, может отдельную тему сделать по V20-MBC?
    Цитата Сообщение от ivagor Посмотреть сообщение
    Я вот этим проектом вдохновляюсь. Основная неприятность в том, что нет эмулятора V20.
    не понятно как выполняется загрузка начального лоадера. Эмулировать можно попробовать в Протеусе. Сейчас режим эмуляции 8080 в x86.dll еще не реализован, но я на него закладывался, как раз хорошая возможность это сделать. Добавить к схеме ПЗУ и UART на 8250/1, а терминал в Протеусе есть.

  11. #50
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,843
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,818
    Поблагодарили
    1,044 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из этого проекта я взял очень мало - детект V20, переключение в режим 8080, может еще какие-то мелочи. Детально в нем не разбирался, про загрузку не могу ничего сказать.
    Эмуляция в протеусе это в принципе хорошо, но мне она не поможет. Мне нужен быстрый эмулятор с хорошим отладчиком. Ограниченное решение я для себя нашел, просто отлаживаем отдельно части 8080 и 8088. В 8088 остается неотлаженным переключение, но можно понадеяться на копипасту из v20-mbc. Для простых вариантов (запустил v20, и он запустил программу 8080) это более-менее, но для сложных (использующих прерывания и вызовы кода 8088 из 8080) так конечно не наотлаживаешь.
    Последний раз редактировалось ivagor; 04.06.2022 в 10:27.

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. "ZX-8080" - Даунгрейд компьютера "Ленинград"
    от Mick в разделе Разработка электроники
    Ответов: 905
    Последнее: 08.01.2024, 16:11
  2. "ZX-8085" - Даунгрейд компьютера "Ленинград". Часть 2
    от Mick в разделе Разработка электроники
    Ответов: 55
    Последнее: 25.02.2023, 20:07
  3. Ответов: 17
    Последнее: 26.12.2015, 23:22
  4. куплю "нулёвку" - материнку или копм в сборе 8088-8086
    от palsw в разделе Барахолка (архив)
    Ответов: 59
    Последнее: 08.05.2012, 11:19
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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