Last change
on this file was 10, checked in by chronos, 2 months ago |
- Modified: Improved serial console handling.
|
File size:
1.6 KB
|
Line | |
---|
1 | JP Start
|
---|
2 | NOP
|
---|
3 | NOP
|
---|
4 | NOP
|
---|
5 |
|
---|
6 | RET
|
---|
7 | LD R0, (R1)
|
---|
8 | LD (R0), R1
|
---|
9 | LD R0, R1
|
---|
10 | LD R0, 1
|
---|
11 | LD (R0 + 1), R1
|
---|
12 | ;LD (R0), (R1)
|
---|
13 | LD D1, R0, 1
|
---|
14 | LD D1, R0, R1
|
---|
15 |
|
---|
16 | JP Start
|
---|
17 | NOP
|
---|
18 | NOP
|
---|
19 | NOP
|
---|
20 |
|
---|
21 | VAR DeviceConsole 1
|
---|
22 | VAR ConsoleReadChar 0
|
---|
23 | VAR ConsoleWriteChar 0
|
---|
24 |
|
---|
25 | VAR DeviceKeyboard 2
|
---|
26 |
|
---|
27 | VAR DeviceScreen 3
|
---|
28 | VAR ScreenGetWidth 0
|
---|
29 | VAR ScreenGetHeight 1
|
---|
30 | VAR ScreenSetAddr 0
|
---|
31 | VAR ScreenWrite 1
|
---|
32 |
|
---|
33 | Start:
|
---|
34 | LD R0, Hello
|
---|
35 | LD R1, 12
|
---|
36 | CALL WriteStr
|
---|
37 |
|
---|
38 | ;LD R0, 64
|
---|
39 | ;LD R1, 8
|
---|
40 | ;OUT (R1), R0
|
---|
41 | ;LD R1, 0
|
---|
42 | ;LD R2, 10
|
---|
43 | ;OUT (R1), R0
|
---|
44 | ;Loop:
|
---|
45 | ;INC R0
|
---|
46 | ;DEC R2
|
---|
47 | ;JNZ R2, Loop
|
---|
48 | HALT
|
---|
49 |
|
---|
50 | WriteStr:
|
---|
51 | ; R0 - string address
|
---|
52 | ; R1 - string length
|
---|
53 | PUSH R2
|
---|
54 | PUSH R3
|
---|
55 | PUSH R4
|
---|
56 | LD R3, ConsoleWriteChar
|
---|
57 | WriteStrLoop:
|
---|
58 | LD D1, R2, (R0)
|
---|
59 | OUT D1, (R3), R2
|
---|
60 | INC R0
|
---|
61 | DEC R1
|
---|
62 | JNZ R1, WriteStrLoop
|
---|
63 | POP R4
|
---|
64 | POP R3
|
---|
65 | POP R2
|
---|
66 | RET
|
---|
67 |
|
---|
68 | ClearScreen:
|
---|
69 | PUSH R0
|
---|
70 | PUSH R1
|
---|
71 | PUSH R2
|
---|
72 | PUSH R3
|
---|
73 | LD R0, ScreenSetAddr
|
---|
74 | LD R1, 0
|
---|
75 | OUT (R0), R1
|
---|
76 | LD R0, ScreenGetWidth
|
---|
77 | IN R1, (R0)
|
---|
78 | LD R0, ScreenGetHeight
|
---|
79 | IN R2, (R0)
|
---|
80 | MUL R2, R1
|
---|
81 | LD R0, ScreenWrite
|
---|
82 | LD R1, 120
|
---|
83 | ClearScreenLoop:
|
---|
84 | OUT (R0), R1
|
---|
85 | DEC R2
|
---|
86 | JNZ R2, ClearScreenLoop
|
---|
87 | POP R3
|
---|
88 | POP R2
|
---|
89 | POP R1
|
---|
90 | POP R0
|
---|
91 | RET
|
---|
92 |
|
---|
93 | Hello:
|
---|
94 | DB 'Hello friend'
|
---|
95 |
|
---|
96 | KeyInterrupt:
|
---|
97 | ; Echo key
|
---|
98 | PUSH R3
|
---|
99 | PUSH R2
|
---|
100 | PUSH R4
|
---|
101 | LD R3, ConsoleReadChar
|
---|
102 | IN R2, (R3)
|
---|
103 | LD R3, ConsoleWriteChar
|
---|
104 | OUT (R3), R2
|
---|
105 | POP R4
|
---|
106 | POP R2
|
---|
107 | POP R3
|
---|
108 | RET
|
---|
109 |
|
---|
110 | Test:
|
---|
111 | LD R0, (R1 + 1)
|
---|
112 | LD (R1 + 12), R2
|
---|
Note:
See
TracBrowser
for help on using the repository browser.