#ifndef EIGHTYSIX_CORE_H
#define EIGHTYSIX_CORE_H

#include <stdio.h>
#include <stdint.h>

//= rhjr: types

typedef uint8_t  u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;

typedef int8_t   i8;
typedef int16_t  i16;
typedef int32_t  i32;
typedef int64_t  i64;

typedef uint8_t  b8;
typedef uint16_t b16;
typedef uint32_t b32;
typedef uint64_t b64;

#define internal static
#define global   static

typedef struct String8
{
  u8* contents;
  i32 length;
}
String8;

//= rhjr: allocator

typedef struct Arena
{
  u8 *backing_buffer;
  i32 offset;
  i32 size;
}
Arena;

//= rhjr: instructions.
// Intel 8086 manual, pg. 4-22

typedef enum InstrOpcode
{
  InstrOpcode_MOV = 0x22 // 0010 0010
}
InstrOpcode;

#endif // EIGHTYSIX_CORE_H
