|
Last change
on this file was 10, checked in by chronos, 15 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.