nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 03:29



Reply to topic  [ 35 posts ]  Go to page 1, 2, 3  Next
4-bit Busch 2090 Computer 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Busch 2090 Education Computer

А вот схему этого 4-битного учебного недо-компьютера Busch 2090 я как раз пытался найти,
чтобы посмотреть схемотехнику таких 4-битных устройств.

Image
Увеличить
Code:
4bit microprocessor TMS1600, Custom programmed
64 Bytes RAM
ML-programming language
6-digit 7-segment LED display
hexadecimal keypad for programming.


Но пока нашел только его фотки на выставке компьютерного старья...

Image

Интересно же распоряжается история... :o одни 4-битники ушли безвозвратно в лету...

Другие же столь популярны до сих пор, что их даже отдельные наши коллеги приобретают! :roll:

Image

_________________
iLavr


05 May 2013 10:10
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Интересно также, что в этом Busch 2090 Education Computer реализовали идею,
которую я пытаюсь воплотить, конструируя 4-бит СРU:
не шибко развитый микроконтроллер TMS 1600 интерпретирует здесь некий
абстрактный "машинный язык высокого уровня".

Примерно, как я хочу интерпретировать систему команд i8080 как можно более
простой схемотехнически 4-битной самоделкой на рассыпухе.
However, being an educational system, the documentation of the machine was really excellent, so it wasn't hard to learn the machine language. In fact, it wasn't the native machine language of the TMS 1600 CPU, but a higher-level interpreted custom-designed machine language, tailored for educational purposes. For example, the system offered high-level OP codes for multiplication and division. Nevertheless, everything was on a very low level of abstraction so one could get a real good impression how a simple CPU worked these days. Due to the interpreted higher-level custom machine language, the machine was very slow - I remember that the division 999999 / 1 required 40 seconds (!) using the division OP code (this required 999999 subtraction operations - that was a dumb implementation, obviously).

Image

_________________
iLavr


05 May 2013 14:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
В Busch Microtronic-Computer-System 2090 микроконтроллер TMS1600
интерпретирует вот такую систему команд:
Code:
Command Set
n = numerical constant
a = address (two nibbles)
s = source register
d = destination register

Mnemonic   Code   Description
         
MOV   0 s d   s -> d
MOVI   1 n d   n -> d
AND   2 s d   s AND d -> d
ANDI   3 n d   n AND d -> d
ADD   4 s d   d + s-> d
ADDI   5 n d   d + n-> d
SUB   6 s d   d - s -> d
SUBI   7 n d   d - n -> d
CMP   8 s d   compare s and d
CMPI   9 n d   compare n and d
OR   A s d   s OR d -> d
CALL   B a a   jump to subroutine at a a
GOTO   C a a   goto a a
BRC   D a a   branch if carry set
BRZ   E a a   branch if zero
MAS   F 7 d   move d to register bank 2
INV   F 8 d   invert d
SHR   F 9 d   shift d right
SHL   F A d   shift d left
ADC   F B d   add carry to d
SUBC   F C d   subtract carry from d
DIN   F D d   get I/O input in d (not implemented)
DOT   F E s   put d to I/O
KIN   F F d   get keyboard input into d
DISP   F n s   display n digits, beginning at register s
HALT   F 0 0   program stop
NOP   F 0 1   no operation
DISOUT   F 0 2   display off
HXDZ   F 0 3   hexadecimal to decimal conversion in reg D-E-F
DZHX   F 0 4   decimal to hexadecimal conversion in reg D-E-F
RND   F 0 5   generate random number in reg D-E-F (well, not really!)
TIME   F 0 6   fetch time of day in reg A-B-C-D-E-F (not implemented)
RET   F 0 7   return from subroutine
CLEAR   F 0 8   set all registers to 0
STC   F 0 9   set carry flag
RSC   F 0 A   reset carry flag
MULT   F 0 B   multiplication reg 0-5 with reg 0-5 of bank 2
DIV   F 0 C   division reg 0-3 with reg 0-3 of bank 2
EXRL   F 0 D   exchange reg 0-7 of bank 1 with reg 0-7 of bank 2
EXRM   F 0 E   exchange reg 8-F of bank 1 with reg 8-F of bank 2
EXRA   F 0 F   exchange reg 0-7 with reg 8-f

Код отдаленно напоминает систему команд i8080, которая более удобна в целях обучения,
нежели оригинальная система команд TMS1600.

