EMULATOR_PDP_11
STEPIC Учебный проект на 'С', эмулятор PDP_11 в стиле ООП
Loading...
Searching...
No Matches
buf_word.c File Reference
#include "pdp_11/memory/buf_word/mem_word_p.h"
#include "pdp_11/memory/type_func_p.h"
#include "utils/logger/logger.h"
#include <stdio.h>
#include <stdlib.h>
Include dependency graph for buf_word.c:

Functions

void __byte_write_w (void *, address_byte_t, byte_t)
 
byte_t __byte_read_w (void *, address_byte_t)
 
word_t __word_read_w (void *, address_word_t)
 
void __word_write_w (void *, address_word_t, word_t)
 
mem_word_tmem_word_new ()
 
void mem_word_create (mem_word_t *mem_word, size_word_buffer size)
 
void mem_word_destroy (mem_word_t *mem_word)
 

Function Documentation

◆ __byte_read_w()

byte_t __byte_read_w ( void *  mem_word,
address_byte_t  addr 
)
78{
79 // Читаем байт из слова по адресу;
80 mem_word_t *ptr = (mem_word_t *) mem_word;
81
82 return *(ptr->buf_w + addr) & 0xFF;
83}
Definition mem_word_p.h:7
word_t * buf_w
Definition mem_word_p.h:8
Here is the caller graph for this function:

◆ __byte_write_w()

void __byte_write_w ( void *  mem_word,
address_byte_t  addr,
byte_t  data 
)
68{
69 // Записываем байт в слово по адресу;
70 mem_word_t *ptr = (mem_word_t *) mem_word;
71
72 *(ptr->buf_w + addr) = data & 0xFF;
73}
Here is the caller graph for this function:

◆ __word_read_w()

word_t __word_read_w ( void *  mem_word,
address_word_t  addr 
)
58{
59 // Читаем слово по адресу;
60 mem_word_t *ptr = (mem_word_t *) mem_word;
61 return ((*(ptr->buf_w + addr) & 0xFF) | *(ptr->buf_w + addr + 1) << 8);
62}
Here is the caller graph for this function:

◆ __word_write_w()

void __word_write_w ( void *  mem_word,
address_word_t  addr,
word_t  data 
)
47{
48 // Записываем слово по адресу;
49 mem_word_t *ptr = (mem_word_t *) mem_word;
50
51 *(ptr->buf_w + addr) = data & 0xFF;
52 *(ptr->buf_w + addr + 1) = (data >> 8) & 0xFF;
53}
Here is the caller graph for this function:

◆ mem_word_create()

void mem_word_create ( mem_word_t mem_word,
size_word_buffer  size 
)
25{
26 // Выделение памяти для работы PDP_11 в режие типа WORD;
27 mem_word->buf_w = (word_t *) calloc(size / 2, sizeof(word_t));
28 mem_word->size_w = size / 2;
29
30 // Полморфные функции работы с памятью типа WORD или BYTE;
31 mem_word->read_byte = __byte_read_w;
32 mem_word->write_byte = __byte_write_w;
33 mem_word->read_word = __word_read_w;
34 mem_word->write_word = __word_write_w;
35}
void __byte_write_w(void *, address_byte_t, byte_t)
Definition buf_word.c:67
word_t __word_read_w(void *, address_word_t)
Definition buf_word.c:57
byte_t __byte_read_w(void *, address_byte_t)
Definition buf_word.c:77
void __word_write_w(void *, address_word_t, word_t)
Definition buf_word.c:46
read_word_t read_word
Definition mem_word_p.h:13
read_byte_t read_byte
Definition mem_word_p.h:11
write_word_t write_word
Definition mem_word_p.h:14
write_byte_t write_byte
Definition mem_word_p.h:12
size_word_buffer size_w
Definition mem_word_p.h:9
unsigned short int word_t
Definition types.h:7
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_word_destroy()

void mem_word_destroy ( mem_word_t mem_word)
39{
40 // Полморфные функции работы с памятью типа WORD или BYTE;
41 free(mem_word->buf_w);
42}
Here is the caller graph for this function:

◆ mem_word_new()

mem_word_t * mem_word_new ( )
18{
19 // Выделение памяти для класса памяти типа WORD;
20 return (mem_word_t *) malloc(sizeof(mem_word_t));
21}
Here is the caller graph for this function: