From 1452e2c856acc5b32b4b10d3ac6b6dee19d2e0ce Mon Sep 17 00:00:00 2001 From: aap Date: Thu, 12 May 2016 22:34:03 +0200 Subject: [PATCH] fixed dependency on inst.h --- README.md | 3 +- apr.c | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++- mem | 7 ++- pdp6.h | 4 ++ ttytest.s | 5 +- 5 files changed, 147 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6e79c19..edd48bd 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,8 @@ Otherwise you need SDL and pthread. ## Running -Only the cpu is implemented. There are no external devices yet. +The cpu and the console tty are implemented. +There are no other external devices yet. The only things missing from the cpu are the clock to generate interrupts and the repeat key mechanism. The simulator reads `fmem` and `mem` to initialise the memory and fast memory. diff --git a/apr.c b/apr.c index 0acf261..cff071c 100644 --- a/apr.c +++ b/apr.c @@ -1,5 +1,4 @@ #include "pdp6.h" -#include "inst.h" #include word iobus0, iobus1; @@ -3145,6 +3144,138 @@ aprmain(void *p) } +char *names[0700] = { + "UUO00", "UUO01", "UUO02", "UUO03", + "UUO04", "UUO05", "UUO06", "UUO07", + "UUO10", "UUO11", "UUO12", "UUO13", + "UUO14", "UUO15", "UUO16", "UUO17", + "UUO20", "UUO21", "UUO22", "UUO23", + "UUO24", "UUO25", "UUO26", "UUO27", + "UUO30", "UUO31", "UUO32", "UUO33", + "UUO34", "UUO35", "UUO36", "UUO37", + "UUO40", "UUO41", "UUO42", "UUO43", + "UUO44", "UUO45", "UUO46", "UUO47", + "UUO50", "UUO51", "UUO52", "UUO53", + "UUO54", "UUO55", "UUO56", "UUO57", + "UUO60", "UUO61", "UUO62", "UUO63", + "UUO64", "UUO65", "UUO66", "UUO67", + "UUO70", "UUO71", "UUO72", "UUO73", + "UUO74", "UUO75", "UUO76", "UUO77", + + "XX100", "XX101", "XX102", "XX103", + "XX104", "XX105", "XX106", "XX107", + "XX110", "XX111", "XX112", "XX113", + "XX114", "XX115", "XX116", "XX117", + "XX120", "XX121", "XX122", "XX123", + "XX124", "XX125", "XX126", "XX127", + "XX130", "XX131", "FSC", "CAO", + "LDCI", "LDC", "DPCI", "DPC", + "FAD", "FADL", "FADM", "FADB", + "FADR", "FADLR", "FADMR", "FADBR", + "FSB", "FSBL", "FSBM", "FSBB", + "FSBR", "FSBLR", "FSBMR", "FSBBR", + "FMP", "FMPL", "FMPM", "FMPB", + "FMPR", "FMPLR", "FMPMR", "FMPBR", + "FDV", "FDVL", "FDVM", "FDVB", + "FDVR", "FDVLR", "FDVMR", "FDVBR", + + "MOVE", "MOVEI", "MOVEM", "MOVES", + "MOVS", "MOVSI", "MOVSM", "MOVSS", + "MOVN", "MOVNI", "MOVNM", "MOVNS", + "MOVM", "MOVMI", "MOVMM", "MOVMS", + "IMUL", "IMULI", "IMULM", "IMULB", + "MUL", "MULI", "MULM", "MULB", + "IDIV", "IDIVI", "IDIVM", "IDIVB", + "DIV", "DIVI", "DIVM", "DIVB", + "ASH", "ROT", "LSH", "XX243", + "ASHC", "ROTC", "LSHC", "XX247", + "EXCH", "BLT", "AOBJP", "AOBJN", + "JRST", "JFCL", "XCT", "XX257", + "PUSHJ", "PUSH", "POP", "POPJ", + "JSR", "JSP", "JSA", "JRA", + "ADD", "ADDI", "ADDM", "ADDB", + "SUB", "SUBI", "SUBM", "SUBB", + + "CAI", "CAIL", "CAIE", "CAILE", + "CAIA", "CAIGE", "CAIN", "CAIG", + "CAM", "CAML", "CAME", "CAMLE", + "CAMA", "CAMGE", "CAMN", "CAMG", + "JUMP", "JUMPL", "JUMPE", "JUMPLE", + "JUMPA", "JUMPGE", "JUMPN", "JUMPG", + "SKIP", "SKIPL", "SKIPE", "SKIPLE", + "SKIPA", "SKIPGE", "SKIPN", "SKIPG", + "AOJ", "AOJL", "AOJE", "AOJLE", + "AOJA", "AOJGE", "AOJN", "AOJG", + "AOS", "AOSL", "AOSE", "AOSLE", + "AOSA", "AOSGE", "AOSN", "AOSG", + "SOJ", "SOJL", "SOJE", "SOJLE", + "SOJA", "SOJGE", "SOJN", "SOJG", + "SOS", "SOSL", "SOSE", "SOSLE", + "SOSA", "SOSGE", "SOSN", "SOSG", + + "SETZ", "SETZI", "SETZM", "SETZB", + "AND", "ANDI", "ANDM", "ANDB", + "ANDCA", "ANDCAI", "ANDCAM", "ANDCAB", + "SETM", "SETMI", "SETMM", "SETMB", + "ANDCM", "ANDCMI", "ANDCMM", "ANDCMB", + "SETA", "SETAI", "SETAM", "SETAB", + "XOR", "XORI", "XORM", "XORB", + "IOR", "IORI", "IORM", "IORB", + "ANDCB", "ANDCBI", "ANDCBM", "ANDCBB", + "EQV", "EQVI", "EQVM", "EQVB", + "SETCA", "SETCAI", "SETCAM", "SETCAB", + "ORCA", "ORCAI", "ORCAM", "ORCAB", + "SETCM", "SETCMI", "SETCMM", "SETCMB", + "ORCM", "ORCMI", "ORCMM", "ORCMB", + "ORCB", "ORCBI", "ORCBM", "ORCBB", + "SETO", "SETOI", "SETOM", "SETOB", + + "HLL", "HLLI", "HLLM", "HLLS", + "HRL", "HRLI", "HRLM", "HRLS", + "HLLZ", "HLLZI", "HLLZM", "HLLZS", + "HRLZ", "HRLZI", "HRLZM", "HRLZS", + "HLLO", "HLLOI", "HLLOM", "HLLOS", + "HRLO", "HRLOI", "HRLOM", "HRLOS", + "HLLE", "HLLEI", "HLLEM", "HLLES", + "HRLE", "HRLEI", "HRLEM", "HRLES", + "HRR", "HRRI", "HRRM", "HRRS", + "HLR", "HLRI", "HLRM", "HLRS", + "HRRZ", "HRRZI", "HRRZM", "HRRZS", + "HLRZ", "HLRZI", "HLRZM", "HLRZS", + "HRRO", "HRROI", "HRROM", "HRROS", + "HLRO", "HLROI", "HLROM", "HLROS", + "HRRE", "HRREI", "HRREM", "HRRES", + "HLRE", "HLREI", "HLREM", "HLRES", + + "TRN", "TLN", "TRNE", "TLNE", + "TRNA", "TLNA", "TRNN", "TLNN", + "TDN", "TSN", "TDNE", "TSNE", + "TDNA", "TSNA", "TDNN", "TSNN", + "TRZ", "TLZ", "TRZE", "TLZE", + "TRZA", "TLZA", "TRZN", "TLZN", + "TDZ", "TSZ", "TDZE", "TSZE", + "TDZA", "TSZA", "TDZN", "TSZN", + "TRC", "TLC", "TRCE", "TLCE", + "TRCA", "TLCA", "TRCN", "TLCN", + "TDC", "TSC", "TDCE", "TSCE", + "TDCA", "TSCA", "TDCN", "TSCN", + "TRO", "TLO", "TROE", "TLOE", + "TROA", "TLOA", "TRON", "TLON", + "TDO", "TSO", "TDOE", "TSOE", + "TDOA", "TSOA", "TDON", "TSON", +}; + +char *ionames[] = { + "BLKI", + "DATAI", + "BLKO", + "DATAO", + "CONO", + "CONI", + "CONSZ", + "CONSO" +}; + void testinst(Apr *apr) { diff --git a/mem b/mem index 63b9de9..b4339de 100644 --- a/mem +++ b/mem @@ -21,5 +21,8 @@ 1122: 254000001120 1123: 435000000200 1124: 712140000000 -1125: 263740000000 -1126: 000000000141 +1125: 302000000212 +1126: 263740000000 +1127: 201000000015 +1130: 254000001120 +1131: 000000000141 diff --git a/pdp6.h b/pdp6.h index 6089a44..2517e5c 100644 --- a/pdp6.h +++ b/pdp6.h @@ -290,3 +290,7 @@ void recalc_req(void); void inittty(void); //void wakepanel(void); + +// for debugging +char *names[0700]; +char *ionames[010]; diff --git a/ttytest.s b/ttytest.s index d7b1bb6..7d1a0ce 100644 --- a/ttytest.s +++ b/ttytest.s @@ -37,7 +37,10 @@ PUTCHR: JRST .-2 IORI 0,200 DATAO TTY,0 - POPJ P, + CAIE 0,"\n|200 + POPJ P, + MOVEI 0,"\r + JRST PUTCHR STR: "a