В Busch-Microtronic бережно и, видимо, с гордостью относятся к своей истории, так что всю
оригинальную документацию на Busch Microtronic-Computer-System 2090 можно найти
по адресу:
http://www.busch-model.com/online/?rubrik=82&topnav=6&sprach_id=de

Image

Правда она на немецком, но выполена в форме комикса... забавно, однако! :roll:

_________________
iLavr


08 May 2013 12:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
По крупной картинке в старте топика я присмотрелся, что там понапаяно на плате
этого Busch 2090 Education Computer.
Code:
HCF 4013BE  -  два двухтактных D-триггера. (К561ТМ2)
HCF 4060BE  -  14-разрядный счётчик с задающим генератором.
 CD 4016BE  -  CMOS Quad Bilateral Switch (Двусторонний переключатель)
 CD 4502BE  -  STROBED HEX INVERTER/BUFFER With 3-State Outputs
uPD 2114LC  -  1024 BIT (256 X 4) STATIC MOS RAM WITH SEPARATE I/O
NEC B1X088-140

TMS1600NLL7574

И призадумался вот о чем:
Quote:
...the emulator was a 18" cube of NMOS electronics, so the inputs
and outputs were all inverted
...

Действительно, известно, что
Quote:
микросхемы серии TMS1000 выпускались по технологии PMOS

Получается, что при одном источнике питания (а я вижу на плате один мост и один большой
кондюк-электролит
) вся логика 40хх действительно понимает выходные сигналы TMS1600
как инверсные?



PS. Я правильно понял, что TMS1600NLL7574 здесь продаётся? Или только документация
предлагается на неё?

_________________
iLavr


11 May 2013 02:14
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Да, похоже что продаётся, только я думаю они по одной штуке не будут продавать - и цену не назовут пока не узнают кто покупает и зачем...

_________________
:dj: https://mastodon.social/@Shaos


11 May 2013 08:10
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Lavr wrote:
Я списался с обладателем этой штуки на картинках выше, он ...
предложил мне сочинить письмо в фирму Busch по поводу прошивки...
Кстати - есть мысли как это сделать ненавязчиво-результативно?

что-то я сомневаюсь, что они вышлют какую-то древнюю прошивку

Письмецо-то в Busch-Microtronic я написал...

Но если внимательно посмотреть систему команд TMS1000...

Image

то, с учетом того, что команд передачи управления всего 3 (переход BR label и вызов CALL label -
условные и один возврат RETN), я, честно говоря, не вижу иного способа интерпретации команд
некоего абстрактного языка иначе как:
Code:
...
TKA ; Загрузить Аккумулятор данными с входных линий
ALEC data1  ; это аналог CPI CODE1
BR   label1 ; Переход на адрес label если флаг статуса установлен
ALEC data2  ; это аналог CPI CODE2
BR   label2 ; Переход на адрес label если флаг статуса установлен
... и т.д.


Ну или что-то в этом роде, но другими конструкциями...

То есть "волшебного jmp" в системе команд, похоже, что не получится...
Code:
.L286:
   sll   $2,$2,2
   addiu   $3,$3,%lo(.L242)
   addu   $2,$3,$2
   lw   $2,0($2)
   j   $2                <-- волшебный jmp
   nop

   .align   2
   .align   2
.L242:
   .word   .L4
   .word   .L5
   .word   .L6
   .word   .L7
   .word   .L8
   .word   .L9
   .word   .L10

Без переходов "по таблице" интерпретация команд, похоже, будет весьма медленная...

_________________
iLavr


11 May 2013 16:10
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
можно же не все команды по одной перебирать, а побитно - маской выделяя семейство операций и переходя на их обработку

_________________
:dj: https://mastodon.social/@Shaos


11 May 2013 16:35
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
можно же не все команды по одной перебирать, а побитно - маской выделяя семейство
операций и переходя на их обработку

Ну я, собственно, так и делал... но ты же сам с Деминым убедил меня в том, что этот
метод медленен...
Lavr wrote:
Объясните мне одну вещь, пожалуйста, уважаемые авторы прецизионных эмуляторов.

Известно ведь, что если представить байт кода операции i8080 как
D7 D6 D5 D4 D3 D2 D1 D0, то
Возможны следующие варианты:
D7 D6 - делят на 4 группы команд (можно сказать однотипных)

Почему тогда в ваших исходниках (и не только в ваших) код операции анализируется
в длинном:
Code:
switch (opcode) {
        case 0x00:            /* nop */
         ...
        case 0xFF:            /* rst 7 */
         ...
        }

