Mano pdp8 mano.h

From Minor Miracle Software
Revision as of 17:08, 13 June 2016 by WikiSysop (talk | contribs) (Created page with " mano.h <PRE> // Mano Project #ifndef MANO_H #define MANO_H // Debug options #define DEBUG 1 // Lengths #define LABEL_LENGTH 3 // Bitmask definitions tis easier to add t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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