Mano pdp8 mano.h
mano.h
// Mano Project #ifndef MANO_H #define MANO_H // Debug options #define DEBUG 1 // Lengths #define LABEL_LENGTH 3 // Bitmask definitions tis easier to add than shift #define Bitmask0 1 #define Bitmask1 2 #define Bitmask2 4 #define Bitmask3 8 #define Bitmask4 16 #define Bitmask5 32 #define Bitmask6 64 #define Bitmask7 128 #define Bitmask8 256 #define Bitmask9 512 #define Bitmask10 1024 #define Bitmask11 2048 #define Bitmask12 4096 #define Bitmask13 8192 #define Bitmask14 16384 #define Bitmask15 32768 #define MAX_ADDRESS 4095 #define MIN_ADDRESS 0 #define MAX_PLUS 32768 #define MAX_MINUS -32767 #define MaxShort 65535 // Indirect instruction #define def_I Bitmask15 // Pseudo Instructions #define def_END 0 #define def_ORG 0 #define def_HEX 16 #define def_DEC 10 #define def_OCT 8 // Memory - Reference Instructions #define def_ADD 4096 #define def_ADD_I 36864 #define def_AND 0 #define def_AND_I 32768 #define def_BSA 20480 #define def_BSA_I 53248 #define def_BUN 16384 #define def_BUN_I 49152 #define def_ISZ 24576 #define def_ISZ_I 57344 #define def_LDA 8192 #define def_LDA_I 40960 #define def_STA 12288 #define def_STA_I 45056 // Register - Reference Instructions #define def_CIL 28736 #define def_CIR 28800 #define def_CLA 30720 #define def_CLE 29696 #define def_CMA 29184 #define def_CME 28928 #define def_HLT 28673 #define def_INC 28704 #define def_SNA 28680 #define def_SPA 28688 #define def_SZA 28676 #define def_SZE 28674 // I/O Instructions #define def_INP 63488 #define def_IOF 61504 #define def_ION 61568 #define def_OUT 62464 #define def_SKI 61952 #define def_SKO 61696 // ERROR Messages #define ADDRESS_OVER_MAX -70000 #define ADDRESS_UNDER_MIN -70001 #define INVALID_COMMAND -70002 #define INVALID_DEC_INSTRUCTION -70003 #define INVALID_END_INSTRUCTION -70005 #define INVALID_HEX_INSTRUCTION -70006 #define INVALID_HLT_INSTRUCTION -70007 #define INVALID_LABEL -70008 #define INVALID_NUMBER_FORMAT -70009 #define INVALID_OCT_INSTRUCTION -70010 #define INVALID_ORG_INSTRUCTION -70011 #define INVALID_PSEUDO_INSTRUCTION -70012 #define MEMORY_LOAD_ERROR -70013 #define NO_END -70014 #define NO_HALT -70015 #define NON_PSEUDO_INSTRUCTION -70016 #define NUMBER_OVER_MAX -70017 #define NUMBER_UNDER_MINUS_MIN -70018 #define ORG_OVER_4095 -70019 #define ORG_UNDER_0 -70020 #define TOO_MANY_LINES -70021 #define VALID_DEC_INSTRUCTION -70022 #define VALID_END_INSTRUCTION -70023 #define VALID_HEX_INSTRUCTION -70024 #define VALID_HLT_INSTRUCTION -70025 #define VALID_OCT_INSTRUCTION -70026 #define VALID_PSEUDO_INSTRUCTION -70027 #define VALID_ORG_INSTRUCTION -70028 #define VALID_NUMBER -70029 #endif // MANO_H
Internal Links
Parent Article: Mano PDP-8 Simulation Project Source Code