Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Z80-Computer
# Tom80 (Tomato)

Files relating to a Z80 based computer I am building

Expand Down Expand Up @@ -27,9 +27,9 @@ Also Includes:
-28 Pin ZIF Socket
-USB Interface

-Simple Memory Monitor (ASH.asm)
-a whopping 5 commands, including read, write, execute, AND MORE!
-not currently finished
-Simple Memory Monitor
-a whopping 4 commands, including read, write, execute, AND MORE!
-available in ASM (smaller) and C (easier to understand) versions

Other (Older) files:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ term_01_input_char_iterm_msg_getc:
JP NZ, GETCH_LOOP

IN A, (0)

or a
RET

; After character is retrieved do any necessary
; character set translation including ascii codes
; 10 and 13 as shown below
Expand All @@ -59,4 +61,4 @@ key_cr:
key_lf:

ld a,CHAR_LF
ret
ret
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,52 @@ term_01_output_char_oterm_msg_cls:
; hl+3 = & window.height

;error implement term_01_output_char_oterm_msg_cls

;Clear DLAB
IN A, (3)
AND 0x7F
OUT (3), A

;Escape Character
PRINTCH_LOOP_1:
;Read transmit register status in line status register
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_1

LD A, '\033'
OUT (0), A

;Bracket
PRINTCH_LOOP_2:
;Read transmit register status in line status register
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_2

LD A, '['
OUT (0), A

;Clear
PRINTCH_LOOP_3:
;Read transmit register status in line status register
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_3

LD A, '2'
OUT (0), A

;Terminate
PRINTCH_LOOP_4:
;Read transmit register status in line status register
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_4

LD A, 'J'
OUT (0), A
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,98 @@ term_01_output_char_oterm_msg_printc:
;
; Print the char to screen at given character coordinate.

IN A, (3)
;error implement term_01_output_char_oterm_msg_printc


LD A, '\033'
CALL PUTCHAR

LD A, '['
CALL PUTCHAR

;Put the Y value
LD A, H
CALL DIV10
LD A, D
CP 0x30
JP Z, PUT_Y_E
CALL PUTCHAR
PUT_Y_E:
LD A, E
CALL PUTCHAR

;Put the Semicolon
LD A, ';'
CALL PUTCHAR

;Put the X value
LD A, L
CALL DIV10
LD A, D
CP 0x30
JP Z, PUT_X_E
CALL PUTCHAR
PUT_X_E:
LD A, E
CALL PUTCHAR

LD A, 'H'
CALL PUTCHAR

LD A, C
CALL PUTCHAR
ret


;Expects A to be value, returns 10s in D, 1s in E
DIV10:
PUSH AF
LD D, 0
LD E, 0
;Check if 0
CP 0
JP Z, DIV10_END

DIV10_LOOP:
SUB A, 10
JP C, DIV10_END
INC D
JP DIV10_LOOP

DIV10_END:
ADD A, 10
LD E, A

;Convert D and E to Char
LD A, D
ADD A, 0x31
LD D, A

LD A, E
ADD A, 0x31
LD E, A

POP AF
RET

;Expects A to be the char
PUTCHAR:

PUSH AF
;Clear DLAB
IN A, (3)
AND 0x7F
OUT (3), A

PRINTCH_LOOP:

;Print Escape Char
PRINTCH_LOOP:
;Read transmit register status in line status register
IN A, (3)
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP

;Write Char to UART
LD A, C
POP AF
OUT (0), A

RET
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,44 @@ term_01_output_char_oterm_msg_scroll:
; hl+2 = & window.y
; hl+3 = & window.height

IN A, (3)
AND 0x7F
OUT (3), A
;error implement term_01_output_char_oterm_msg_scroll

PRINTCH_LOOP_1:
;Read transmit register status in line status register
IN A, (3)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_1
;Esc[ValueA

;Write Char to UART
LD A, '\n'
OUT (0), A
;Gets called no matter what character is given

LD A, '\033'
CALL PUTCHAR

LD A, '['
CALL PUTCHAR

PRINTCH_LOOP_2:
LD A, '1'
CALL PUTCHAR

LD A, 'S'
CALL PUTCHAR

RET

;Expects A to be the char
PUTCHAR:

PUSH AF
;Clear DLAB
IN A, (3)
AND 0x7F
OUT (3), A

;Print Escape Char
PRINTCH_LOOP:
;Read transmit register status in line status register
IN A, (3)
IN A, (5)
AND 0x60
CP 0x60
JP NZ, PRINTCH_LOOP_2
JP NZ, PRINTCH_LOOP

;Write Char to UART
LD A, '\n'
POP AF
OUT (0), A

RET
Loading