Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. Data; //CPU Memory ends at 65535
  2. define consolemem, 65536 //First cell of console memory
  3. define keyboardmem, 67585 //Third cell of keyboard memory
  4. define cachereset, 67556 //Cell to reset console cache
  5. define clearconsole, 67577 //Cell to clear console screen
  6.  
  7. Code; //Start of actual code
  8. mov ebx, keyboardmem //Set ebx register to keyboard memory
  9. jmp Clear //Clear screen
  10.  
  11. Main:
  12. cmp #ebx, 0 //Make sure there is something in the keyboard buffer
  13. je Main //If there isn't anything, jump back to comparing
  14. cmp #ebx, ecx //Fixes repeating letters kindof
  15. je Main
  16. cmp #ebx, 127
  17. je Backspace
  18. jne Write
  19.  
  20. Write: //Write to screen
  21. mov #eax, #ebx //Move character to console memory
  22. inc eax //Move to next console memory cell
  23. mov #eax, 999 //Set parameters to white text on black background
  24. inc eax //Move to next cell to input a new character
  25. mov ecx, #ebx //Move keyboard memory to ecx register
  26. cmp eax, 66615 //Check to see if screen is full
  27. jg Clear //Jump to clear function
  28. jmp Main //Jump back to compare
  29.  
  30. Clear: //Clears screen
  31. mov #clearconsole, 1 //Set cell to clear console
  32. mov #clearconsole, 0 //Set cell back to 0 so stuff can be written
  33. mov eax, consolemem //Set eax back to the start of console memory
  34. jmp Main //Jump back to main
  35.  
  36. Backspace: //Backspaces
  37. cmp eax, consolemem
  38. je Main
  39. dec eax
  40. mov #eax, 0
  41. dec eax
  42. mov #eax, 0
  43. jmp Main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement