Added 'K' feature: press 'Shift-K' to 'type' file KBD.TXT

This commit is contained in:
Frederic Stark 2024-09-29 13:39:21 +02:00
parent c337c22071
commit 0e328339d4
5 changed files with 50 additions and 2 deletions

1
KBD.TXT Normal file
View File

@ -0,0 +1 @@
Change content of the "kbd.txt" file to change auto-keyboard input.

13
README
View File

@ -1,3 +1,16 @@
# Fork of napple1
This forks enables to emulate keyboard entry on the apple1
This kludge is done by creating a "KBD.TXT" file. When pressing "shift-K",
the keyboard I/O will be replaced by the content of this file.
This have been done to be able to load basic programs and use the 'dump"
features to transfer them to binary files.
napple1 is an Apple 1 emulator using ncurses, ported from the SDL version
Pom1 emulafor. If you have some questions, please report it as an issue.

View File

@ -25,6 +25,10 @@
#include "keyboard.h"
#include "screen.h"
#include <stdio.h>
FILE *kbd_txt;
int handleInput(void)
{
char tmp;
@ -32,6 +36,12 @@ int handleInput(void)
tmp = '\0';
while ( (tmp = getch_screen()) == '\0' )
;
if (tmp=='K')
{
/* We open the "KBD.TXT" file if it exists */
kbd_txt = fopen("KBD.TXT", "r");
return 1;
}
if (tmp == 'B') {
loadBasic();
resetPia6820();

View File

@ -1,7 +1,8 @@
# napple1 makefile
# Nobu Hatano <nobuhatano@gmail.com>
CC = gcc
CFLAGS = -Wall -ansi
CFLAGS = -Wall
# CFLAGS = -Wall -ansi
THREAD = -lpthread
# Support Linux and Cygwin

View File

@ -162,7 +162,30 @@ unsigned char memRead(unsigned short address)
if (address == 0xD012)
return readDsp();
if (address == 0xD011)
return readKbdCr();
{
unsigned char v = readKbdCr();
extern FILE *kbd_txt;
if (!(v & 0x80) && kbd_txt)
{
// Read on char from file
int c = fgetc(kbd_txt);
if (c!=EOF)
{
if (c=='\n')
c = 0x0d;
if (v>='a' && v<='z')
c = c - 'a' + 'A';
writeKbd((unsigned char)(c + 0x80));
writeKbdCr(0xA7);
}
else
{
fclose(kbd_txt);
kbd_txt = NULL;
}
}
return v;
}
if (address == 0xD010)
return readKbd();