Input from stdin now works as expected in the emulator. New program to demo input from the command line.
56 lines
2.5 KiB
NASM
56 lines
2.5 KiB
NASM
; This program asks the user for input, then prints whatever they input back to the console again.
|
|
; It stores the input string in a buffer in the Data Memory.
|
|
|
|
#Include Libraries/print.asm
|
|
|
|
#Program
|
|
|
|
start:
|
|
SETD Message0 ; Set the Data Pointer to the explanation message.
|
|
CALL printString ; Print it out.
|
|
CALL lineFeed
|
|
SETD Buffer ; Set the Data Pointer to the start of the buffer.
|
|
INIB 0x0A ; Load the value of a linefeed into B.
|
|
inputLoop:
|
|
INA 0x00 ; Poll the command line.
|
|
CCF
|
|
SUB
|
|
BRQ inputEnd ; If we encountered a linefeed, the string is over, proceed to processing.
|
|
STA ; Store A into the buffer.
|
|
INCD ; Increment to the next spot in the buffer.
|
|
BRI inputLoop ; Loop again to grab more string.
|
|
inputEnd:
|
|
INIA 0x00 ; Set A to 0.
|
|
STA ; Store it in the buffer.
|
|
SETD Buffer ; Set the Data Pointer to the start of the buffer again.
|
|
CALL printString ; Print it out.
|
|
CALL lineFeed
|
|
HALT ; End the program.
|
|
|
|
#Data
|
|
|
|
; A 256 character buffer for the input string.
|
|
; There will need to be some kind of way to define large arrays better than this...
|
|
Buffer:
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
|
|
|
Message0:
|
|
"Input Test: Will echo anything you put in."
|
|
|
|
|