4-bit TMS 1000 Series Assembler

4-битные микроконтроллеры и микропроцессоры (прошлое, настоящее, будущее)

Moderator: Lavr

User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

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: Select all

// 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
*
С метками оно правда не работает, зато адреса скрытно упорядочены :)
Last edited by Shaos on 07 May 2013 23:03, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

А вот так для TMS1100:

Code: Select all

// 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
*
Last edited by Shaos on 07 May 2013 23:04, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Кстати табличка может оказаться неправильной (и TAB-файлы для RASM соответственно тоже), т.к. в указанном мной выше источнике говорится, что в чипе кроме памяти есть ещё и два PLA, одна из которых формирует преобразование аккумулятора в порт O (например чтобы преобразовать 4-битное число в 8 сигналов 7-сегментоно индикатора для отображения), а другая делает вот это:

Code: Select all

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 построил...
Last edited by Shaos on 08 May 2013 06:27, edited 2 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote: P.P.S. Вон чего нагуглил: http://blog.kevtris.org/blogfiles/TMSDIS.BAS
в соответствии с алгоритмом из этой программки получилась такая табличка:

Code: Select all

[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: Select all

#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-таблички в соответствии с новой информацией
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:
Lavr wrote:Предложил мне сочинить письмо в фирму Busch по поводу прошивки... ну посмотрим что выйдет...
Кстати - есть мысли как это сделать ненавязчиво-результативно?
что-то я сомневаюсь, что они вышлют какую-то древнюю прошивку
Попытка не пытка, просто у него был опыт положительного общения с фирмой Busch.
Говорит - они довольно отзывчивы... ну я подумаю - как повежливее - и попробую написать...
Shaos wrote:P.P.P.S. На ебее есть TMS1000 и TMS1100, причём по нестрашной цене :o
Lavr wrote:А смысл? Они ж все вроде масочно прошитые производителем... нет?
Т.е. всякая TMS1000 под свой девайс, как я понял...
да? фигово :(
Для экспериментов и отладки у них в серии есть кристаллы TMS1098 и TMS1099 - они используют
их в своём фирменном аппаратном дебаггере с внешней ПЗУ программ.

Image
The TMS 1099 SE-1 was an external ROM version of the TMS 1000 released for code developers.
Удивительно, но на сайте TI следов серии TMS1000 я просто не нашел... Понятно что время...
Но ведь это их как бы гордость - удачный продукт... ну и раритетный музейный экспонат...


PS. Спасибо за все ссылки - вечером внимательно весь материал почитаю.
Last edited by Lavr on 08 May 2013 08:25, edited 1 time in total.
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

да про TMS1099 и TMS1098 я тоже вычитал - поискал их вживую и ничего не нашёл...

P.S. вставил чуть выше картину PLA декодера инструкций из патента про TMS1000 - если они по заказу могли эту PLA по другому программировать, то это вообще круто :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Как я чуть позже написал у них не просто XOR, а какие-то многоногие AND-гейты понавешаны, чтобы охватить все 64 ячейки - так что может и не проще счётчика...
Я листал сайты, где есть отзывы разработчиков, работавших с TMS1000,
ну как бы криков восторга не услышал от всех его фич - это мягко говоря...

Кстати, с прошивками PLA проблемы тоже были, да и не только...
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
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Кстати этот чувак тот самый что NANDputer построил...
А он (http://blog.kevtris.org/) пишет что-то про TMS1000?

Или вот это у него просто информ-мешок здесь?
http://blog.kevtris.org/blogfiles/TMS1000/
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Lavr wrote:Кстати этот чувак тот самый что NANDputer построил...
А он (http://blog.kevtris.org/) пишет что-то про TMS1000?

Или вот это у него просто информ-мешок здесь?
http://blog.kevtris.org/blogfiles/TMS1000/
Я не нашёл у него в блоге ничего про TMS1000 (разве что он написал что его NANDputer быстрее чем TMS1000)

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

Post by Shaos »

Lavr wrote:
Shaos wrote:Как я чуть позже написал у них не просто XOR, а какие-то многоногие AND-гейты понавешаны, чтобы охватить все 64 ячейки - так что может и не проще счётчика...
Я листал сайты, где есть отзывы разработчиков, работавших с TMS1000,
ну как бы криков восторга не услышал от всех его фич - это мягко говоря...

Кстати, с прошивками PLA проблемы тоже были, да и не только...
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 нет, да и не было никогда
да - отзыв этого чувака я читал - там проблема с ROM получилась - они отправили перфокарты и одна из них потерялась по дороге и им прошили сдвинутую версию :)

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

Post by Lavr »

Shaos wrote:а вообще эту фигнюшку в кодах проще всего программировать - так что наверное так оно и было :roll:
А кто тогда корректирует заумные сдвиги в переходах и вызовах?
Shaos wrote:Возможно он просто этот каталог как свалку своих личных файлов использует, не зная что туда можно
зайти напрямую и что гугл её индексирует...
Я тоже так подумал и инфу на всякий случай скачал...

А чего у него такое:

TMS1000_20x_1b_6500w5.xcf величиной в 103M (етра) ? :wink:
iLavr
User avatar
Shaos
Admin
Posts: 24012
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:а вообще эту фигнюшку в кодах проще всего программировать - так что наверное так оно и было :roll:
А кто тогда корректирует заумные сдвиги в переходах и вызовах?
Ну дык это - табличку перекодировки на стену прикнопили и вперёд :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Ну дык это - табличку перекодировки на стену прикнопили и вперёд :)
"Это не наш метод!.." (с) :wink:

Ну с учетом того, что "the development system was a TMS 990/4 minicomputer"...

Это, кстати, вот такая штука:

Image

Если кто-либо понадеялся! :rotate:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Некий Michael Kohn работает над naken_asm, поддерживающим, в частности,
ассемблирование/дизассемблирование кода TMS1000/TMS1100.

Продукт с исходниками доступен здесь:
http://www.mikekohn.net/micro/naken_asm.php

Скачал, но пока не попробовал...
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Некий Michael Kohn работает над naken_asm, поддерживающим, в частности,
ассемблирование/дизассемблирование кода TMS1000/TMS1100.
...
Скачал, но пока не попробовал...
Посмотрел этот продукт сегодня. Судя по всему - табличный ассемблер/дизассемблер.

Для каждого нового проца автор добавляет в исходник соответствующую процу
таблицу.

Для TMS1000 таблица у него вот такая:

Code: Select all

#include "table_tms1000.h"

struct _table_tms1000 table_tms1000[] =
{
  { "knez", 0x09, 0x0e },
  { "tka", -1, 0x08 },
  { "setr", 0x0d, 0x0d },
  { "rstr", 0x0c, 0x0c },
  { "tdo", 0x0a, 0x0a },
  { "clo", 0x0b, 0x0b },
  { "tam", 0x03, 0x27 },
  { "tmy", 0x22, 0x22 },
  { "tma", 0x21, 0x21 },
  { "xma", 0x2e, 0x03 },
  { "tamiy", 0x20, -1 },
  { "tamiyc", -1, 0x25 },
  { "tamdyn", -1, 0x24 },
  { "tamza", 0x04, 0x26 },
  { "amaac", 0x25, 0x06 },
  { "saman", 0x27, 0x3c },
  { "imac", 0x28, 0x3e },
  { "dman", 0x2a, 0x07 },
  { "alem", 0x29, 0x01 },
  { "mnea", -1, 0x00 },
  { "mnez", 0x26, 0x3f },
  //{ "sbit", -1, -1 },
  //{ "rbit", -1, -1 },
  //{ "tbit1", -1, -1 },
  //{ "tcy", -1, -1 },
  //{ "tcmiy", -1, -1 },
  //{ "ldx", -1, -1 },
  //{ "ldp", -1, -1 },
  //{ "alec", -1, -1 },
  //{ "ynec", -1, -1 },
  { "a2aac", -1, 0x78 },
  { "a3aac", -1, 0x74 },
  { "a4aac", -1, 0x7c },
  { "a5aac", -1, 0x72 },
  { "a6aac", 0x06, 0x7a },
  { "a7aac", -1, 0x76 },
  { "a8aac", 0x01, 0x7e },
  { "a9aac", -1, 0x71 },
  { "a10aac", 0x05, 0x79 },
  { "a11aac", -1, 0x75 },
  { "a12aac", -1, 0x7d },
  { "a13aac", -1, 0x73 },
  { "a14aac", -1, 0x7b },
  { "retn", 0x0f, 0x0f },
  //{ "br", -1, -1 },
  //{ "call", -1, -1 },
  { "tay", 0x24, 0x20 },
  { "tya", 0x23, 0x23 },
  { "ynea", 0x02, 0x02 },
  { "cla", 0x2f, 0x7f },
  { "ia", 0x0e, -1 },
  { "iac", -1, 0x70 },
  { "dan", 0x07, 0x77 },
  { "iyc", 0x2b, 0x05 },
  { "dyn", 0x2c, 0x04 },
  { "cpaiz", 0x2d, 0x3d },
  { "comx", 0x00, -1 },
  { "comx", -1, 0x09 },
  { "comc", -1, 0x0b },
  { NULL, 0, 0 }
};
Собственно, структура опкода у TMS1000, согласно мануалу, вот такая:

Image
iLavr