소스 검색

By default, allocate about 0x100 bytes for PSP+RSP

During "make updatebootstrap", we use less than 0x20 bytes on the
PSP side and less than 0x40 bytes on the RSP one. 0x100 bytes ought
to be enough for anybody.
pull/102/head
Virgil Dupras 4 년 전
부모
커밋
87b51a6261
8개의 변경된 파일12개의 추가작업 그리고 15개의 파일을 삭제
  1. +1
    -1
      blk/618
  2. +5
    -0
      emul/emul.c
  3. +2
    -0
      emul/emul.h
  4. BIN
      emul/forth.bin
  5. +1
    -11
      emul/stage.c
  6. +1
    -1
      emul/xcomp.fs
  7. +1
    -1
      recipes/ti84/xcomp.fs
  8. +1
    -1
      recipes/trs80/xcomp.fs

+ 1
- 1
blk/618 파일 보기

@@ -1,5 +1,5 @@
0x8000 CONSTANT RAMSTART
0xf000 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
0xff00 CONSTANT RS_ADDR 0xfffa CONSTANT PS_ADDR
0x80 CONSTANT ACIA_CTL 0x81 CONSTANT ACIA_IO
4 CONSTANT SDC_SPI
5 CONSTANT SDC_CSLOW 6 CONSTANT SDC_CSHIGH


+ 5
- 0
emul/emul.c 파일 보기

@@ -53,6 +53,7 @@ Machine* emul_init()
memset(m.mem, 0, 0x10000);
m.ramstart = 0;
m.minsp = 0xffff;
m.maxix = 0;
for (int i=0; i<0x100; i++) {
m.iord[i] = NULL;
m.iowr[i] = NULL;
@@ -74,6 +75,9 @@ bool emul_step()
if (newsp != 0 && newsp < m.minsp) {
m.minsp = newsp;
}
if (m.cpu.R1.wr.IX > m.maxix) {
m.maxix = m.cpu.R1.wr.IX;
}
return true;
} else {
return false;
@@ -116,4 +120,5 @@ void emul_memdump()
void emul_printdebug()
{
fprintf(stderr, "Min SP: %04x\n", m.minsp);
fprintf(stderr, "Max IX: %04x\n", m.maxix);
}

+ 2
- 0
emul/emul.h 파일 보기

@@ -14,6 +14,8 @@ typedef struct {
ushort ramstart;
// The minimum value reached by SP at any point during execution.
ushort minsp;
// same principle for IX
ushort maxix;
// Array of 0x100 function pointers to IO read and write routines. Leave to
// NULL when IO port is unhandled.
IORD iord[0x100];


BIN
emul/forth.bin 파일 보기


+ 1
- 11
emul/stage.c 파일 보기

@@ -20,11 +20,6 @@ trouble of compiling defs to binary.

*/

// When DEBUG is set, stage1 is a core-less forth that works interactively.
// Useful for... debugging!
// By the way: there's a double-echo in stagedbg. It's normal. Don't panic.

//#define DEBUG
#define RAMSTART 0
#define STDIO_PORT 0x00
// To know which part of RAM to dump, we listen to port 2, which at the end of
@@ -56,10 +51,6 @@ static uint8_t iord_stdio()
static void iowr_stdio(uint8_t val)
{
// we don't output stdout in stage0
#ifdef DEBUG
// ... unless we're in DEBUG mode!
putchar(val);
#endif
}

static void iowr_here(uint8_t val)
@@ -101,12 +92,11 @@ int main(int argc, char *argv[])

while (running && emul_step());

#ifndef DEBUG
// We're done, now let's spit dict data
for (int i=start_here; i<end_here; i++) {
putchar(m->mem[i]);
}
#endif
emul_printdebug();
return 0;
}


+ 1
- 1
emul/xcomp.fs 파일 보기

@@ -1,5 +1,5 @@
0xe800 CONSTANT RAMSTART
0xf000 CONSTANT RS_ADDR
0xff00 CONSTANT RS_ADDR
0xfffa CONSTANT PS_ADDR
212 LOAD ( z80 assembler )
262 LOAD ( xcomp )


+ 1
- 1
recipes/ti84/xcomp.fs 파일 보기

@@ -1,5 +1,5 @@
0x8000 CONSTANT RAMSTART
0xb000 CONSTANT RS_ADDR
0xbf00 CONSTANT RS_ADDR
0xbffa CONSTANT PS_ADDR
RAMSTART 0x70 + CONSTANT LCD_MEM
RAMSTART 0x72 + CONSTANT KBD_MEM


+ 1
- 1
recipes/trs80/xcomp.fs 파일 보기

@@ -1,4 +1,4 @@
0xf000 CONSTANT RS_ADDR
0xff00 CONSTANT RS_ADDR
0xfffa CONSTANT PS_ADDR
RS_ADDR 0x80 - CONSTANT RAMSTART
212 LOAD ( z80 assembler )


불러오는 중...
취소
저장