Rev 87 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
87 | lvd | 1 | спецификации на прошивку НГС для демы на бухальт2013 |
2 | |||
3 | |||
4 | - поддержка механимзма обмена через host-порты B3 BB как в оригинале |
||
5 | |||
6 | - поддержка всех SPI портов как в оригинале |
||
7 | |||
8 | - поддержка переключения частоты z80 |
||
9 | |||
10 | - 4 порта для пейджинга 4 очков по 16к рамы: выводятся инвертированные номера |
||
11 | страниц (#7f^number, number=0..7f, 2Mb) |
||
12 | !!! пока нет, совместимо с нгс-конфой |
||
13 | |||
14 | - zx-dma на чтение (хост читает) с префетчем (8 или 16 байт) |
||
15 | |||
16 | --> нужна ли перестановка указателя DMA с хоста? если нужна, то зачем и в каком |
||
17 | виде? |
||
18 | !!! пока не нужна |
||
19 | |||
20 | - sdcard dma (sdcard->ram): чтение 512 байт с SPI в fpga-память, запись бёрстом |
||
21 | 512 байт (1024 такта Z80+busrq/busack) |
||
22 | |||
23 | - mp3 dma (ram->mp3): чтение бёрстом 512 байт из RAM в fpga-память, запись в |
||
24 | mp3-чип с троттлингом с его стороны. |
||
25 | |||
26 | --> нужно ли дма в RAM, или может быть начитка сдкарты в fpga - посылка в mp3? |
||
27 | !!! нужно дма в рам. |
||
28 | |||
29 | --> достаточно ли 1 машнки dma (которое или читает сдкарту или пишет мр3) или |
||
30 | --> надо 2 независимых? |
||
31 | !!! пока 2 независимых |
||
32 | |||
33 | - таймер со скоростью 37500гц/2,4,8,16,32,64,128,256 == 146.48гц, 292.97гц и т.д. |
||
34 | |||
35 | - прерывания: NMI от хоста, конец дма, таймер. приоритеты, вектор -- код |
||
36 | команды RST (можно применять im0, im1, im2). |
||
37 | |||
38 | --> или от хоста тоже INT? |
||
39 | !!! нет |
||
40 | |||
41 | - вочдог: надо его пинать раз в секунду, иначе ресет прошивки и уход на бут |
||
42 | оригинальной ngs-прошивки в альтеру. |
||
43 | |||
44 | --> девайсы для умножения, деления? Например умножатор: |
||
45 | out (port),lo1,hi1,lo2,hi2:in LL,LH,HL,HH,(port) |
||
46 | !!! пока не нужны |
||
47 | |||
48 | Свободные порты в НГС: #0C, #0D, #0E, #1A, #20..#3F |
||
49 | |||
50 | #20, #21, #22, #23: маппинг 16к паг в очки 0,1,2,3. Номера: неинвертированные |
||
51 | (write only) несдвинутые (0..4Мб=0..255, на некоторых НГС только 2Мб). |
||
52 | #22, #23 -- перекрывают MPAG, EXMPAG. norom действует для |
||
53 | тех же очек, что и обычно. |
||
54 | |||
55 | #0E: частота таймерного прерывания: значение | частота, Гц (write only) |
||
56 | ----------+------------- |
||
57 | (default) #00 | 37500/1 = 37500 |
||
58 | #01 | 37500/2 = 18750 |
||
59 | #02 | 37500/4 = 9375 |
||
60 | #03 | 37500/8 = 4687.5 |
||
61 | #04 | 37500/16 = 2343.75 |
||
62 | #05 | 37500/64 = 585.9375 |
||
63 | #06 | 37500/256 = 146.484375 |
||
64 | #07 | 37500/1024 = 36.62109375 |
||
65 | |||
66 | #0C: INTENA: бит | функция (write only) |
||
67 | -----+----------------------- |
||
68 | 7 | set/reset bit |
||
69 | 6 | |
||
70 | 5 | |
||
71 | 4 | |
||
72 | 3 | |
||
73 | 2 | enable MP3 dma end int (default=0) |
||
74 | 1 | enable SD dma end int (default=0) |
||
75 | |||
76 | |||
77 | #0D: INTREQ: бит | функция (read/write) |
||
78 | -----+---------------- |
||
79 | 7 | set/reset bit |
||
80 | 6 | |
||
81 | 5 | |
||
82 | 4 | |
||
83 | 3 | |
||
84 | 2 | MP3 dma end pending |
||
85 | 1 | SD dma end pending |
||
86 | |||
87 | Приоритеты прерываний: От младшего бита (наивысший) к старшим. |
||
88 | Вектор прерывания: для бита 0 - #FF, для бита 1 - #F7 и т.д. до бита 6 -- #CF |
||
89 | (коды команд RST #38, RST #30, ..., RST #08). |
||
90 | Считывание вектора прерываний снимает бит INTREQ, соответствующий взятому прерыванию. |
||
91 | |||
92 | |||
93 | |||
94 | |||
95 |