Simulator (Computer Architecture)

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Simulator (Computer Architecture)

Post by Lavr »

Computer Architecture

Довольно неглупый сайт, где, наряду с основами цифровой электронки и
Булевой алгебры, довольно популярно и кратко излагаются основы разработки
микропроцессоров и микрокомпьютеров.
http://dept-info.labri.u-bordeaux.fr/~s ... l/Dir.html

The first computer



PS. Материал оформлен в читабельном виде в форматах .pdf, .ps,
а также под ТЕХ-ом. Язык как французский, так и английский, но
на обоих курс Computer Architecture изложен доходчиво и прозрачно,
почему я и поместил данную ссылку в книги.
Last edited by Lavr on 22 Jun 2011 04:02, edited 2 times in total.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

А это вроде и не книги, и не пресса - наверное надо перенести куда-то...

Про симулятор http://dept-info.labri.u-bordeaux.fr/~s ... imulator.c

Чтобы оно собралось, мне пришлось сделать следующие изменения (профессор специально навставлял ляпов?):

Code: Select all

diff simulator.c simulator2.c 
516c516
<   if(mop[6])
---
>   if(mops[6])
518c518
<   else if(mop[5])
---
>   else if(mops[5])
522c522
<   if(mop[3] && !mop[4])
---
>   if(mops[3] && !mops[4])
524,525c524,526
<   else if(mop[8])
<     value_data_bus = contents_r1_slave[value_address_bus];
---
>   else if(mops[8])
> /*    value_data_bus = contents_r1_slave[value_address_bus]; */
>     value_data_bus = contents_r1_slave; /* ??? */
528c529
<   if(mop[3] && mop[4])
---
>   if(mops[3] && mops[4])
532c533
<   if(!mop[1] && mop[2])
---
>   if(!mops[1] && mops[2])
534c535
<   if(mop[9])
---
>   if(mops[9])
536c537
<   if(mop[11])
---
>   if(mops[11])
540c541
<   switch((mop[13] << 2) | (mop[14] << 1) | (mop[15] << 0))
---
>   switch((mops[13] << 2) | (mops[14] << 1) | (mops[15] << 0))
552c553
<       value_alu = contents_r0_slave + contens_r1_slave;
---
>       value_alu = contents_r0_slave + contents_r1_slave;
555c556
<       value_alu = contents_r0_slave - contens_r1_slave;
---
>       value_alu = contents_r0_slave - contents_r1_slave;
560c561
<   if(mop[12])
---
>   if(mops[12])
Вот что получилось: http://nedopc.org/nedopc/upload/simulator2.c

Программа видать недописана, т.к. диаграмму она рисует исправно, но больше ничего не делает - и несобираемые ляпы были именно в симулирующей части. Вот собственно что она рисует:

Image

P.S. Кстати в учебном году 2004-2005 симулятор выглядит существенно поувесистей: http://dept-info.labri.u-bordeaux.fr/~s ... 2004-2005/
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote: P.S. Кстати в учебном году 2004-2005 симулятор выглядит существенно поувесистей: http://dept-info.labri.u-bordeaux.fr/~s ... 2004-2005/
Вот что делает самый новый симулятор:

Image
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:А это вроде и не книги, и не пресса - наверное надо перенести куда-то...
может в software?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

вот все версии симулятора, которые есть на этом сайте:
simulator.c 11-Nov-1999 20:55 15K (оригинальный некомпилируемый код)
simulator.c 20-Dec-1999 15:57 25K (использует файлы образы памяти)
simulator.c 07-Dec-1999 11:33 28K (чуть более продвинутая версия)
gsimulateur.tgz 19-Feb-2002 07:35 20K (новый код)
gsimulateur2.tgz 26-Sep-2002 17:29 21K (более новый код)
sim2.tar.gz 20-Nov-2004 11:45 21K (самая последняя версия)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

я тут чего подумал - может мне тоже симулятор своего микрокодового движка сделать? только в онлайне - на джава-скрипте...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

вобщем для портирования под дос/виндос надо выбирать одну из вот этих вот версий:

simulator.c 20-Dec-1999 15:57 25K (использует файлы образы памяти)
simulator.c 07-Dec-1999 11:33 28K (чуть более продвинутая версия)

т.к. они выглядят законченными и в целом отражают то, что написано в туториалие

разница между ними следующая:
http://dept-info.labri.u-bordeaux.fr/~s ... tor.c.diff
видно что добавился "conditional register" и связанная с ним логика - вот чем они визуально отличаются:

V1:
Image

V2:
Image

программы могут брать прошивки памятей из файлов (а могут и не брать - у них есть "захардкоденное" наполнение по умолчанию)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr, тебя устроит, если я портану эту программу в борланд-3.1 с SVGA-графикой 1024x768?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Lavr, тебя устроит, если я портану эту программу в борланд-3.1 с SVGA-графикой 1024x768?
Вполне устроит...

Заодно полюбопытствую - как это на С делают, раз уж будут исходники от
автора и римейк от Shaos-а. :wink:
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:Lavr, тебя устроит, если я портану эту программу в борланд-3.1 с SVGA-графикой 1024x768?
Вполне устроит...

Заодно полюбопытствую - как это на С делают, раз уж будут исходники от
автора и римейк от Shaos-а. :wink:
Я в C++ программу перевёл ибо заюзал свою надстройку над BGI-драйвером SVGA256 в виде SVGA.H от 1995 года издания, которая требует C++
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:simulator.c 20-Dec-1999 15:57 25K (использует файлы образы памяти)
....

V1:
Image
вот что получилось из V1 (на всё про всё у меня ушло порядка полутора часов):

Image

архив с EXE-шником и исходниками: SIMULATR.ZIP (43K)

чтобы читало из файлов - надо запускать RUN.BAT

чтобы пересобрать - надо поправить путь к BC в MK.BAT и запустить его

P.S. через часик решил таки сделать разные фонты - чтобы больше было похоже на оригинал
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Спасибо! Скачал - попробовал, вроде как всё так и работает...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Может я чего не понял, всё ж я французский не учил, но похоже такой хороший источник накрылся безвозвратно... :(
http://dept-info.labri.u-bordeaux.fr/~s ... l/Dir.html
Access forbidden !
The document you asked for on the Computer Science Department server http://dept-info.labri.fr cannot be retrieved from your machine.
Жаль... :-?
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Вся его домашнаяя страничка заблокировалась:

http://dept-info.labri.u-bordeaux.fr/~strandh/

Может препод просто уволился из универа - вот его домашний каталог и прибили...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Вся его домашнаяя страничка заблокировалась:
http://dept-info.labri.u-bordeaux.fr/~strandh/
Может препод просто уволился из универа - вот его домашний каталог и прибили...
А может просто ограничили доступ со стороны...
Там всё ж выскакивает ERROR 403 - Access forbidden !, а не ERROR 404 - отсутствие страницы.
Ну да я себе как-то предусмотрительно скачал весь материал целиком, кроме примеров...
А примеры, собственно, и не так интересны - можно самому таких написать.

Другое дело - он хорошо объяснил принцип команды JMS - без возврата RET.
Я хотел дать на него ссылку из 4-бит, но Access forbidden ! :(