1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-20 04:24:48 +00:00

Add cmem.h with dblock and cmem[]

This commit is contained in:
Matthew Kilgore 2024-02-11 21:48:22 -05:00
parent 1daea10f53
commit 839c5c0c9f
5 changed files with 11 additions and 7 deletions

View file

@ -13,6 +13,7 @@
#endif #endif
#include "audio.h" #include "audio.h"
#include "cmem.h"
#include "completion.h" #include "completion.h"
#include "command.h" #include "command.h"
#include "compression.h" #include "compression.h"
@ -7149,7 +7150,6 @@ extern uint8 *cmem_dynamic_base;
extern uint32 qbs_cmem_sp; //=256; extern uint32 qbs_cmem_sp; //=256;
extern uint32 cmem_sp; //=65536; extern uint32 cmem_sp; //=65536;
extern ptrszint dblock; // 32bit offset of dblock
extern uint64 *nothingvalue; extern uint64 *nothingvalue;
uint8 wait_needed = 1; uint8 wait_needed = 1;

View file

@ -2,6 +2,7 @@
#define INC_LIBQB_H #define INC_LIBQB_H
#include "common.h" #include "common.h"
#include "cmem.h"
#include "qbs.h" #include "qbs.h"
void sub_shell4(qbs *, int32); //_DONTWAIT & _HIDE void sub_shell4(qbs *, int32); //_DONTWAIT & _HIDE
@ -41,8 +42,6 @@ int32 gfs_write(int32 i, int64 position, uint8 *data, int64 size);
int32 gfs_read(int32 i, int64 position, uint8 *data, int64 size); int32 gfs_read(int32 i, int64 position, uint8 *data, int64 size);
int64 gfs_read_bytes(); int64 gfs_read_bytes();
extern uint8 cmem[1114099]; // 16*65535+65535+3 (enough for highest referencable dword in conv memory)
// keyhit cyclic buffer // keyhit cyclic buffer
extern int64 keyhit[8192]; extern int64 keyhit[8192];
// keyhit specific internal flags: (stored in high 32-bits) // keyhit specific internal flags: (stored in high 32-bits)

View file

@ -0,0 +1,6 @@
#pragma once
#include <stdint.h>
extern uint8_t cmem[1114099]; // 16*65535+65535+3 (enough for highest referencable dword in conv memory)
extern intptr_t dblock; // Required for Play(). Did not find this declared anywhere

View file

@ -4,14 +4,13 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "cmem.h"
#include "error_handle.h" #include "error_handle.h"
#include "qbs.h" #include "qbs.h"
// FIXME: conventional memory should be consolidated into libqb soruce and headers // FIXME: conventional memory should be consolidated into libqb soruce and headers
extern uintptr_t dblock;
extern uint32_t qbs_cmem_sp; //=256; extern uint32_t qbs_cmem_sp; //=256;
extern uint32_t cmem_sp; //=65536; extern uint32_t cmem_sp; //=65536;
extern uint8_t cmem[1114099]; // 16*65535+65535+3 (enough for highest referencable dword in conv memory)
// Used to track strings in 16bit memory // Used to track strings in 16bit memory
static intptr_t *qbs_cmem_list = (intptr_t *)malloc(65536 * sizeof(intptr_t)); static intptr_t *qbs_cmem_list = (intptr_t *)malloc(65536 * sizeof(intptr_t));

View file

@ -564,7 +564,7 @@ uint16 call_absolute_offsets[256];
uint32 dbgline; uint32 dbgline;
uint32 qbs_cmem_sp = 256; uint32 qbs_cmem_sp = 256;
uint32 cmem_sp = 65536; uint32 cmem_sp = 65536;
ptrszint dblock; // 32bit offset of dblock intptr_t dblock; // 32bit offset of dblock
uint8 close_program = 0; uint8 close_program = 0;
int32 tab_spc_cr_size = 1; // 1=PRINT(default), 2=FILE int32 tab_spc_cr_size = 1; // 1=PRINT(default), 2=FILE
int32 tab_fileno = 0; // only valid if tab_spc_cr_size=2 int32 tab_fileno = 0; // only valid if tab_spc_cr_size=2
@ -576,7 +576,7 @@ qbs *nothingstring;
uint32 qbevent = 0; uint32 qbevent = 0;
uint8 suspend_program = 0; uint8 suspend_program = 0;
uint8 stop_program = 0; uint8 stop_program = 0;
uint8 cmem[1114099]; // 16*65535+65535+3 (enough for highest referencable dword uint8_t cmem[1114099]; // 16*65535+65535+3 (enough for highest referencable dword
// in conv memory) // in conv memory)
uint8 *cmem_static_pointer = &cmem[0] + 1280 + 65536; uint8 *cmem_static_pointer = &cmem[0] + 1280 + 65536;
uint8 *cmem_dynamic_base = &cmem[0] + 655360; uint8 *cmem_dynamic_base = &cmem[0] + 655360;