Модульный Z80 компьютер RC2014
Moderator: Shaos
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
на дружественном ресурсе тоже обсуждают с фоточками:
https://zx-pk.ru/threads/26884-rc2014-%E2%80%94-modulnyj-bejsik-kompyuter-na-z80.html?highlight=rc2014
			
			
									
						
										
						https://zx-pk.ru/threads/26884-rc2014-%E2%80%94-modulnyj-bejsik-kompyuter-na-z80.html?highlight=rc2014
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
ВВ55 инициировать надо программно, а тут вставил и погналrw6hrm wrote:ВВ55 был бы более уместен, в случае, если не считать машинку игрушкой. имхо.Digital I/O:

https://www.youtube.com/watch?v=yW4p9V4OBo0
Code: Select all
4 LET F=100
5 LET K=1
10 FOR A=0 TO 1000
20 OUT 0,K
21 IF INP(0)=0 THEN GOTO 25
22 LET F=INP(0)+1
25 LET K=K*2
26 IF K<256 THEN GOTO 28
27 LET K=1
28 FOR I=0 TO F
29 NEXT I
30 NEXT A

придётся делать звуковую карточку, играющую сэмплы из памяти

- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Может мне им сделать видеокарточку с SX-28 на базе этого, а то они там с розбери-паем мучаются 
			
			
									
						
										
						
- 
				Lavr  
- Supreme God
- Posts: 16793
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Модульный Z80 компьютер RC2014
Чисто из интересу: если конструкция модульная, есть материнская плата и можно втыкатьShaos wrote:Этот вариант RC2014 по сути есть копия 32кб версии одноплатного компьютера Grant Searle:
http://searle.hostei.com/grant/z80/SimpleZ80_32K.html
дополнительные устройства, шины процессора пробуферированы?
P.S. И, кстати, вот здесь излагают про RC2014 — модульный бейсик-компьютер на Z80,
и ругают "видеокару" на "Малине.Pi" - "Raspberry здесь - больное место.
Это всё равно что поставлять в комплекте с конструктором ноутбук."
iLavr
			
						- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Нет. От автора объяснение такое - используйте только 74HCT-серию в периферийных платах и будет вам щастье ибо она жрёт немного по входам и на выходах выдаёт "rail-to-rail" и поэтому мы де всё тычем напрямую в процых без буферизации...Lavr wrote:Чисто из интересу: если конструкция модульная, есть материнская плата и можно втыкатьShaos wrote:Этот вариант RC2014 по сути есть копия 32кб версии одноплатного компьютера Grant Searle:
http://searle.hostei.com/grant/z80/SimpleZ80_32K.html
дополнительные устройства, шины процессора пробуферированы?
Ну я свой линух PC использую как терминалLavr wrote:P.S. И, кстати, вот здесь излагают про RC2014 — модульный бейсик-компьютер на Z80,
и ругают "видеокару" на "Малине.Pi" - "Raspberry здесь - больное место.
Это всё равно что поставлять в комплекте с конструктором ноутбук."

- 
				Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Модульный Z80 компьютер RC2014
У авторов RC2014 концепция "полный минимализм". На поиграться 1 час после работы самое то за 3руб. Буферизация займет большую часть платы. А все остальное типа используйте 74HCT - отмазка для назойливых юзеров в коментах.Shaos wrote:Нет. От автора объяснение такое - используйте только 74HCT-серию в периферийных платах и будет вам щастье ибо она жрёт немного по входам и на выходах выдаёт "rail-to-rail" и поэтому мы де всё тычем напрямую в процых без буферизации...
И действительно кому интересно проектировать схемы есть проект на шине ECB. Или даже S100 - для "прожженных" схемотехников.
Да и удовольствие это уже не дешевое схемы на рассыпухе делать. Сколько там эта малина стояла, сразу после выхода?
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
			
						http://www.orion-ext.narod.ru
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
вот есть список задействованных портов:
https://feldtmann.ddns.net/rc2014/doc/i_o-ports.html
я вижу несколько дырок, которые я бы мог заюзать - например:
для сетевой карточки мне нужно будет 8 портов - сюда логичнее взять последнюю область
а для текстовой видеокарточки мне нужен будет только один порт, но легко декодируемый - взять из области #D8...#DB, скажем #DA?
с другой стороны если тормозить процессор вейтом, то чтение ненужно (или туда PS/2-клаву присобачить?)
при записи байта в регистр надо будет взвести триггер, выдающий IFLAG на схему и этот триггер будет сброшен, когда SX-28 выдаст OFLAG, по которому в свою очередь обнулится !WAIT - вобщем как-то так...
			
			
									
						
										
						https://feldtmann.ddns.net/rc2014/doc/i_o-ports.html
