Hello world!
Moderator: Shaos
Re: Hello world!
Большой файл может быть только при загрузке/выгрузке всего диска, а это 256КБ всего, что даже при 9600 будет около 5-ти минут. А com файлы они и того короче. Но всегда хочется быстрее.)
Re: Hello world!
38400 уже работает на 4 мгц-ах.) В принципе, частоту можно поднять до 20-ти даже - только Flash нужна на 50ns (у меня 120 сейчас). А тогда можно и 115200 организовать. Ну и Z80 нужен на 20, которого нет.(Shaos wrote:на каких скоростях успеваешь работать?
Re: Hello world!
Просто поменял кварц на 12 и проц на 6 - вывод на 115200 ОК, но со вводом как то не стабильно...
Но это так, баловство. Но идея, думаю, понятна.)
Но это так, баловство. Но идея, думаю, понятна.)
Re: Hello world!
Примерно так.
- Attachments
- mondx.jpg (82.83 KiB) Viewed 4491 times
Last edited by Mondx on 05 Apr 2023 05:47, edited 1 time in total.
Re: Hello world!
А чего левый край картинок какой-то скушамшишный?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
http://www.umonfw.com/ucon/htmlhelp/ucon_faq.htmlWhat is uCon?
Its simply a terminal emulator, like HyperTerminal, but with a lot of interesting/unusual added capabilities aimed at the needs of embedded systems users and/or developers (but certainly not limited to that space).
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
Re: Hello world!
Перемещу ка я сюда схему ел диска через стек для z80, а то в теме РК-строения она, как то, не совсем.
Ну и пример чтения.
Code: Select all
; Read el disk sector
; inp: bc - sector address
; de - dma address
; used: hl,de,bc,af
read: ld hl,0
add hl,sp
ld (stk),hl ;сохранили sp
ld hl,128
add hl,bc
di
ld sp,hl ;sp на верхушку сектора
ld hl,128
add hl,de ;hl на верхушку dma
ld a,1
out (port),a ;разрешили диск
rept 128/2 ;пересылка
pop bc ;10
dec hl ;6
ld (hl),b ;7
dec hl ;6
ld (hl),c ;7 = 36 / 2 = 18T/byte
endm
ld a,0
out (port),a ;запретили диск
ld sp,0
stk equ $-2 ;восстановили стек
ei
ret
Re: Hello world!
А словами можно объяснить чего это тут происходит?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
Так камменты на русском же.) Обычная пересылка из стека, в основную память. Дисковая память выбирается через команды работающие со стеком. А схема для декодирования обращения к стеку, т.к. Z80 не выдаёт статус операции наружу, в отличие от 8080.
Re: Hello world!
Оказывается, в дизассемблере у меня недокументированные команды поддерживаются.) И даже такие накрученные:
Вот только ассемблер подобного не понимает.( Только так:
Code: Select all
0000: dd cb 05 40 bit 0,(ix+05h),b ;*
Code: Select all
0004: dd cb 05 46 bit 0,(ix+05h)
Re: Hello world!
Всё равно нифига не понятно...Mondx wrote:А схема для декодирования обращения к стеку, т.к. Z80 не выдаёт статус операции наружу, в отличие от 8080.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
На пальцах). Доступ к диску (/CS1) осуществляется только при разрешении (EN) и только через операции со стеком (с помощью PUSH/POP). Это скорость, т.к. эти команды наиболее шустро работают с памятью (2 байта на чтение/запись, автоинкремент/автодекремент). Плюс не нужно организовывать окно в адресном пространстве для диска. Здесь страницы диска по 64к - на всё адресное пространство. У 8080 слово состояния процессора позволяет идентифицировать операции со стеком - там проще. У Z80 такой возможности нет - приходилось городить схему выше.
Re: Hello world!
А откуда EN идёт?
Я тут за главного - если что шлите мыло на me собака shaos точка net
Re: Hello world!
С порта какого нибудь. Что бы последующие push/pop-ы включали дисковую память /CS1, вместо основной /CS0. Т.е. читаем код команды push/pop и в следующем цикле выполнения записи/чтения переключаемся на диск. Записали/прочли и по /М1 опять вернулись в основную.