summaryrefslogtreecommitdiff
path: root/src/video
diff options
context:
space:
mode:
authoralekseiplusplus <alekseijeaves@protonmail.com>2023-12-01 02:56:13 +1100
committeralekseiplusplus <alekseijeaves@protonmail.com>2023-12-01 02:56:13 +1100
commit8ec080d0cd9fd62c0de20780581a4750d078ea94 (patch)
tree6ade354b2ddb37dba7dedd9d7eab0f8478071ff5 /src/video
parent580a7040ba53367c15ca682d4ea90c31fdcca45f (diff)
progress, still WIP
Diffstat (limited to 'src/video')
-rw-r--r--src/video/ncurses.c19
-rw-r--r--src/video/signetics.c8
2 files changed, 17 insertions, 10 deletions
diff --git a/src/video/ncurses.c b/src/video/ncurses.c
index e4a7613..0e261bb 100644
--- a/src/video/ncurses.c
+++ b/src/video/ncurses.c
@@ -23,12 +23,15 @@ byte UserInput()
switch(c)
{
// Convert special characters
- case KEY_BACKSPACE:
+ case KEY_F(1): //backspace
r = 0xDF;
- case KEY_ENTER:
+ break;
+ case KEY_F(2): //enter
r = 0x8D;
- case KEY_EXIT: //TODO: Figure out if this is Esc or not.
+ break;
+ case KEY_F(3): //exit. TODO: Figure out if this is Esc or not.
r = 0x9B;
+ break;
// Convert regular characters
default:
if (c < 0x20 || c >= 0x60)
@@ -42,13 +45,13 @@ byte UserInput()
break;
}
- SetMemory(KBD, r);
+ //SetMemory(KBD, r);
- TerminalInput(r);
+ //TerminalInput(r);
- return c;
+ return r;
}
@@ -135,7 +138,7 @@ void TerminalInput(byte n)
{
// Place character
mvwaddch(AppleWindow, TermY, TermX, ' ');
- mvwaddch(AppleWindow, TermY, TermX, CharacterROM[n]);
+ mvwaddch(AppleWindow, TermY, TermX, CharacterROM(n));
// Add character to register
*TerminalShiftRegisterPosition = n;
@@ -168,7 +171,7 @@ void TerminalInput(byte n)
for (int j = 0; j < 40; j++) {
if (offset >= (TerminalShiftRegister + 960))
offset -= TerminalShiftRegister;
- mvwaddch(AppleWindow, i, j, CharacterROM[*offset] );
+ mvwaddch(AppleWindow, i, j, CharacterROM(*offset) );
offset++;
}}
diff --git a/src/video/signetics.c b/src/video/signetics.c
index 09e9836..3dd279b 100644
--- a/src/video/signetics.c
+++ b/src/video/signetics.c
@@ -2,15 +2,19 @@
// Signetics refers to the various Signetics brand chips which the Apple I came with, including a character ROM, and a shift-register based video memory.
// Intended to be included during pre-processing into the .c of the used video library.
-const byte CharacterROM[0x40] = {
+const byte SigneticsROM[0x40] = {
'@' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' ,
'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , 'Y' , 'Z' , '[' , '\\', ']' , '^' , '_' ,
' ' , '!' , '"' , '#' , '$' , '%' , '&' , '\'', '(' , ')' , '*' , '+' , ',' , '-' , '.' , '/' ,
'0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , ':' , ';' , '<' , '=' , '>' , '?'
};
+byte CharacterROM(byte x) {
+ return SigneticsROM[ x & 0b01111111 ];
+}
+
const byte* TerminalShiftRegister;
byte* TerminalShiftRegisterPosition;
-int TerminalShiftRegisterOffset; \ No newline at end of file
+int TerminalShiftRegisterOffset;