Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Data; //CPU Memory ends at 65535
- define consolemem, 65536 //First cell of console memory
- define keyboardmem, 67585 //Third cell of keyboard memory
- define cachereset, 67556 //Cell to reset console cache
- define clearconsole, 67577 //Cell to clear console screen
- Code; //Start of actual code
- mov ebx, keyboardmem //Set ebx register to keyboard memory
- jmp Clear //Clear screen
- Main:
- cmp #ebx, 0 //Make sure there is something in the keyboard buffer
- je Main //If there isn't anything, jump back to comparing
- cmp #ebx, ecx //Fixes repeating letters kindof
- je Main
- cmp #ebx, 127
- je Backspace
- jne Write
- Write: //Write to screen
- mov #eax, #ebx //Move character to console memory
- inc eax //Move to next console memory cell
- mov #eax, 999 //Set parameters to white text on black background
- inc eax //Move to next cell to input a new character
- mov ecx, #ebx //Move keyboard memory to ecx register
- cmp eax, 66615 //Check to see if screen is full
- jg Clear //Jump to clear function
- jmp Main //Jump back to compare
- Clear: //Clears screen
- mov #clearconsole, 1 //Set cell to clear console
- mov #clearconsole, 0 //Set cell back to 0 so stuff can be written
- mov eax, consolemem //Set eax back to the start of console memory
- jmp Main //Jump back to main
- Backspace: //Backspaces
- cmp eax, consolemem
- je Main
- dec eax
- mov #eax, 0
- dec eax
- mov #eax, 0
- jmp Main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement