Форум за любителите на Стара електроника
Персонални компютри, игрови приставки и друга стара електроника за забавление => Ремонт, схеми, документация, литература => Темата е започната от: dartdart26 в 14 Ноември, 2016, 23:16:11
-
Здравейте,
След доста години (над 15) си взех личния Правец 82 (беше при роднини за детето им) и се сдобих с още един Правец 8М . И двата не работят и физически нямат големи повреди.
Правец 82:
- счупени крачета (по едно) на 2 от ROM-те
- счупено краче на поне един РАМ чип
В момента нямам възможност за снимки на Правец 82, ще ги добавя. Изходът на екрана представлява 4 или 5 вертиканли линии.
Относно Правец 8М:
- не мога да видя физически проблеми по дъното:
[attach=2]
- има само един ROM чип, имаше тема по форума за да разбера дали трябва да е с един само или повече
При пускането му се вижда следната картина:
[attach=1]
Целта ми е да ползвам C/C++ компилатор за писане на софтуер, както прави този пич:
/>
Много съм се вманиачил в идеята за x86-to-6502 компилатора му и искам да го изпробвам на Правец. Мога да го правя с емулатор, но не е същото...
В тази връзка ми се иска да подкарам 6502 частта на 8M.
Програмист съм, но нямам познания в електрическата част. Бихте ли ми помогнали с насоки - как да се опитам да ги подкарам, има ли някой човек, който би ги погледнал?
Благодаря!
-
звучи яко това дето искаш да го правиш :)
от х86 към 6502. А обратното сигурно е пак толкова сложно а? :)
Винаги съм се дивик какви красиви игри имат 8 битовите конзоли и колко зле са портнати на първите IBM х86 платформи :blum1:
-
както винаги, ще започна с отговора на другите като теб:
1. Използвай търсачката!!!
примерни теми в нашият форум:
Паралелно възстановяване на Правец 16 и Правец 8М (http://www.sandacite.com/forum/index.php?topic=3041.msg60306#msg60306)
Въпроси относно съживяване на Правец 8М (http://www.sandacite.com/forum/index.php?topic=7269.0)
и т.н.т.
и ако пак нищо не стане, пиши.
-
Добър вечер,
За 8М сега погледнах, ако всичко е както ти е снимката липсват ти два ЕПрома на тях пише : F0 D8
тип m2764A на самото дъно има номерация DF1 и DF3
Лека вечер
-
Както е написал колегата в горния ппост, чиповете може да са два - 2764, но може да е един - 27128. Над DF1 има джъмпер EJ с две позиции - мост между 1-2 и мост между 2-3 погледнато от ляво на дясно. При мост между 1-2 се ползват два чипа 2764, при мост между 2-3 се ползва един чип 27128, който се монтира на цокъл DF1. На мойта платка няма монтиран джъмпер физически, проосто е направен мост с проводник.
-
Какво направи с компютрите? Не писа нищо повече. Ако идеята е още жива мога да погледна платките. Ще ми трябват само дъната без захранване, клавиатура и т.н. Ако решиш пиши тук.
-
Какво направи с компютрите? Не писа нищо повече. Ако идеята е още жива мога да погледна платките. Ще ми трябват само дъната без захранване, клавиатура и т.н. Ако решиш пиши тук.
Здравей,
Междувременно се сдобих и с един 8С, същите симптоми като 8М (няма видими поражения). Може би един от РАМ чиповете не е напълно наред (крачетата не са напълно прави).
Иначе - не ми остана време тази седмица, надявам се уикенда да мога. Не съм се отказал, даже напротив :)
Благодаря ти за предложението, ще се възползвам :) Ако искаш да се разберем на лично.
Може би и нещо, което забравих да спомена - предлагам заплащане, почерпка, забавни моменти с тази идея горе, по избор на човека :)
-
Огромно благодаря на nova600! Рядко се срещат такива хора... Сега имам работещ 8C!
Оказа се проблем с клавиатурата - счупени крачета на конектора.
Сега мога да продължа напред :)
[attach=1]
[attach=2]
-
Здравейте,
nova600 е подкарал и личния ми Правец 82 (много съм щастлив), както и има успех с 8M-a . Отново, големи благодарности :)
Остана ми време тази вечер и успях да подкарам C++14 програма на Apple II емулатора :) Като дойде флопито за физическия Правец - ще го пробвам там.
Набързо ще обясня как става. Първо, правя всичко под Ubuntu. Би трябвало да стане и с други компилатори, но това имам под ръка.
Нужен софтуер:
- g++ (sudo apt-get install g++ && sudo apt-get install g++-multilib)
- x86-to-6502 (https://github.com/lefticus/x86-to-6502) - компилира се просто като (cd src; g++ main.cpp -o x86-to-6502)
- 6502 асемблер (sudo apt-get install xa65)
- Apple II/Правец 8 емулатор (https://github.com/AppleWin/AppleWin)
- софтуер за създаване на дискове и файлове (http://a2ciderpress.com/)
- wine (sudo apt-get install wine-stable) - пускам Windows версията на AppleWin емулатора, проблеми с native версията под Linux
Целта ни е да запишем стойността 0x12 в адрес 0x526 . Резултатът е буквичката "R" в горния десен ъгъл на екрана.
C++ програмата, която го прави е (нарочно написана в C++ режим, това е целта на упражнението, да не се сърдят C програмистите :) ):
#include <cstdint>
using mem_addr_t = uint16_t;
using mem_loc_t = volatile uint8_t;
int main()
{
const auto set_mem = [](mem_addr_t addr) -> mem_loc_t& { return *(reinterpret_cast<mem_loc_t*>(addr)); };
set_mem(0x526) = 0x12;
}
Първата стъпка е да компилираме програмата за x86 и да генерираме 6502 асемблер:
g++ -c -O3 -o- -Wall -Wextra -m32 -march=i386 -std=c++1z -S print_r.cpp | ./src/x86-to-6502 | sed '/^\t\./d' > print_r.6502
Изходът е print_r.6502 файл с 6502 асемблерен код:
main
lda #18 ; movb $18, 1318
sta 1318 ; movb $18, 1318
lda #$00 ; xorl %eax, %eax
sta $03 ; xorl %eax, %eax
sta $04 ; xorl %eax, %eax
rts ; ret
Следващата стъпка е да създадем изпълним файл с 6502 асемблера (разширението на името на файла указва, че е binary тип файл):
xa -C print_r.6502 -o PRINTR#060300
Остава да създадем дискета с DOS 3.3 със CiderPress:
[attach=1]
Записваме изпълнимия файл там:
[attach=2]
И накрая зареждаме от дискетата в Apple II емулатора, пускаме програмата и виждаме, че се появява буквата R горе :) :
[attach=3]
Като остане време ще пробвам и по-сложни неща, както и потенциално може да се направи библиотека от високо ниво за работа с хардуера (примерно библиотека за графика на C++, естествено без exceptions, динамична памет с heap и т.н.)
Ако някой се интересува и му е интересно - ще съдействам както мога.
Благодаря за помощта :)
-
Въпреки всичко предпочитам така :
LDA #12
STA $526
RTS
Просто и ясно .
-
Просто и ясно.
... и 6 байта по-малко ... и 8 микросекунди по бързо, за това време колко бира се изпива ... :D
а пък най-добре в монитора: A9 12 8D 26 05 60 - само поглеждаш и разбираш за какво става дума.
-
Е, вие пък... :)
Това е защото е main(), в много голяма част от случаите ще са inline-нати функциите и няма да го има този дефект :)
-
A9 12 8D 26 05 60
Кратко и ясно ;)
-
Друго, което обмислям (поради малкия стек от 256 байта на 6502) е следното:
Генерирам C код от C++ (http://llvm.org/releases/3.1/docs/FAQ.html#translatecxx) и след това ползвам native C компилатора за 6502 . Според следната страница си прави собствен стек и лимитацията отпада: http://wiki.cc65.org/doku.php?id=cc65:parameter_and_return_stacks
Ще пиша какво става като го пробвам.
-
Стана ми интересно... :).
Каква е целта на упражнението?
Споменаваш и 'native' компилатор - кой е той? ... или имаш предвид 'cross' компилатор?
Иначе, както се казва 'за статистиката', стека хич не е малък - даже има място в него за драйвер или кратка програма - факт!