Skip to content

Commit 5427d6c

Browse files
committed
generate lc3os.c as part of the build, add function for loading OS
1 parent 0952f2d commit 5427d6c

File tree

8 files changed

+14
-233
lines changed

8 files changed

+14
-233
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
lc3sim
2+
lc3os.c

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1-
lc3sim: main.c lc3os.h lc3os.c vm.h vm.c
1+
lc3sim: main.c lc3os.c vm.h vm.c
22
gcc --std=c11 -o lc3sim *.c
3+
4+
lc3os.c: lc3os.obj
5+
xxd -i lc3os.obj > lc3os.c

lc3os.c

Lines changed: 0 additions & 220 deletions
This file was deleted.

lc3os.h

Lines changed: 0 additions & 9 deletions
This file was deleted.

lc3os.obj

2.47 KB
Binary file not shown.

main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ int main(int argc, const char * argv[]) {
4141
signal(SIGINT, handle_signal);
4242

4343
vm_ctx vm = vm_create();
44-
vm_load_data(vm, lc3os_obj, lc3os_obj_len);
44+
vm_load_os(vm);
4545
vm_load_file(vm, argv[1]);
4646
vm_run(vm);
4747
vm_destroy(vm);

vm.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
#include "vm.h"
1818

19+
extern unsigned char lc3os_obj[];
20+
extern unsigned int lc3os_obj_len;
21+
1922
// MARK: - Types
2023

2124
#define VM_ADDR_MAX UINT16_MAX
@@ -144,6 +147,10 @@ static void vm_write(vm_ctx vm, vm_addr addr, vm_byte val) {
144147
vm->mem[addr] = val;
145148
}
146149

150+
void vm_load_os(vm_ctx vm) {
151+
vm_load_data(vm, lc3os_obj, lc3os_obj_len);
152+
}
153+
147154
void vm_load_file(vm_ctx vm, const char *file) {
148155
int fd, ret;
149156
struct stat statbuf;

vm.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@
55

66
#pragma once
77

8-
#include "lc3os.h"
9-
108
typedef struct vm_impl* vm_ctx;
119

1210
vm_ctx vm_create(void);
1311
void vm_destroy(vm_ctx vm);
1412

13+
void vm_load_os(vm_ctx vm);
1514
void vm_load_file(vm_ctx vm, const char *file);
1615
void vm_load_data(vm_ctx vm, unsigned const char *data, size_t length);
1716

0 commit comments

Comments
 (0)