nedoPC.org

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



Reply to topic  [ 22 posts ]  Go to page 1, 2  Next
4-bit TMS 1000 Series Assembler 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Джентльмены, а по программированию микроконтроллеров TMS1000-1600 никому
ничего не попадалось мимоходом?

Интересуют примеры программирования и сопутствующий софт, включая среду эмуляции.
Я скачал даташит по семейству TMS1000, TMS1000 Programmers Reference Manual,
но нет компилятора, и эмулятор попался только под MAC OS. :(

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

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

_________________
iLavr


06 May 2013 09:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Прямо непруха какая-то... :(
Во всех мануалах прописано, что существует софт от TI, позвляющий отладить прошивку
для TMS1000 перед её заказом на изготовление..
Кроме софтверного эмулятора есть и аппаратный симулятор...

"The TMS 1000 Series Assembler and Simulator programs are copyrighted by Texas Instruments."

И нигде нет от них НИ ЕДИНОГО СЛЕДА! :o
А ведь машинка-то архипопулярная оказывется... или я лет на 30 к раздаче опоздал? :wink:

_________________
iLavr


06 May 2013 14:10
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Хочется попробовать, как оно - программировать убогий микроконтроллер, очень
похожий по идеологии на мой 4-битный ЦПУ на рассыпухе.
...
Во всех мануалах прописано, что существует софт от TI, позвляющий отладить прошивку
для TMS1000 перед её заказом на изготовление..
Кроме софтверного эмулятора есть и аппаратный симулятор...
И нигде нет от них НИ ЕДИНОГО СЛЕДА! :o

Shaos wrote:
Чур я пишу эмулятор и поддержку в RASM :roll:

A твой RASM вот такую "вменяемую", как ты говорил, систему команд осилит?

Image

Система команд TMS1000
Image

И по эмулятору у тебя наработки есть? Или это так... для связи слов было?

VituZz wrote:
Чувствую, что программирование этого проца будет экстремальным :).

Вот и у меня сейчас такое же впечатление... :lol:


PS. И я что-то подзабыл, что за трюк у TMS1000 с РС?
Кажется кто-то упоминал... но вот не помню... да по мануалу там shift-registr as Program Counter.
И есть вот такие упоминания:"I remember the code was split up into 64 byte pages, and used a grey
code counter, so the PC ran 0, 1, 3, 7, F, 1F, 3F, 3E, etc.
"

_________________
iLavr


Last edited by Lavr on 11 May 2013 12:48, edited 1 time in total.



07 May 2013 14:02
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Для RASM сегодня попробую табличку сгородить, только я команды вида 11xxxxxx буду представлять отдельными инструкциями - будет типа как уже сделано для A2AAC, A3AAC, A4AAC и т.д.

P.S. А чего там у некоторых инструкций 2 опкода? А понял: NOTE: The opcodes in column 1 refer to the TMS1000/1200/1070/1270. The opcodes in the second column refer to the TMS1100/1300

P.P.S. Чего-то по-моему про TMS1000 другая тема была, не?

P.P.P.S. На ебее есть TMS1000 и TMS1100, причём по нестрашной цене :o

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


07 May 2013 14:54
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Для RASM сегодня попробую табличку сгородить, только я команды вида 11xxxxxx буду представлять отдельными инструкциями - будет типа как уже сделано для A2AAC, A3AAC, A4AAC и т.д.

P.S. А чего там у некоторых инструкций 2 опкода? А понял: NOTE: The opcodes in column 1 refer to the TMS1000/1200/1070/1270. The opcodes in the second column refer to the TMS1100/1300

Я только вчера эту таблицу взялся подробно изучать... так что из меня пока советчик никакой.

Shaos wrote:
P.P.S. Чего-то по-моему про TMS1000 другая тема была, не?

Там воспоминания МакБастера - я не хочу их портить... И потом - здесь TMS1600.
Я списался с обладателем этой штуки на картинках выше, он обещает помочь, чем сможет.
Предложил мне сочинить письмо в фирму Busch по поводу прошивки... ну посмотрим что выйдет...
Кстати - есть мысли как это сделать ненавязчиво-результативно?

Shaos wrote:
P.P.P.S. На ебее есть TMS1000 и TMS1100, причём по нестрашной цене :o

А смысл? Они ж все вроде масочно прошитые производителем... нет?
Т.е. всякая TMS1000 под свой девайс, как я понял...

_________________
iLavr


Last edited by Lavr on 07 May 2013 15:32, edited 1 time in total.



07 May 2013 15:16
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Значит, что меня так метнуло к этому Busch 2090 Education Computer и TMS 1600:
На представленной выше системе команд TMS 1000 и очень нищебродской архитектуре
Image
в Busch 2090 интерпретируют вот такую систему команд:
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 на убогом
самодельном 4-битном ЦПУ.

Поскольку я не имею никакого опыта программирования таких нищебродских девайсов,
я решил попробовать достать у Busch их прошивку, чтобы глянуть как они это сделали,
т.е. "танцевать от прототипа".

У TMS 1600 нет всего, что я только хотел доделать - косвенной адресации...
переходов по табличной записи в программный счетчик.
Но у них - в Busch 2090 - всё это работает и неплохо! :o

Может быть того, что я уже сделал, вполне и достаточно, чтобы заняться интерпретатором
команд i8080 ?

_________________
iLavr


07 May 2013 15:31
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
P.P.S. Чего-то по-моему про TMS1000 другая тема была, не?

Там воспоминания МакБастера - я не хочу их портить... И потом - здесь TMS1600.
Я списался с обладателем этой штуки на картинках выше, он обещает помочь, чем сможет.
Предложил мне сочинить письмо в фирму Busch по поводу прошивки... ну посмотрим что выйдет...
Кстати - есть мысли как это сделать ненавязчиво-результативно?


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

кстати в табличке опкодов нету TMS1600

и вряд ли МакБастер обидиться если мы его воспоминания "разбавим"

Lavr wrote:
Shaos wrote:
P.P.P.S. На ебее есть TMS1000 и TMS1100, причём по нестрашной цене :o

А смысл? Они ж все вроде масочно прошитые производителем... нет?
Т.е. всякая TMS1000 под свой девайс, как я понял...


да? фигово :(

P.S. вот тут больше инфы про эти TMS: http://www.datamath.org/Story/Intel.htm

Quote:
Program Counter (PC) incrementing: In order to save a separate incrementer for the PC or trips through the ALU for updating, the PC update is implemented by a pseudo-random sequence to go through all 64 states produced by a feedback shift register such as is used in cyclic redundancy codes. Thus only a shifter and several logic gates are required.

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


07 May 2013 16:01
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Для RASM сегодня попробую табличку сгородить, только я команды вида 11xxxxxx буду представлять отдельными инструкциями - будет типа как уже сделано для A2AAC, A3AAC, A4AAC и т.д.

P.S. А чего там у некоторых инструкций 2 опкода? А понял: NOTE: The opcodes in column 1 refer to the TMS1000/1200/1070/1270. The opcodes in the second column refer to the TMS1100/1300

Вобщем как-то так будет для TMS1000:
Code:
// TMS1000.TAB - Texas Instruments TMS1000 assembler table for RASM v2
*ASM TABLE TMS1000
KNEZ     #09
SETR     #0D
RSTR     #0C
TDO      #0A
CLO      #0B
TAM      #03
TMY      #22
TMA      #21
XMA      #2E
TAMIY    #20
TAMZA    #04
AMAAC    #25
SAMAN    #27
IMAC     #28
DMAN     #2A
ALEM     #29
MNEZ     #26
SBIT_0   #30
SBIT_1   #31
SBIT_2   #32
SBIT_3   #33
RBIT_0   #34
RBIT_1   #35
RBIT_2   #36
RBIT_3   #37
TBITI_0  #38
TBITI_1  #39
TBITI_2  #3A
TBITI_3  #3B
TCY_0    #40
TCY_1    #41
TCY_2    #42
TCY_3    #43
TCY_4    #44
TCY_5    #45
TCY_6    #46
TCY_7    #47
TCY_8    #48
TCY_9    #49
TCY_A    #4A
TCY_B    #4B
TCY_C    #4C
TCY_D    #4D
TCY_E    #4E
TCY_F    #4F
TCMIY_0  #60
TCMIY_1  #61
TCMIY_2  #62
TCMIY_3  #63
TCMIY_4  #64
TCMIY_5  #65
TCMIY_6  #66
TCMIY_7  #67
TCMIY_8  #68
TCMIY_9  #69
TCMIY_A  #6A
TCMIY_B  #6B
TCMIY_C  #6C
TCMIY_D  #6D
TCMIY_E  #6E
TCMIY_F  #6F
LDX_0    #3C
LDX_1    #3D
LDX_2    #3E
LDX_3    #3F
LDP_0    #10
LDP_1    #11
LDP_2    #12
LDP_3    #13
LDP_4    #14
LDP_5    #15
LDP_6    #16
LDP_7    #17
LDP_8    #18
LDP_9    #19
LDP_A    #1A
LDP_B    #1B
LDP_C    #1C
LDP_D    #1D
LDP_E    #1E
LDP_F    #1F
ALEC_0   #70
ALEC_1   #71
ALEC_2   #72
ALEC_3   #73
ALEC_4   #74
ALEC_5   #75
ALEC_6   #76
ALEC_7   #77
ALEC_8   #78
ALEC_9   #79
ALEC_A   #7A
ALEC_B   #7B
ALEC_C   #7C
ALEC_D   #7D
ALEC_E   #7E
ALEC_F   #7F
YNEC_0   #50
YNEC_1   #51
YNEC_2   #52
YNEC_3   #53
YNEC_4   #54
YNEC_5   #55
YNEC_6   #56
YNEC_7   #57
YNEC_8   #58
YNEC_9   #59
YNEC_A   #5A
YNEC_B   #5B
YNEC_C   #5C
YNEC_D   #5D
YNEC_E   #5E
YNEC_F   #5F
A6AAC    #06
A8AAC    #01
A10AAC   #05
RETN     #0F
BR_00    #80
BR_01    #81
BR_02    #83
BR_03    #87
BR_04    #8F
BR_05    #9F
BR_06    #9E
BR_07    #BE
BR_08    #BD
BR_09    #BB
BR_0A    #B7
BR_0B    #AF
BR_0C    #9E
BR_0D    #BC
BR_0E    #B9
BR_0F    #B3
BR_10    #A7
BR_11    #8E
BR_12    #9D
BR_13    #BA
BR_14    #B5
BR_15    #AB
BR_16    #96
BR_17    #AC
BR_18    #98
BR_19    #B0
BR_1A    #A1
BR_1B    #82
BR_1C    #85
BR_1D    #8B
BR_1E    #97
BR_1F    #AE
BR_20    #9C
BR_21    #B8
BR_22    #B1
BR_23    #A3
BR_24    #86
BR_25    #8D
BR_26    #9B
BR_27    #B6
BR_28    #AD
BR_29    #9A
BR_2A    #B4
BR_2B    #A9
BR_2C    #92
BR_2D    #A4
BR_2E    #88
BR_2F    #91
BR_30    #A2
BR_31    #84
BR_32    #89
BR_33    #93
BR_34    #A6
BR_35    #8C
BR_36    #99
BR_37    #B2
BR_38    #A5
BR_39    #8A
BR_3A    #95
BR_3B    #AA
BR_3C    #94
BR_3D    #A8
BR_3E    #90
BR_3F    #A0
CALL_00  #C0
CALL_01  #C1
CALL_02  #C3
CALL_03  #C7
CALL_04  #CF
CALL_05  #DF
CALL_06  #FF
CALL_07  #FE
CALL_08  #FD
CALL_09  #FB
CALL_0A  #F7
CALL_0B  #EF
CALL_0C  #DE
CALL_0D  #FC
CALL_0E  #F9
CALL_0F  #F3
CALL_10  #E7
CALL_11  #CE
CALL_12  #DD
CALL_13  #FA
CALL_14  #F5
CALL_15  #EB
CALL_16  #D6
CALL_17  #EC
CALL_18  #D8
CALL_19  #F0
CALL_1A  #E1
CALL_1B  #C2
CALL_1C  #C5
CALL_1D  #CB
CALL_1E  #D7
CALL_1F  #EE
CALL_20  #DC
CALL_21  #F8
CALL_22  #F1
CALL_23  #E3
CALL_24  #C6
CALL_25  #CD
CALL_26  #DB
CALL_27  #F6
CALL_28  #ED
CALL_29  #DA
CALL_2A  #F4
CALL_2B  #E9
CALL_2C  #D2
CALL_2D  #E4
CALL_2E  #C8
CALL_2F  #D1
CALL_30  #E2
CALL_31  #C4
CALL_32  #C9
CALL_33  #D3
CALL_34  #E6
CALL_35  #CC
CALL_36  #D9
CALL_37  #F2
CALL_38  #E5
CALL_39  #CA
CALL_3A  #D5
CALL_3B  #EA
CALL_3C  #D4
CALL_3D  #E8
CALL_3E  #D0
CALL_3F  #E0
TAY      #24
TYA      #23
YNEA     #02
CLA      #2F
IA       #0E
DAN      #07
IYC      #2B
DYN      #2C
CPAIZ    #2D
COMX     #00
*

С метками оно правда не работает, зато адреса скрытно упорядочены :)

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


Last edited by Shaos on 07 May 2013 23:03, edited 1 time in total.



07 May 2013 19:32
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
А вот так для TMS1100:
Code:
// TMS1100.TAB - Texas Instruments TMS1100 assembler table for RASM v2
*ASM TABLE TMS1100
KNEZ     #0E
TKA      #08
SETR     #0D
RSTR     #0C
TDO      #0A
CLO      #0B
TAM      #27
TMY      #22
TMA      #21
XMA      #03
TAMIYC   #25
TAMDYN   #24
TAMZA    #26
AMAAC    #06
SAMAN    #3C
IMAC     #3E
DMAN     #07
ALEM     #01
MNEA     #00
MNEZ     #3F
SBIT_0   #30
SBIT_1   #31
SBIT_2   #32
SBIT_3   #33
RBIT_0   #34
RBIT_1   #35
RBIT_2   #36
RBIT_3   #37
TBITI_0  #38
TBITI_1  #39
TBITI_2  #3A
TBITI_3  #3B
TCY_0    #40
TCY_1    #41
TCY_2    #42
TCY_3    #43
TCY_4    #44
TCY_5    #45
TCY_6    #46
TCY_7    #47
TCY_8    #48
TCY_9    #49
TCY_A    #4A
TCY_B    #4B
TCY_C    #4C
TCY_D    #4D
TCY_E    #4E
TCY_F    #4F
TCMIY_0  #60
TCMIY_1  #61
TCMIY_2  #62
TCMIY_3  #63
TCMIY_4  #64
TCMIY_5  #65
TCMIY_6  #66
TCMIY_7  #67
TCMIY_8  #68
TCMIY_9  #69
TCMIY_A  #6A
TCMIY_B  #6B
TCMIY_C  #6C
TCMIY_D  #6D
TCMIY_E  #6E
TCMIY_F  #6F
LDX_0    #28
LDX_1    #29
LDX_2    #2A
LDX_3    #2B
LDX_4    #2C
LDX_5    #2D
LDX_6    #2E
LDX_7    #2F
LDP_0    #10
LDP_1    #11
LDP_2    #12
LDP_3    #13
LDP_4    #14
LDP_5    #15
LDP_6    #16
LDP_7    #17
LDP_8    #18
LDP_9    #19
LDP_A    #1A
LDP_B    #1B
LDP_C    #1C
LDP_D    #1D
LDP_E    #1E
LDP_F    #1F
YNEC_0   #50
YNEC_1   #51
YNEC_2   #52
YNEC_3   #53
YNEC_4   #54
YNEC_5   #55
YNEC_6   #56
YNEC_7   #57
YNEC_8   #58
YNEC_9   #59
YNEC_A   #5A
YNEC_B   #5B
YNEC_C   #5C
YNEC_D   #5D
YNEC_E   #5E
YNEC_F   #5F
A2AAC    #78
A3AAC    #74
A4AAC    #7C
A5AAC    #72
A6AAC    #7A
A7AAC    #76
A8AAC    #7E
A9AAC    #71
A10AAC   #79
A11AAC   #75
A12AAC   #7D
A13AAC   #73
A14AAC   #7B
RETN     #0F
BR_00    #80
BR_01    #81
BR_02    #83
BR_03    #87
BR_04    #8F
BR_05    #9F
BR_06    #9E
BR_07    #BE
BR_08    #BD
BR_09    #BB
BR_0A    #B7
BR_0B    #AF
BR_0C    #9E
BR_0D    #BC
BR_0E    #B9
BR_0F    #B3
BR_10    #A7
BR_11    #8E
BR_12    #9D
BR_13    #BA
BR_14    #B5
BR_15    #AB
BR_16    #96
BR_17    #AC
BR_18    #98
BR_19    #B0
BR_1A    #A1
BR_1B    #82
BR_1C    #85
BR_1D    #8B
BR_1E    #97
BR_1F    #AE
BR_20    #9C
BR_21    #B8
BR_22    #B1
BR_23    #A3
BR_24    #86
BR_25    #8D
BR_26    #9B
BR_27    #B6
BR_28    #AD
BR_29    #9A
BR_2A    #B4
BR_2B    #A9
BR_2C    #92
BR_2D    #A4
BR_2E    #88
BR_2F    #91
BR_30    #A2
BR_31    #84
BR_32    #89
BR_33    #93
BR_34    #A6
BR_35    #8C
BR_36    #99
BR_37    #B2
BR_38    #A5
BR_39    #8A
BR_3A    #95
BR_3B    #AA
BR_3C    #94
BR_3D    #A8
BR_3E    #90
BR_3F    #A0
CALL_00  #C0
CALL_01  #C1
CALL_02  #C3
CALL_03  #C7
CALL_04  #CF
CALL_05  #DF
CALL_06  #FF
CALL_07  #FE
CALL_08  #FD
CALL_09  #FB
CALL_0A  #F7
CALL_0B  #EF
CALL_0C  #DE
CALL_0D  #FC
CALL_0E  #F9
CALL_0F  #F3
CALL_10  #E7
CALL_11  #CE
CALL_12  #DD
CALL_13  #FA
CALL_14  #F5
CALL_15  #EB
CALL_16  #D6
CALL_17  #EC
CALL_18  #D8
CALL_19  #F0
CALL_1A  #E1
CALL_1B  #C2
CALL_1C  #C5
CALL_1D  #CB
CALL_1E  #D7
CALL_1F  #EE
CALL_20  #DC
CALL_21  #F8
CALL_22  #F1
CALL_23  #E3
CALL_24  #C6
CALL_25  #CD
CALL_26  #DB
CALL_27  #F6
CALL_28  #ED
CALL_29  #DA
CALL_2A  #F4
CALL_2B  #E9
CALL_2C  #D2
CALL_2D  #E4
CALL_2E  #C8
CALL_2F  #D1
CALL_30  #E2
CALL_31  #C4
CALL_32  #C9
CALL_33  #D3
CALL_34  #E6
CALL_35  #CC
CALL_36  #D9
CALL_37  #F2
CALL_38  #E5
CALL_39  #CA
CALL_3A  #D5
CALL_3B  #EA
CALL_3C  #D4
CALL_3D  #E8
CALL_3E  #D0
CALL_3F  #E0
TAY      #20
TYA      #23
YNEA     #02
CLA      #7F
IAC      #70
DAN      #77
IYC      #05
DYN      #04
CPAIZ    #3D
COMX     #09
COMC     #0B
*

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


Last edited by Shaos on 07 May 2013 23:04, edited 1 time in total.



07 May 2013 19:39
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Кстати табличка может оказаться неправильной (и TAB-файлы для RASM соответственно тоже), т.к. в указанном мной выше источнике говорится, что в чипе кроме памяти есть ещё и два PLA, одна из которых формирует преобразование аккумулятора в порт O (например чтобы преобразовать 4-битное число в 8 сигналов 7-сегментоно индикатора для отображения), а другая делает вот это:
Code:
The second PLA is for instruction decoding. The chip provides 16 microinstructions, such as "gate register Y to ALU." Twelve of these microinstructions form the fixed instruction set. The remaining instructions can be formed by combining any of the 16 microinstructions. Thus the instruction set can be specialized to improve ROM efficiency and execution speed for a particular application.


P.S. В табличке похоже опечатка - TAMDYN судя по всему должна быть декрементом, а не инкрементом (и точно - в мануале написано "decrement")

P.P.S. Вон чего нагуглил: http://blog.kevtris.org/blogfiles/TMSDIS.BAS

P.P.P.S. Вот есть патент, в котором ВСЁ про TMS1000 расписано, причём в картинках :o
http://blog.kevtris.org/blogfiles/TMS10 ... ematic.pdf
Похоже PLA на декод инструкций всё-таки зафиксирован - значит таблички верные:

Image

P.P.P.P.S. У него даже бинари программ есть для TMS1000:
http://blog.kevtris.org/blogfiles/TMS1000/
Кстати этот чувак тот самый что NANDputer построил...

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


Last edited by Shaos on 08 May 2013 06:27, edited 2 times in total.



07 May 2013 21:26
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
P.P.S. Вон чего нагуглил: http://blog.kevtris.org/blogfiles/TMSDIS.BAS


в соответствии с алгоритмом из этой программки получилась такая табличка:

Code:
[0] #00
[1] #01
[2] #03
[3] #07
[4] #0F
[5] #1F
[6] #3F
[7] #3E
[8] #3D
[9] #3B
[10] #37
[11] #2F
[12] #1E
[13] #3C
[14] #39
[15] #33
[16] #27
[17] #0E
[18] #1D
[19] #3A
[20] #35
[21] #2B
[22] #16
[23] #2C
[24] #18
[25] #30
[26] #21
[27] #02
[28] #05
[29] #0B
[30] #17
[31] #2E
[32] #1C
[33] #38
[34] #31
[35] #23
[36] #06
[37] #0D
[38] #1B
[39] #36
[40] #2D
[41] #1A
[42] #34
[43] #29
[44] #12
[45] #24
[46] #08
[47] #11
[48] #22
[49] #04
[50] #09
[51] #13
[52] #26
[53] #0C
[54] #19
[55] #32
[56] #25
[57] #0A
[58] #15
[59] #2A
[60] #14
[61] #28
[62] #10
[63] #20


вот моя программка:

Code:
#include <stdio.h>

int main()
{
 int i,fb,fc,fd,fe,ff,pc=0;
 for(i=0;i<=63;i++)
 {
   if(((pc&0x1F)|((pc&0x20)?0x00:0x20))==0x3F) fb=0;
   else fb=1;
   if((pc&0x0F)==0x0F) fc=0;
   else fc=1;
   fd = ((pc&0x20)?1:0)|((pc&0x10)?1:0);
   fe = (fc&((pc&0x20)?1:0)&((pc&0x10)?1:0))?0:1;
   ff = fb&fd&fe;
   printf("[%i] #%2.2X\n",i,pc);
   pc = ((pc<<1)&0x3E)|(ff?0:1);
 }
 return 0;
}


в отличие от первоначального варианта оно обходит все 64 ячейки (#3F добавился перед #3E)

P.S. поправил RASM-таблички в соответствии с новой информацией

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


07 May 2013 22:51
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.
Говорит - они довольно отзывчивы... ну я подумаю - как повежливее - и попробую написать...

Shaos wrote:
P.P.P.S. На ебее есть TMS1000 и TMS1100, причём по нестрашной цене :o
Lavr wrote:
А смысл? Они ж все вроде масочно прошитые производителем... нет?
Т.е. всякая TMS1000 под свой девайс, как я понял...

да? фигово :(

Для экспериментов и отладки у них в серии есть кристаллы TMS1098 и TMS1099 - они используют
их в своём фирменном аппаратном дебаггере с внешней ПЗУ программ.

Image
Quote:
The TMS 1099 SE-1 was an external ROM version of the TMS 1000 released for code developers.

Удивительно, но на сайте TI следов серии TMS1000 я просто не нашел... Понятно что время...
Но ведь это их как бы гордость - удачный продукт... ну и раритетный музейный экспонат...


PS. Спасибо за все ссылки - вечером внимательно весь материал почитаю.

_________________
iLavr


Last edited by Lavr on 08 May 2013 08:25, edited 1 time in total.



08 May 2013 01:36
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
да про TMS1099 и TMS1098 я тоже вычитал - поискал их вживую и ничего не нашёл...

P.S. вставил чуть выше картину PLA декодера инструкций из патента про TMS1000 - если они по заказу могли эту PLA по другому программировать, то это вообще круто :roll:

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


08 May 2013 06:17
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Как я чуть позже написал у них не просто XOR, а какие-то многоногие AND-гейты понавешаны, чтобы охватить все 64 ячейки - так что может и не проще счётчика...

Я листал сайты, где есть отзывы разработчиков, работавших с TMS1000,
ну как бы криков восторга не услышал от всех его фич - это мягко говоря...

Кстати, с прошивками PLA проблемы тоже были, да и не только...
Quote:
The development system was a TMS 990/4
minicomputer, with a "Silent 700" thermal printing teletype terminal on which were
mounted a pair of magnetic tape drives. The editor and assembler were loaded from
tape seperately, and the emulator was a 18" cube of NMOS electronics, so the inputs
and outputs were all inverted. There was a TMS1099 version of the processor, in a
40 pin ceramic package, which was, I believe, a bonded out TMS1000 so that the code
could be blown into an external UV-EPROM.
The biggest frustration came after the code was complete, and the tape sent to TI at
Bedford for masking. None of the initial units worked...


Если я правильно всё понял из воспоминаний "ветеранов", РС-шной платформы
и среды разработки для TMS1000 нет, да и не было никогда

_________________
iLavr


08 May 2013 08:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Кстати этот чувак тот самый что NANDputer построил...

А он (http://blog.kevtris.org/) пишет что-то про TMS1000?

Или вот это у него просто информ-мешок здесь?
http://blog.kevtris.org/blogfiles/TMS1000/

_________________
iLavr


08 May 2013 08:39
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 22 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 8 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.