я вижу несколько дырок, которые я бы мог заюзать - например:
Code: Select all
#D4...#D7 (110101xx)
#D8...#DB (110110xx)
#E8...#EF (11101xxx)
а для текстовой видеокарточки мне нужен будет только один порт, но легко декодируемый - взять из области #D8...#DB, скажем #DA?
Code: Select all
Port #DA
      __
A7 --|& |
     |  o--
A6 --|__|  |   __
            --|1 |
A5 -----------|  |--
      __    --|__|  |
A4 --|& |  |        |
     |  o--         |
A3 --|__|           |
                    |
A2 --------         |
      __   |   __   |   __
A1 --|& |   --|1 |   --|1 |
     |  o-----|  |-----|  |--
M1 --|__|   --|__|   --|__|  |
           |        |        |
A0 --------         |        |
                    |        |   __
/IORQ --------------         *--|1 |
                             |  |  |-- /DARD
/RD -------------------------|--|__|
                             |   __
/WR -------------------------|--|1 |
                             |  |  |-- /DAWR
                              --|__|
при записи байта в регистр надо будет взвести триггер, выдающий IFLAG на схему и этот триггер будет сброшен, когда SX-28 выдаст OFLAG, по которому в свою очередь обнулится !WAIT - вобщем как-то так...
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
И будет оно выглядеть вот такShaos wrote:Может мне им сделать видеокарточку с SX-28 на базе этого, а то они там с розбери-паем мучаются

You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Модульный Z80 компьютер RC2014
Сдается без разницы что куда вешать. Народ развлекается по полной. Как пример. Почти ColecoVision один товарищ собрал на базе RC2014.Shaos wrote:вот есть список задействованных портов:
https://feldtmann.ddns.net/rc2014/doc/i_o-ports.html
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
			
						http://www.orion-ext.narod.ru
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Ну с другими платками пересекаться нежелательно иначе народ небудет использовать по причине несовместимостиAlekcandr wrote:Сдается без разницы что куда вешать. Народ развлекается по полной. Как пример. Почти ColecoVision один товарищ собрал на базе RC2014.Shaos wrote:вот есть список задействованных портов:
https://feldtmann.ddns.net/rc2014/doc/i_o-ports.html

- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Попробовал монитор:
в недотексте он будет выглядеть так:
			
			
						Code: Select all
Small Computer Monitor by Stephen C Cousins (www.scc.me.uk)                                                                              
Version 1.0.0 configuration R1 for Z80 based RC2014 systems                                                                               
                                                                                                                                          
Monitor commands:                                                                                                                          
A [<address>]  = Assemble        |  D [<address>]   = Disassemble                                                                          
M [<address>]  = Memory display  |  E [<address>]   = Edit memory                                                                          
R [<name>]     = Registers/edit  |  F [<name>]      = Flags/edit                                                                            
B [<address>]  = Breakpoint      |  S [<address>]   = Single step                                                                            
I <port>       = Input from port |  O <port> <data> = Output to port                                                                         
G [<address>]  = Go to program
BAUD <device> <rate>             |  CONSOLE <device>
FILL <start> <end> <byte>        |  API <function> [<A>] [<DE>]
DEVICES, DIR, HELP, RESET
*d
121D: 30 10        0.    JR NC,$10  (to $122F)
121F: 22 73 FE     "s.   LD ($FE73),HL
1222: 21 C0 FC     !..   LD HL,$FCC0
1225: 11 03 00     ...   LD DE,$0003
1228: 2B           +     DEC HL
1229: 72           r     LD (HL),D
122A: 2B           +     DEC HL
122B: 73           s     LD (HL),E
122C: 22 81 FE     "..   LD ($FE81),HL
122F: C3 D2 0E     ...   JP $0ED2
1232: 3E 03        >.    LD A,$03
1234: CD 23 02     .#.   CALL $0223
1237: CD 20 04     . .   CALL $0420
123A: 3E 26        >&    LD A,$26
123C: CD 23 02     .#.   CALL $0223
123F: CD 45 1B     .E.   CALL $1B45
1242: CD 4D 1B     .M.   CALL $1B4D
1245: C0           .     RET NZ
1246: CD 16 1C     ...   CALL $1C16
1249: FE 03        ..    CP $03
You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				Alekcandr
- Doomed
- Posts: 665
- Joined: 01 Oct 2007 10:30
- Location: Ukraine
Re: Модульный Z80 компьютер RC2014
У меня тоже такой есть и даже с барсиком (z280)  
 
			
			
									
						
							 
 
