From d8960142598e6a34a75c55fa548ff8d0c9fa9942 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 Mar 2019 13:52:01 -0700 Subject: [PATCH] Backspace now works --- emulate.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/emulate.c b/emulate.c index 2a87291..f7c20b4 100644 --- a/emulate.c +++ b/emulate.c @@ -96,8 +96,10 @@ void write_mem(uint16_t index, uint8_t value){ printf("WRITE: %02x --> %04x\n", value, index); } if((index&0xFF0F) == 0xD002){ - if((value&0x7F) == '\n' || (value&0x7F) == '\r'){ + if((value&0x7F) == '\n' || (value&0x7F) == '\r'){//Print \n instead of \r printf("\n"); + } else if((value&0x7F) == 0x5F){//Make the 0x5F character map to ASCII backspace + printf("\b \b"); } else if((value&0x7F) >= 0x20 && (value&0x7F) != 127){ //Output a character printf("%c", value&0x7F); @@ -250,7 +252,10 @@ int main(){ if(!(count%200) && kbhit()){ key_hit = getch(); - if(key_hit == '~'){//Emulate the control character + if(key_hit == 0x08){//Emulate the backspace character + memory[0xD010] = 0xDF; + memory[0xD011] |= 0x80; + } else if(key_hit == '~'){//Emulate the control character while(!kbhit()){} key_hit = getch(); if(key_hit == 'd' || key_hit == 'D'){//Ctrl-D