BESM6: Change REGister initializers to use sim_defs.h defined macros.

This commit is contained in:
Mark Pizzolato 2016-03-23 17:43:13 -07:00
parent fc4171140a
commit e7f7b10f6d
6 changed files with 171 additions and 166 deletions

View file

@ -107,40 +107,42 @@ t_stat cpu_show_pult (FILE *st, UNIT *up, int32 v, void *dp);
UNIT cpu_unit = { UDATA (NULL, UNIT_FIX, MEMSIZE) }; UNIT cpu_unit = { UDATA (NULL, UNIT_FIX, MEMSIZE) };
#define ORDATAVM(nm,loc,wd) REGDATA(nm,(loc),8,wd,0,1,NULL,NULL,REG_VMIO,0,0)
REG cpu_reg[] = { REG cpu_reg[] = {
{ "СчАС", &PC, 8, 15, 0, 1 }, /* счётчик адреса команды */ { ORDATA ( "СчАС", PC, 15) }, /* счётчик адреса команды */
{ "РК", &RK, 8, 24, 0, 1 }, /* регистр выполняемой команды */ { ORDATA ( "РК", RK, 24) }, /* регистр выполняемой команды */
{ "Аисп", &Aex, 8, 15, 0, 1 }, /* исполнительный адрес */ { ORDATA ( "Аисп", Aex, 15) }, /* исполнительный адрес */
{ "СМ", &ACC, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* сумматор */ { ORDATAVM ( "СМ", ACC, 48) }, /* сумматор */
{ "РМР", &RMR, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* регистр младших разрядов */ { ORDATAVM ( "РМР", RMR, 48) }, /* регистр младших разрядов */
{ "РАУ", &RAU, 2, 6, 0, 1 }, /* режимы АУ */ { BINRDATA ( "РАУ", RAU, 6) }, /* режимы АУ */
{ "М1", &M[1], 8, 15, 0, 1 }, /* регистры-модификаторы */ { ORDATA ( "М1", M[1], 15) }, /* регистры-модификаторы */
{ "М2", &M[2], 8, 15, 0, 1 }, { ORDATA ( "М2", M[2], 15) },
{ "М3", &M[3], 8, 15, 0, 1 }, { ORDATA ( "М3", M[3], 15) },
{ "М4", &M[4], 8, 15, 0, 1 }, { ORDATA ( "М4", M[4], 15) },
{ "М5", &M[5], 8, 15, 0, 1 }, { ORDATA ( "М5", M[5], 15) },
{ "М6", &M[6], 8, 15, 0, 1 }, { ORDATA ( "М6", M[6], 15) },
{ "М7", &M[7], 8, 15, 0, 1 }, { ORDATA ( "М7", M[7], 15) },
{ "М10", &M[010], 8, 15, 0, 1 }, { ORDATA ( "М10", M[010], 15) },
{ "М11", &M[011], 8, 15, 0, 1 }, { ORDATA ( "М11", M[011], 15) },
{ "М12", &M[012], 8, 15, 0, 1 }, { ORDATA ( "М12", M[012], 15) },
{ "М13", &M[013], 8, 15, 0, 1 }, { ORDATA ( "М13", M[013], 15) },
{ "М14", &M[014], 8, 15, 0, 1 }, { ORDATA ( "М14", M[014], 15) },
{ "М15", &M[015], 8, 15, 0, 1 }, { ORDATA ( "М15", M[015], 15) },
{ "М16", &M[016], 8, 15, 0, 1 }, { ORDATA ( "М16", M[016], 15) },
{ "М17", &M[017], 8, 15, 0, 1 }, /* указатель магазина */ { ORDATA ( "М17", M[017], 15) }, /* указатель магазина */
{ "М20", &M[020], 8, 15, 0, 1 }, /* MOD - модификатор адреса */ { ORDATA ( "М20", M[020], 15) }, /* MOD - модификатор адреса */
{ "М21", &M[021], 8, 15, 0, 1 }, /* PSW - режимы УУ */ { ORDATA ( "М21", M[021], 15) }, /* PSW - режимы УУ */
{ "М27", &M[027], 8, 15, 0, 1 }, /* SPSW - упрятывание режимов УУ */ { ORDATA ( "М27", M[027], 15) }, /* SPSW - упрятывание режимов УУ */
{ "М32", &M[032], 8, 15, 0, 1 }, /* ERET - адрес возврата из экстракода */ { ORDATA ( "М32", M[032], 15) }, /* ERET - адрес возврата из экстракода */
{ "М33", &M[033], 8, 15, 0, 1 }, /* IRET - адрес возврата из прерывания */ { ORDATA ( "М33", M[033], 15) }, /* IRET - адрес возврата из прерывания */
{ "М34", &M[034], 8, 16, 0, 1 }, /* IBP - адрес прерывания по выполнению */ { ORDATA ( "М34", M[034], 16) }, /* IBP - адрес прерывания по выполнению */
{ "М35", &M[035], 8, 16, 0, 1 }, /* DWP - адрес прерывания по чтению/записи */ { ORDATA ( "М35", M[035], 16) }, /* DWP - адрес прерывания по чтению/записи */
{ "РУУ", &RUU, 2, 9, 0, 1 }, /* ПКП, ПКЛ, РежЭ, РежПр, ПрИК, БРО, ПрК */ { BINRDATA ( "РУУ", RUU, 9) }, /* ПКП, ПКЛ, РежЭ, РежПр, ПрИК, БРО, ПрК */
{ "ГРП", &GRP, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* главный регистр прерываний */ { ORDATAVM ( "ГРП", GRP, 48) }, /* главный регистр прерываний */
{ "МГРП", &MGRP, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* маска ГРП */ { ORDATAVM ( "МГРП", MGRP, 48) }, /* маска ГРП */
{ "ПРП", &PRP, 8, 24, 0, 1 }, /* периферийный регистр прерываний */ { ORDATA ( "ПРП", PRP, 24) }, /* периферийный регистр прерываний */
{ "МПРП", &MPRP, 8, 24, 0, 1 }, /* маска ПРП */ { ORDATA ( "МПРП", MPRP, 24) }, /* маска ПРП */
{ 0 } { 0 }
}; };
@ -178,73 +180,73 @@ DEVICE cpu_dev = {
* REG: A pseudo-device containing Latin synonyms of all CPU registers. * REG: A pseudo-device containing Latin synonyms of all CPU registers.
*/ */
REG reg_reg[] = { REG reg_reg[] = {
{ "PC", &PC, 8, 15, 0, 1 }, /* program counter */ { ORDATA ( "PC", PC, 15) }, /* program counter */
{ "RK", &RK, 8, 24, 0, 1 }, /* instruction register */ { ORDATA ( "RK", RK, 24) }, /* instruction register */
{ "Aex", &Aex, 8, 15, 0, 1 }, /* effective address */ { ORDATA ( "Aex", Aex, 15) }, /* effective address */
{ "ACC", &ACC, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* accumulator */ { ORDATAVM ( "ACC", ACC, 48) }, /* accumulator */
{ "RMR", &RMR, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* LSB register */ { ORDATAVM ( "RMR", RMR, 48) }, /* LSB register */
{ "RAU", &RAU, 2, 6, 0, 1 }, /* ALU modes */ { BINRDATA ( "RAU", RAU, 6) }, /* ALU modes */
{ "M1", &M[1], 8, 15, 0, 1 }, /* index (modifier) registers */ { ORDATA ( "M1", M[1], 15) }, /* index (modifier) registers */
{ "M2", &M[2], 8, 15, 0, 1 }, { ORDATA ( "M2", M[2], 15) },
{ "M3", &M[3], 8, 15, 0, 1 }, { ORDATA ( "M3", M[3], 15) },
{ "M4", &M[4], 8, 15, 0, 1 }, { ORDATA ( "M4", M[4], 15) },
{ "M5", &M[5], 8, 15, 0, 1 }, { ORDATA ( "M5", M[5], 15) },
{ "M6", &M[6], 8, 15, 0, 1 }, { ORDATA ( "M6", M[6], 15) },
{ "M7", &M[7], 8, 15, 0, 1 }, { ORDATA ( "M7", M[7], 15) },
{ "M10", &M[010], 8, 15, 0, 1 }, { ORDATA ( "M10", M[010], 15) },
{ "M11", &M[011], 8, 15, 0, 1 }, { ORDATA ( "M11", M[011], 15) },
{ "M12", &M[012], 8, 15, 0, 1 }, { ORDATA ( "M12", M[012], 15) },
{ "M13", &M[013], 8, 15, 0, 1 }, { ORDATA ( "M13", M[013], 15) },
{ "M14", &M[014], 8, 15, 0, 1 }, { ORDATA ( "M14", M[014], 15) },
{ "M15", &M[015], 8, 15, 0, 1 }, { ORDATA ( "M15", M[015], 15) },
{ "M16", &M[016], 8, 15, 0, 1 }, { ORDATA ( "M16", M[016], 15) },
{ "M17", &M[017], 8, 15, 0, 1 }, /* also the stack pointer */ { ORDATA ( "M17", M[017], 15) }, /* also the stack pointer */
{ "M20", &M[020], 8, 15, 0, 1 }, /* MOD - address modifier register */ { ORDATA ( "M20", M[020], 15) }, /* MOD - address modifier register */
{ "M21", &M[021], 8, 15, 0, 1 }, /* PSW - CU modes */ { ORDATA ( "M21", M[021], 15) }, /* PSW - CU modes */
{ "M27", &M[027], 8, 15, 0, 1 }, /* SPSW - saved CU modes */ { ORDATA ( "M27", M[027], 15) }, /* SPSW - saved CU modes */
{ "M32", &M[032], 8, 15, 0, 1 }, /* ERET - extracode return address */ { ORDATA ( "M32", M[032], 15) }, /* ERET - extracode return address */
{ "M33", &M[033], 8, 15, 0, 1 }, /* IRET - interrupt return address */ { ORDATA ( "M33", M[033], 15) }, /* IRET - interrupt return address */
{ "M34", &M[034], 8, 16, 0, 1 }, /* IBP - instruction bkpt address */ { ORDATA ( "M34", M[034], 16) }, /* IBP - instruction bkpt address */
{ "M35", &M[035], 8, 16, 0, 1 }, /* DWP - watchpoint address */ { ORDATA ( "M35", M[035], 16) }, /* DWP - watchpoint address */
{ "RUU", &RUU, 2, 9, 0, 1 }, /* execution modes */ { BINRDATA ( "RUU", RUU, 9) }, /* execution modes */
{ "GRP", &GRP, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* main interrupt reg */ { ORDATAVM ( "GRP", GRP, 48) }, /* main interrupt reg */
{ "MGRP", &MGRP, 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* mask of the above */ { ORDATAVM ( "MGRP", MGRP, 48) }, /* mask of the above */
{ "PRP", &PRP, 8, 24, 0, 1 }, /* peripheral interrupt reg */ { ORDATA ( "PRP", PRP, 24) }, /* peripheral interrupt reg */
{ "MPRP", &MPRP, 8, 24, 0, 1 }, /* mask of the above*/ { ORDATA ( "MPRP", MPRP, 24) }, /* mask of the above*/
{ "BRZ0", &BRZ[0], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ0", BRZ[0], 50) },
{ "BRZ1", &BRZ[1], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ1", BRZ[1], 50) },
{ "BRZ2", &BRZ[2], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ2", BRZ[2], 50) },
{ "BRZ3", &BRZ[3], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ3", BRZ[3], 50) },
{ "BRZ4", &BRZ[4], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ4", BRZ[4], 50) },
{ "BRZ5", &BRZ[5], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ5", BRZ[5], 50) },
{ "BRZ6", &BRZ[6], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ6", BRZ[6], 50) },
{ "BRZ7", &BRZ[7], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "BRZ7", BRZ[7], 50) },
{ "BAZ0", &BAZ[0], 8, 16, 0, 1 }, { ORDATA ( "BAZ0", BAZ[0], 16) },
{ "BAZ1", &BAZ[1], 8, 16, 0, 1 }, { ORDATA ( "BAZ1", BAZ[1], 16) },
{ "BAZ2", &BAZ[2], 8, 16, 0, 1 }, { ORDATA ( "BAZ2", BAZ[2], 16) },
{ "BAZ3", &BAZ[3], 8, 16, 0, 1 }, { ORDATA ( "BAZ3", BAZ[3], 16) },
{ "BAZ4", &BAZ[4], 8, 16, 0, 1 }, { ORDATA ( "BAZ4", BAZ[4], 16) },
{ "BAZ5", &BAZ[5], 8, 16, 0, 1 }, { ORDATA ( "BAZ5", BAZ[5], 16) },
{ "BAZ6", &BAZ[6], 8, 16, 0, 1 }, { ORDATA ( "BAZ6", BAZ[6], 16) },
{ "BAZ7", &BAZ[7], 8, 16, 0, 1 }, { ORDATA ( "BAZ7", BAZ[7], 16) },
{ "TABST", &TABST, 8, 28, 0, 1 }, { ORDATA ( "TABST", TABST, 28) },
{ "RP0", &RP[0], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP0", RP[0], 48) },
{ "RP1", &RP[1], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP1", RP[1], 48) },
{ "RP2", &RP[2], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP2", RP[2], 48) },
{ "RP3", &RP[3], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP3", RP[3], 48) },
{ "RP4", &RP[4], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP4", RP[4], 48) },
{ "RP5", &RP[5], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP5", RP[5], 48) },
{ "RP6", &RP[6], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP6", RP[6], 48) },
{ "RP7", &RP[7], 8, 48, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "RP7", RP[7], 48) },
{ "RZ", &RZ, 8, 32, 0, 1 }, { ORDATA ( "RZ", RZ, 32) },
{ "FP1", &pult[0][1], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP1", pult[0][1], 50) },
{ "FP2", &pult[0][2], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP2", pult[0][2], 50) },
{ "FP3", &pult[0][3], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP3", pult[0][3], 50) },
{ "FP4", &pult[0][4], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP4", pult[0][4], 50) },
{ "FP5", &pult[0][5], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP5", pult[0][5], 50) },
{ "FP6", &pult[0][6], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP6", pult[0][6], 50) },
{ "FP7", &pult[0][7], 8, 50, 0, 1, NULL, NULL, REG_VMIO }, { ORDATAVM ( "FP7", pult[0][7], 50) },
{ 0 } { 0 }
}; };

View file

@ -102,19 +102,19 @@ UNIT disk_unit [16] = {
}; };
REG disk_reg[] = { REG disk_reg[] = {
{ "КУС_0", &controller[0].op, 8, 24, 0, 1 }, { ORDATA ( "КУС_0", controller[0].op, 24) },
{ "УСТР_0", &controller[0].dev, 8, 3, 0, 1 }, { ORDATA ( "УСТР_0", controller[0].dev, 3) },
{ "ЗОНА_0", &controller[0].zone, 8, 10, 0, 1 }, { ORDATA ( "ЗОНА_0", controller[0].zone, 10) },
{ "ДОРОЖКА_0", &controller[0].track, 8, 2, 0, 1 }, { ORDATA ( "ДОРОЖКА_0", controller[0].track, 2) },
{ "МОЗУ_0", &controller[0].memory, 8, 20, 0, 1 }, { ORDATA ( "МОЗУ_0", controller[0].memory, 20) },
{ "РС_0", &controller[0].status, 8, 24, 0, 1 }, { ORDATA ( "РС_0", controller[0].status, 24) },
{ "КУС_1", &controller[1].op, 8, 24, 0, 1 }, { ORDATA ( "КУС_1", controller[1].op, 24) },
{ "УСТР_1", &controller[1].dev, 8, 3, 0, 1 }, { ORDATA ( "УСТР_1", controller[1].dev, 3) },
{ "ЗОНА_1", &controller[1].zone, 8, 10, 0, 1 }, { ORDATA ( "ЗОНА_1", controller[1].zone, 10) },
{ "ДОРОЖКА_1", &controller[1].track, 8, 2, 0, 1 }, { ORDATA ( "ДОРОЖКА_1", controller[1].track, 2) },
{ "МОЗУ_1", &controller[1].memory, 8, 20, 0, 1 }, { ORDATA ( "МОЗУ_1", controller[1].memory, 20) },
{ "РС_1", &controller[1].status, 8, 24, 0, 1 }, { ORDATA ( "РС_1", controller[1].status, 24) },
{ "ОШ", &disk_fail, 8, 6, 0, 1 }, { ORDATA ( "ОШ", disk_fail, 6) },
{ 0 } { 0 }
}; };

View file

@ -69,11 +69,11 @@ UNIT drum_unit [] = {
}; };
REG drum_reg[] = { REG drum_reg[] = {
{ "УС", &drum_op, 8, 24, 0, 1 }, { ORDATA ( "УС", drum_op, 24) },
{ "ЗОНА", &drum_zone, 8, 10, 0, 1 }, { ORDATA ( "ЗОНА", drum_zone, 10) },
{ "СЕКТОР", &drum_sector, 8, 2, 0, 1 }, { ORDATA ( "СЕКТОР", drum_sector, 2) },
{ "МОЗУ", &drum_memory, 8, 15, 0, 1 }, { ORDATA ( "МОЗУ", drum_memory, 15) },
{ "СЧСЛОВ", &drum_nwords, 8, 11, 0, 1 }, { ORDATA ( "СЧСЛОВ", drum_nwords, 11) },
{ 0 } { 0 }
}; };

View file

@ -154,51 +154,54 @@ t_value pult[11][8] = {
}, },
}; };
#define ORDATAVM(nm,loc,wd) REGDATA(nm,(loc),8,wd,0,1,NULL,NULL,REG_VMIO,0,0)
#define ORDATAH(nm,loc,wd) REGDATA(nm,(loc),8,wd,0,1,NULL,NULL,REG_HIDDEN,0,0)
REG mmu_reg[] = { REG mmu_reg[] = {
{ "БРЗ0", &BRZ[0], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, /* Буферные регистры записи */ { ORDATAVM ( "БРЗ0", BRZ[0], 50) }, /* Буферные регистры записи */
{ "БРЗ1", &BRZ[1], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ1", BRZ[1], 50) },
{ "БРЗ2", &BRZ[2], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ2", BRZ[2], 50) },
{ "БРЗ3", &BRZ[3], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ3", BRZ[3], 50) },
{ "БРЗ4", &BRZ[4], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ4", BRZ[4], 50) },
{ "БРЗ5", &BRZ[5], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ5", BRZ[5], 50) },
{ "БРЗ6", &BRZ[6], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ6", BRZ[6], 50) },
{ "БРЗ7", &BRZ[7], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРЗ7", BRZ[7], 50) },
{ "БАЗ0", &BAZ[0], 8, 16, 0, 1 }, /* Буферные адреса записи */ { ORDATA ( "БАЗ0", BAZ[0], 16) }, /* Буферные адреса записи */
{ "БАЗ1", &BAZ[1], 8, 16, 0, 1 }, { ORDATA ( "БАЗ1", BAZ[1], 16) },
{ "БАЗ2", &BAZ[2], 8, 16, 0, 1 }, { ORDATA ( "БАЗ2", BAZ[2], 16) },
{ "БАЗ3", &BAZ[3], 8, 16, 0, 1 }, { ORDATA ( "БАЗ3", BAZ[3], 16) },
{ "БАЗ4", &BAZ[4], 8, 16, 0, 1 }, { ORDATA ( "БАЗ4", BAZ[4], 16) },
{ "БАЗ5", &BAZ[5], 8, 16, 0, 1 }, { ORDATA ( "БАЗ5", BAZ[5], 16) },
{ "БАЗ6", &BAZ[6], 8, 16, 0, 1 }, { ORDATA ( "БАЗ6", BAZ[6], 16) },
{ "БАЗ7", &BAZ[7], 8, 16, 0, 1 }, { ORDATA ( "БАЗ7", BAZ[7], 16) },
{ "ТАБСТ", &TABST, 8, 28, 0, 1, NULL, NULL, REG_HIDDEN },/* Таблица старшинства БРЗ */ { ORDATAH ( "ТАБСТ", TABST, 28) }, /* Таблица старшинства БРЗ */
{ "ЗпТР", &FLUSH, 8, 4, 0, 1, NULL, NULL, REG_HIDDEN },/* Признак выталкивания БРЗ */ { ORDATAH ( "ЗпТР", FLUSH, 4) }, /* Признак выталкивания БРЗ */
{ "Старш", &OLDEST, 8, 3, 0, 1 }, /* Номер вытолкнутого БРЗ */ { ORDATA ( "Старш", OLDEST, 3) }, /* Номер вытолкнутого БРЗ */
{ "РП0", &RP[0], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, /* Регистры приписки, по 12 бит */ { ORDATAVM ( "РП0", RP[0], 48) }, /* Регистры приписки, по 12 бит */
{ "РП1", &RP[1], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП1", RP[1], 48) },
{ "РП2", &RP[2], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП2", RP[2], 48) },
{ "РП3", &RP[3], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП3", RP[3], 48) },
{ "РП4", &RP[4], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП4", RP[4], 48) },
{ "РП5", &RP[5], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП5", RP[5], 48) },
{ "РП6", &RP[6], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП6", RP[6], 48) },
{ "РП7", &RP[7], 8, 48, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "РП7", RP[7], 48) },
{ "РЗ", &RZ, 8, 32, 0, 1 }, /* Регистр защиты */ { ORDATA ( "РЗ", RZ, 32) }, /* Регистр защиты */
{ "ТР1", &pult[0][1], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, /* Тумблерные регистры */ { ORDATAVM ( "ТР1", pult[0][1], 50) }, /* Тумблерные регистры */
{ "ТР2", &pult[0][2], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР2", pult[0][2], 50) },
{ "ТР3", &pult[0][3], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР3", pult[0][3], 50) },
{ "ТР4", &pult[0][4], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР4", pult[0][4], 50) },
{ "ТР5", &pult[0][5], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР5", pult[0][5], 50) },
{ "ТР6", &pult[0][6], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР6", pult[0][6], 50) },
{ "ТР7", &pult[0][7], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "ТР7", pult[0][7], 50) },
{ "БРС0", &BRS[0], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, /* Буферные регистры слов */ { ORDATAVM ( "БРС0", BRS[0], 50) }, /* Буферные регистры слов */
{ "БРС1", &BRS[1], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРС1", BRS[1], 50) },
{ "БРС2", &BRS[2], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРС2", BRS[2], 50) },
{ "БРС3", &BRS[3], 8, 50, 0, 1, NULL, NULL, REG_VMIO}, { ORDATAVM ( "БРС3", BRS[3], 50) },
{ "БАС0", &BAS[0], 8, 16, 0, 1 }, /* Буферные адреса слов */ { ORDATA ( "БАС0", BAS[0], 16) }, /* Буферные адреса слов */
{ "БАС1", &BAS[1], 8, 16, 0, 1 }, { ORDATA ( "БАС1", BAS[1], 16) },
{ "БАС2", &BAS[2], 8, 16, 0, 1 }, { ORDATA ( "БАС2", BAS[2], 16) },
{ "БАС3", &BAS[3], 8, 16, 0, 1 }, { ORDATA ( "БАС3", BAS[3], 16) },
{ "БРСст", &BRSLRU, 8, 6, 0, 1, NULL, NULL, REG_HIDDEN}, { ORDATA ( "БРСст", BRSLRU, 6) },
{ 0 } { 0 }
}; };

View file

@ -64,8 +64,8 @@ struct acpu_t {
#define LINEFEED_SYNC 1 /* Чтобы быстрее печатало; в жизни 20-25 мс/1.4 мс ~= 17 */ #define LINEFEED_SYNC 1 /* Чтобы быстрее печатало; в жизни 20-25 мс/1.4 мс ~= 17 */
REG printer_reg[] = { REG printer_reg[] = {
{ "Готов", &READY, 2, 2, 18, 1 }, { REGDATA ( "Готов", READY, 2, 2, 18, 1, NULL, NULL, 0, 0, 0) },
{ "Прогон", &READY, 2, 2, 22, 1 }, { REGDATA ( "Прогон", READY, 2, 2, 22, 1, NULL, NULL, 0, 0, 0) },
{ 0 } { 0 }
}; };

View file

@ -64,9 +64,9 @@ char line[2][128];
unsigned char FS[2]; unsigned char FS[2];
REG fs_reg[] = { REG fs_reg[] = {
{ "Готов", &READY, 2, 2, 14, 1 }, { REGDATA ( "Готов", READY, 2, 2, 14, 1, NULL, NULL, 0, 0, 0) },
{ "ФС1500-1", &FS[0], 8, 8, 0, 1 }, { ORDATA ( "ФС1500-1", FS[0], 8) },
{ "ФС1500-2", &FS[2], 8, 8, 0, 1 }, { ORDATA ( "ФС1500-2", FS[2], 8) },
{ 0 } { 0 }
}; };