Разве не было бы быстрее - выделить два старших бита в опкоде - D7 D6
и по их значению организовать 4 более коротких цикла switch (opcode)
по 4-м группам опкодов?

Чтобы не повторяться, обсуждение было здесь...

Если нет переходов "по таблице", то хоть и "ёлочкой" до каждой отдельной команды
всё-равно придётся добираться через последовательность "CPI CODE".
Ну разве что эмулируемые "регистры" сэмулируются чуть побыстрее...

_________________
iLavr


11 May 2013 18:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Он конечно медленнее свича, но если свич отсутствует как класс, то твоя "ёлочка" - следующий метод,
который будет заведомо быстрее полного последовательного перебора...

P.S. Кстати там всё же TMS1600 был - может в нём уже появилась команда перехода по значению регистра?

_________________
:dj: https://mastodon.social/@Shaos


12 May 2013 05:01
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Кстати там всё же TMS1600 был - может в нём уже появилась команда перехода по значению регистра?

Пока все материалы, которые я нашел, об этом не говорят...
На TMS1600 отдельно мануала не нашел... на TMS1400 система команд аналогичная.
Отличия в серии у них в основном по количеству ног портов и памяти на борту.

Но вывод всё же напрашивается, что самому - в 4-битном ЦПУ - переход по регистру,
хотя бы в пределах 256 байт сделать надо
...

А то я прогуглил тут критикуемую МакБастером его раритетную машину - TI-99/4A,
так оказалось - она на 3МГц "просирала все полимеры", поскольку работала с двойной
интерпретацией.
Т.е. процессор от TI исполнял не нативный код, а входной интерпетируемый язык.
Пример показательный - во что выливается интерпретация...



Ты не глянул - я тебя там просил - что за эмулятор под МАКом?
Lavr wrote:
Shaos, раз уж у тебя MacOS X под руками - посмотри лучше, что вот здесь изобразил
автор эмуляции Busch-Microtronic 2090?
А то мне MacOS X взять негде... :(

_________________
iLavr


12 May 2013 05:53
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Сегодня посмотрю - у меня есть и MacOS X (10.4 PCC и 10.6 Intel), и MacOS 9.2 (PPC).
А то у автора не написано под какую архитектуру и ось у него сбoрка...

_________________
:dj: https://mastodon.social/@Shaos


12 May 2013 06:55
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Если я правильно понял - в архиве образ МАКовского диска 2090.dmg?

HEX-редактором я в нём текстового ничего не увидел (вдруг исходники?) :wink:
А больше мне его открыть нечем... но судя по намёкам автора, TMS1600 он не
эмулирует, а эмулирует прямо виртуальную машину Busch-Microtronic 2090.

Но всё равно интересно - что у него получилось... :roll:

_________________
iLavr


12 May 2013 08:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
Кстати там всё же TMS1600 был - может в нём уже появилась команда перехода по значению регистра?

Но вывод всё же напрашивается, что самому - в 4-битном ЦПУ - переход по регистру,
хотя бы в пределах 256 байт сделать надо
...

Я прикинул - не могли ли они сделать программный счетчик загружаемым из регистра
посредством программирования такой команды из набора микрокоманд.

Но по всем блок-схемам - это тоже, на мой взгляд, реально не получается.

_________________
iLavr


12 May 2013 11:34
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Внутри DMG-образа находится программа, скомпилированная в 2003 году - вот содержимое диска,
в котором есть что почитать :roll:

http://www.nedopc.org/nedopc/upload/2090.zip (638KB)

_________________
:dj: https://mastodon.social/@Shaos


12 May 2013 17:05
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
вот содержимое диска, в котором есть что почитать :roll:

Спасибо! А сам эмулятор запускал? Как он у него внешне выглядит?

Если ..\Microtronic 2090 Emulator\2090 Emulator.app\Contents\MacOS\2090 Emulator -
это исполняемый МАК-овский файл, то интересно, на чем автор его написал! :o

Большая часть файла - сплошной текст!
Code:
NXArgv.   progname.  dyld func lookup.  dyld init check.  start
. environ.dyld stub binding helper.start.   darwin gcc3 preregis
ter frame info.   keymgr dwarf2 register sections.  cplus init.
cthread init routine.  mh execute header.  objcInit. atexit. ca
tch exception raise. catch exception raise state. catch exceptio
n raise state identity. clock alarm reply. do mach notify dead n
ame. do mach notify no senders. do mach notify port deleted.

Ну и далее - в таком же духе...

_________________
iLavr


13 May 2013 03:50
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 35 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.