Code: Select all
>go to address: 0x0000 press Return to execute command
Small Computer Monitor - RCZ280
*help
Small Computer Monitor by Stephen C Cousins (www.scc.me.uk)
Version 1.0.0 configuration Z1 for Bill Shen's Z280 based RCZ280 system
Monitor commands:
A [<address>]  = Assemble        |  D [<address>]   = Disassemble
M [<address>]  = Memory display  |  E [<address>]   = Edit memory
R [<name>]     = Registers/edit  |  F [<name>]      = Flags/edit
B [<address>]  = Breakpoint      |  S [<address>]   = Single step
I <port>       = Input from port |  O <port> <data> = Output to port
G [<address>]  = Go to program
BAUD <device> <rate>             |  CONSOLE <device>
FILL <start> <end> <byte>        |  API <function> [<A>] [<DE>]
DEVICES, DIR, HELP, RESET
BASIC    Grant Searle's adaptation of Microsoft BASIC
WBASIC   Warm start BASIC (retains BASIC program)
CPM      Load CP/M from Compact Flash (requires prepared CF card)
*
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
			
						http://www.orion-ext.narod.ru
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
вообще если иметь свой отдельный порт, то придётся переделывать прошивки - все эти бейсики и мониторы, а я смотрю там достаточно простой интерфейс к этому чипу MC68B50 Asynchronous Communications Interface Adapter (ACIA) - порт контроля $80 и порт данных $81 - его можно относительно легко сымитировать (правда придётся ещё и контроллер PS/2-клавы на эту же плату за уши притягивать, чтобы полноценный терминал был)Shaos wrote:а для текстовой видеокарточки мне нужен будет только один порт, но легко декодируемый - взять из области #D8...#DB, скажем #DA?
...
с другой стороны если тормозить процессор вейтом, то чтение ненужно (или туда PS/2-клаву присобачить?)
при записи байта в регистр надо будет взвести триггер, выдающий IFLAG на схему и этот триггер будет сброшен, когда SX-28 выдаст OFLAG, по которому в свою очередь обнулится !WAIT - вобщем как-то так...
вот исходник интерфейса к ACIA из MS-бейсика от Grant Searle:
отсюда видятся только вот такие точки взаимодействия:
Code: Select all
RTS_HIGH        .EQU     0D6H ; 11010110
RTS_LOW         .EQU     096H ; 10010110
Interrupt:
                ...
                IN       A,($80)
                AND      $01             ; Check if interupt due to read buffer full
                ...
                IN       A,($81)         ; Read data
                ...
                LD       A,RTS_HIGH
                OUT      ($80),A
RXA:            ; loop if buffer is empty
                ...
                LD       A,RTS_LOW
                OUT      ($80),A
TXA:            PUSH     AF              ; Store character
conout1:        IN       A,($80)         ; Status byte       
                BIT      1,A             ; Set Zero flag if still transmitting character       
                JR       Z,conout1       ; Loop until flag signals ready
                POP      AF              ; Retrieve character
                OUT      ($81),A         ; Output the character
                RET
INIT:
               ...
               LD        A,RTS_LOW
               OUT       ($80),A         ; Initialise ACIA
               IM        1
при записи проверяется бит готовности 1 в порту $80 (признак пустоты буфера передачи)
ну и при получении символа программа сигнализирует, что символ получен путём взведения бита 6 в порту $80
а порт $81 просто используется для чтения байта с ввода и для передачи байта на вывод
P.S. а вот со Small Computer Monitor несколько сложнее т.к. он проверяет наличие одного из устройств - ACIA или SIO/2 и вот что он делает для ACIA:
Code: Select all
; Control register values
k6850Reset: .EQU 0b00000011     ;Master reset
k6850Init:  .EQU 0b00010110     ;No int, RTS low, 8+1, /64
; Status (control) register bit numbers
k6850RxRdy: .EQU 0              ;Receive data available bit number
k6850TxRdy: .EQU 1              ;Transmit data empty bit number
; Device detection, test 1
; This test just reads from the devices' status (control) register
; and looks for register bits in known states:
; /CTS input bit = low
; /DCD input bit = low
; WARNING
; Sometimes at power up the Tx data reg empty bit is zero, but
; recovers after device initialised. So test 1 excludes this bit.
k6850Mask1: .EQU  0b00001100    ;Mask for known bits in control reg
k6850Test1: .EQU  0b00000000    ;Test value following masking
; Device detection, test 2
; This test just reads from the devices' status (control) register
; and looks for register bits in known states:
; /CTS input bit = low
; /DCD input bit = low
; Transmit data register empty bit = high
k6850Mask2: .EQU  0b00001110    ;Mask for known bits in control reg
k6850Test2: .EQU  0b00000010    ;Test value following masking
; RC2014 serial 6850 initialise
;   On entry: No parameters required
;   On exit:  Z flagged if device is found and initialised
;             AF BC DE HL not specified
;             IX IY I AF' BC' DE' HL' preserved
; If the device is found it is initialised
RC2014_SerialACIA1_Initialise:
; First look to see if the device is present
; Test 1, just read from chip, do not write anything
            IN   A,(kACIA1Cont) ;Read status (control) register
            AND  k6850Mask1     ;Mask for known bits in control reg
            CP   k6850Test1     ;and check for known values
            RET  NZ             ;If not found return with NZ flag
