Новый старый Специалист :)

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Новый старый Специалист :)

Post by shoorick »

Раззадорили вы меня, решил спаять себе опять спеца :) Конечно же, классику :) Короче, уже пипикает, правда, выяснилось, что в закромах Родины остался только один КП2 :( щас занимаюсь срочным их поиском...

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

плата, со старых запасов. последняя непаянная была :) правда, какчество оказалос... сверло гуляло как хотело, хомутов было немеряно, в т.ч. пришлось некоторые дорожки резать и обводить проволочками, а одной дорожки вообще не было как так и надо 8)

снимал веб-камерой, доделаю - сделаю или фото получше, или на сканере попробую. фотик уехал на море, но и он у меня не супер :)
Все ретро, кроме панелек под РУ5 и электролитов :)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

так-с... вот и этот запипикал :)
Image
(это не я собирал, мне его подарили, но чинить его пришлось - ИЕ7 сдохла)

теперь надо с гаража маленький телек принести (большого теперь боюсь - хватит с меня одного пшика)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

короче говоря, без фефектов никак. мало того, что с ходу тактовый генератор не завелся, помогла только замена ЛН1, при просмотре видео оказалось, что в ИР12 один бит битый, хотя все микрухи тут изначально непаянные. пришлось вставить (вы)паяный ИР12 на панельке на всякий случай. так что любовь к ретрочипам у меня пошатнулась :) или это лихие 90-е без ОТК? ;) вобщем, тест работает, но все микрухи памяти под вопросом и загрузчик не работает. т.е., видимо запись проходит нормально, а чтение наверное нет... вопщем, будет еще чем поразвлечься :) вместо нехвативших КП2 поставил 555КП12 (что дали, как говорится)

Image
User avatar
fifan
Devil
Posts: 911
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

А писишный разъем сам поставил? Фотка прекрасная, можно мне на сайт поставить?
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

да, на краю платы дырочек насверлил, питаю писишным бп (21 век на дворе)

можно, конечно :) это сканером снято (эпсон на работе).

обидно, конечно, что пока не пашет, но хорошо, что тест на экран нормально выводит - есть от чего отталкиваться, а то у меня единственное отличие от тех лет - появился старенький осциллограф :) надеюсь, заборю ;)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

Тык-с... збацал тестик

Code: Select all

;=======================================================================
include "8080.inc"
include "win2koi7.inc"
include "bv.inc"
;-----------------------------------------------------------------------
macro rom_call _proc {
    local  .next
    lxi sp,.next - 2
    jmp _proc
    dw .next
.next:    
}

macro test_head _line,_number {
    mvi e,_line
    mvi d,scr_left
    lxi b,_test
    rom_call str_out
    mvi a,_number
    rom_call char_out
    inr d
}
;=======================================================================
rom_base equ 0C000h
scr_left equ 92h
;=======================================================================
    org rom_base 
;-----------------------------------------------------------------------
    jmp @F
@@:    
    mvi a,82h
    sta 0FF03h
    rom_call cls  
    mvi e,5
    mvi d,scr_left
    lxi b,_ver
    rom_call str_out
;-----------------------------------------------------------------------
;   проверка возможности записи и чтения из видео памяти
;-----------------------------------------------------------------------
    test_head 20,"1"
    lda 0A000h
    mov c,a
    cma
    sta 0A000h
    lda 0A000h
    cma
    cmp c
    lxi b,_ok
    jz  @F
    lxi b,_err
@@:
    rom_call str_out    
;-----------------------------------------------------------------------
;   проверка пересечения областей памяти
;-----------------------------------------------------------------------
;   2 - A14
;   3 - A15
;-----------------------------------------------------------------------
test2_3:
    test_head 30,"2"
    xra a
    sta 0
    sta 4000h
    sta 8000h
    dcr a
    sta 0
    lda 4000h
    ora a
    jnz .err
    lxi b,_ok
    rom_call str_out    
;-----------------------------------------------------------------------
    test_head 40,"3"
    lda 8000h
    ora a
    lxi b,_ok
    jz  @F
.err:    
    lxi b,_err
@@:
    rom_call str_out    
;-----------------------------------------------------------------------
@@:
    jmp @B
;=======================================================================
;
;=======================================================================
cls:
    lxi h, 9000h
    lxi b,0C000h
    mvi e,0
@@:
    mov m,e 
    inx h
    mov a,h
    cmp b
    jnz @B
    mov a,l
    cmp c
    jnz @B
    ret
;-----------------------------------------------------------------------
;  a - символ
; de - позиция на экране (абсолютный адрес)
; hl - используется
;-----------------------------------------------------------------------
char_out: 
    lxi h,(font shr 3) - 32
    add l
    mov l,a
    jnc @F
    inr h
@@:
    dad h
    dad h
    dad h
repeat 8
    mov a,m
    stax d
    inr l
    inr e    
end repeat
    mov a,e
    sui 8
    mov e,a
    ret    
;-----------------------------------------------------------------------
; bc - указатель на строку. используется всё.
; de - позиция на экране (абсолютный адрес)
;-----------------------------------------------------------------------
str_out:
    ldax b
    ora a
    rz
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    lxi h,(font shr 3) - 32
    add l
    mov l,a
    jnc @F
    inr h
@@:
    dad h
    dad h
    dad h
repeat 8
    mov a,m
    stax d
    inr l
    inr e    
end repeat
    mov a,e
    sui 8
    mov e,a
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    inx b
    inr d
    jmp str_out    
;=======================================================================
  
_test:  dr "ТЕСТ ",0
_ok:    dr " - OK",0
_err:   dr " - ОШИБКА!",0
_ver:   dr "ВЕРСИЯ ",MAIN_VERSION,".",SUB_VERSION,".",BUILD_VERSION,0

times ((256 - ($ and 255)) and 255) db 0FFh 

font: file "font.bin"

;=======================================================================
times (rom_base + 2048 - $) db 0FFh
;=======================================================================
должно быть так:
Image

а в жизне так:
Image

так что буду трейсить А14/А15 тестером :o
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

скоро отчитаюсь о проделанной работе :)

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

вопщем, заменил еще одну микруху: ЛЕ1, и все зашуршало, так что в ночь с 09 на 10 июля появился еще один Спец :)

просто "видон"
http://www.youtube.com/watch?v=j0fxEjdtRvI

spaceking
http://www.youtube.com/watch?v=fpiGWiIAYCc

пока засунул в корпус от принтера - подошел тютелька в тютельку, что плохо: бп снаружи, расширения лепить негде (если ваще буду их лепить). засунуть пришлось, т.к. на него постепенно начали складывать всякую всячину :evil: (жысть...)

http://picasaweb.google.com/shooricks/b ... 1009324562
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

у себя выложил программу для конвертирования файлов RKS в WAV для загрузки на Специалист через магнитофонный вход. По умолчанию добавляет заголовок для монитора, а также при необходимости может расчитывать контрольную сумму блока.

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

балуемся... :roll:

Image
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

кстати, только одна таблица синусов занимает 180 байт ;)
841 байт - векторное описание надписей "FASM" и "ФАХ²ВЕЦЬ",
подпрограммы рисования линий и окружностей работают с 16-битными координатами, подпрограмма рисования окружностей может также рисовать дуги с шагом 1/8 окружности в любой комбинации. синус - с любыми углами в градусах (автоматически приводится к диапазону 0-90)... так что, кое-что там отимизировать однозначно можно, но насчёт 512 байт меня терзают смутные сомнения :P
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

вообще-то это я пишу либу для себя (наверстываю упущенное), и данная дема - фактически ее испытание, а не пример оптимальности или минимальности. конечно, с точки зрения алгоритмов у меня пробел в образовании, поэтому могу чего-нибудь оптимального "всем известного" не знать, но главное для меня - желаемый результат достигается ;) таблица синусов - для рисования синусоиды. круги рисую брезенхемом ;) кв. корень пока не реализовывал, хотя не помешал бы.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

круги делаются алгоритмом брезенхема без синусов, корней и таблиц :)

синус используется здесь для рисования синусоиды, причем функция целочисленная, она не выдает синус, а выдает произведение переданной константы на синус угла в градусах, взятый из таблицы ;)
таблица состоит из двойных слов синус угла * 65536. после умножения на слово получаем двойное слово, в качестве результата используем старшее слово, младшее отбрасываем (очень быстрое деление на 65536). вот.