From cb809b8ce362ab27ec2e2c9013f1bd03553a128f Mon Sep 17 00:00:00 2001 From: luke zeller Date: Tue, 5 May 2020 14:15:34 -0400 Subject: [PATCH] got print working, new keyboard control converts keycode to char. all chars conv to charcodes using shiftMap and charMap. added temp cp/m logo cause fuck it --- program | Bin 76448 -> 112392 bytes program.cpp | 208 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 171 insertions(+), 37 deletions(-) diff --git a/program b/program index 89ad4403ed3238f58b678f05c8f769eacad6338c..e05fc5a4134d222015ad026df8f5e0d4276f745c 100755 GIT binary patch literal 112392 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�@ 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 literal 76448 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%0Ab+8ST)7l80JqEfL=8>_LAk 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 charMap{ {SDLK_SPACE, 0}, +map charMap = { {' ', 0}, + {'a', 1}, + {'b', 2}, + {'c', 3}, + {'d', 4}, + {'e', 5}, + {'f', 6}, + {'g', 7}, + {'h', 8}, + {'i', 9}, + {'j', 10}, + {'k', 11}, + {'l', 12}, + {'m', 13}, + {'n', 14}, + {'o', 15}, + {'p', 16}, + {'q', 17}, + {'r', 18}, + {'s', 19}, + {'t', 20}, + {'u', 21}, + {'v', 22}, + {'w', 23}, + {'x', 24}, + {'y', 25}, + {'z', 26}, + {'1', 27}, + {'2', 28}, + {'3', 29}, + {'4', 30}, + {'5', 31}, + {'6', 32}, + {'7', 33}, + {'8', 34}, + {'9', 35}, + {'0', 36}, + {'`', 37}, + {'-', 38}, + {'=', 39}, + {'\\', 40}, + {'/', 41}, + {'[', 42}, + {']', 44}, + {';', 45}, + {'\'', 47}, + {',', 48}, + {'.', 49} + +}; + +map shiftMap = { {'!', 52}, + {'@', 62}, + {'#', 54}, + {'$', 55}, + {'%', 56}, + {'^', 63}, + {'&', 57}, + {'*', 50}, + {'(', 58}, + {')', 59}, + {'~', 67}, + {'_', 64}, + {'+', 51}, + {'|', 43}, + {'?', 53}, + {'{', 66}, + {'}', 65}, + {':', 46}, + {'\"', 68}, + {'<', 60}, + {'>', 61} + +}; + +map shiftConv = { {'1', '!'}, + {'2', '@'}, + {'3', '#'}, + {'4', '$'}, + {'5', '%'}, + {'6', '^'}, + {'7', '&'}, + {'8', '*'}, + {'9', '('}, + {'0', ')'}, + {'`', '~'}, + {'-', '_'}, + {'=', '+'}, + {'\\', '|'}, + {'/', '?'}, + {'[', '{'}, + {']', '}'}, + {';', ':'}, + {'\'', '\"'}, + {',', '<'}, + {'.', '>'} + +}; + +/*map charMap{ {SDLK_SPACE, 0}, {SDLK_a, 1}, {SDLK_b, 2}, {SDLK_c, 3}, @@ -871,8 +970,10 @@ map shiftMap{ {SDLK_SPACE, 0}, {SDLK_COMMA, 60}, {SDLK_PERIOD, 61}, -}; - +};*/ + + +string shiftChars = R"(!@#$%^&*()~_+|?{}:"<>)"; //int screen[40][25]; but in vector vector< vector > screen(40, vector(25)); @@ -881,6 +982,9 @@ const char* ver = "0.1.0-prerelease"; bool cursor = false; +int a = 0; +int b = 0; + void drawChar(SDL_Renderer *renderer, int scale, int x, int y, int charToDraw) { @@ -931,12 +1035,6 @@ void drawScreen(SDL_Renderer *renderer, int scale, int x, int y) { } void clearScreen() { - - /*for(int c=0;c<40;c++) { - for(int d=0;d<25;d++) { - screen[c][d] = 0; - } - }*/ screen.clear(); @@ -958,6 +1056,52 @@ void scrollScreen() { } +void printCharFromCode(int charCode) { + + screen[a][b] = charCode; + + if (a < 39) { a++; } else { a = 0; b++; } + if (b < 25) {} else { b = 24; scrollScreen(); } + +} + +void printChar(char charToDraw) { + + if (shiftChars.find(charToDraw) != string::npos) { + + printCharFromCode(shiftMap[charToDraw]); + + } else { + + printCharFromCode(charMap[charToDraw]); + + } + +} + +void print(string stringToPrint) { + + for(int f=0; f < stringToPrint.length(); f++) { + + printChar(stringToPrint[f]); + + } + +} + +void println(string stringToPrint) { + + for(int f=0; f < stringToPrint.length(); f++) { + + printChar(stringToPrint[f]); + + } + + a = 0; + b++; + +} + int main(int argc, char* argv[]) { //setup @@ -1000,9 +1144,9 @@ int main(int argc, char* argv[]) { "Z80 SCREENTEST", //window title SDL_WINDOWPOS_UNDEFINED, //initial x position SDL_WINDOWPOS_UNDEFINED, //initial y position - 320 * scale, //width, in pixels - 200 * scale, //height, in pixels - SDL_WINDOW_OPENGL //flags - see below + 320 * scale, //width, in pixels + 200 * scale, //height, in pixels + SDL_WINDOW_OPENGL //flags ); // Check that the window was successfully created @@ -1024,23 +1168,16 @@ int main(int argc, char* argv[]) { //clear screen to black SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); SDL_RenderClear(renderer); + - //test drawing section (will be removed once program loop is implemented -/* - SDL_RenderSetScale(renderer, scale, scale); - SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); - SDL_RenderDrawPoint(renderer, 0, 0); - - - drawChar(renderer, scale, 0, 0, 0); - - SDL_RenderPresent(renderer); -*/ + println("cp/m 2.2"); + println("copyright 1979 digital research"); + println(""); + print("a>"); - int a = 0; - int b = 0; + Uint32 time = SDL_GetTicks(); @@ -1051,16 +1188,11 @@ int main(int argc, char* argv[]) { drawScreen(renderer, scale, a, b); SDL_RenderPresent(renderer); - if (SDL_TICKS_PASSED(SDL_GetTicks(), time + 500)) { - + if (SDL_GetTicks() > time + 500) { + cursor = !cursor; time = SDL_GetTicks(); - } - - - - //handle events SDL_Event event; while (SDL_PollEvent(&event)) { @@ -1104,23 +1236,25 @@ int main(int argc, char* argv[]) { break; default: + + cout << shiftMap[event.key.keysym.sym]; if (charMap.count(event.key.keysym.sym) == 0) { break; } cursor = true; if (event.key.keysym.mod == 4097) { + + //char shiftSym = - screen[a][b] = shiftMap[event.key.keysym.sym]; + printCharFromCode(shiftMap[shiftConv[event.key.keysym.sym]]); } else { - screen[a][b] = charMap[event.key.keysym.sym]; + printCharFromCode(charMap[event.key.keysym.sym]); } - - if (a < 39) { a++; } else { a = 0; b++; } - if (b < 25) {} else { b = 24; scrollScreen(); } + time = SDL_GetTicks();