; Attempt to initialise the chip
            LD   A,k6850Reset   ;Master reset
            OUT  (kACIA1Cont),A ;Write to ACIA control register
            LD   A,k6850Init    ;No int, RTS low, 8+1, /64
            OUT  (kACIA1Cont),A ;Write to ACIA control register
; Test 2, perform tests on chip following initialisation
            IN   A,(kACIA1Cont) ;Read status (control) register
            AND  k6850Mask2     ;Mask for known bits in control reg
            CP   k6850Test2     ;Test value following masking
;           RET  NZ             ;Return not found NZ flagged
            RET                 ;Return Z if found, NZ if not
и прерывания этот монитор не использует (No int, RTS low, 8+1, /64)
значит надо поддержать вариант работы и с прерываниями, и без...
P.P.S. Значит Бейсик ожидает контроллер ACIA по адресам $80,$81. Монитор SCM смотрит в 2 места - $80,$81 и $40,$41.
Поглядел ещё в исходники RomWBW - этот поддерживает только $A0,$A1 и $60,$61 (т.е. бит 5 ещё задействан - там 1 будет).
Хотя https://github.com/wwarthen/RomWBW/blob/master/Source/HBIOS/acia.asm
Судя по комментариям он всё также использует $80,$81 или $40,$41 ACIA, но чтобы их детектирование не путало другие устройства по тем же адресам, он торкает $60 и $A0 (т.к. в ACIA всё равно только старшие 2 бита адреса проверяются):
Code: Select all
; POSSIBLE BASE I/O ADDRESSES
; NOTE THAT THE ACIA ONLY QUALIFIES ADDRESS BITS 7 & 6, SO
; THE ACIA'S TWO PORTS APPEAR REPEATEDLY OVER AN ADDRESS RANGE
; OF $40 STARTING FROM THE REAL BASE PORT.
; WE TAKE ADVANTAGE OF THIS TO AVOID CONFLICTING WITH SIO
; AND COMPACT FLASH MODULES DURING DETECTION PROBES.
;
ACIAA_BASE .EQU	$80 + $20	; MODULE A
ACIAB_BASE .EQU	$40 + $20	; MODULE B
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Существует аналогичная плата для RC2014 - VGA-выход и USB-клава на пропеллере "VGA Serial Terminal Kit for RC2014":
https://www.tindie.com/products/maccasoft/vga-serial-terminal-kit-for-rc2014/
Набор стоит $46.50 и работает совместно с платой последовательного интерфейса
В моём случае это будет NTSC/PAL+PS/2 Serial Terminal Kit for RC2014 который работает ВМЕСТО платы последовательного интерфейса и надо как-то уложиться хотя бы в $50...
			
			
									
						
										
						https://www.tindie.com/products/maccasoft/vga-serial-terminal-kit-for-rc2014/
Набор стоит $46.50 и работает совместно с платой последовательного интерфейса
В моём случае это будет NTSC/PAL+PS/2 Serial Terminal Kit for RC2014 который работает ВМЕСТО платы последовательного интерфейса и надо как-то уложиться хотя бы в $50...
- 
				Shaos  
- Admin
- Posts: 24404
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Модульный Z80 компьютер RC2014
Вот на скорую руку нарисовал в Eagle v5.12.0 шаблон для платок RC2014 более-менее похожий на рекомендации автора:
http://rc2014.co.uk/1377/module-template/
P.S. Перезалил 25 февраля 2019 года после устранения несовместимости с дефолтными правилами игла
			
			
						http://rc2014.co.uk/1377/module-template/
P.S. Перезалил 25 февраля 2019 года после устранения несовместимости с дефолтными правилами игла
You do not have the required permissions to view the files attached to this post.
			
						
										
						 
				
