Skip to content

Commit ee9fd71

Browse files
authored
[iQue] Decompile dbpprint.c (#75)
1 parent ade805e commit ee9fd71

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

include/PR/bcp.h

+7
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@
9797

9898

9999

100+
#define RDB_WRITE16(addr,data) (*(vu16*)PHYS_TO_K1(addr)=(u16)(data))
101+
#define RDB_READ16(addr) (*(vu16*)PHYS_TO_K1(addr))
102+
103+
#define RDB_20000_REG (PI_BASE_REG + 0x20000)
104+
#define RDB_E0400_REG (PI_BASE_REG + 0xE0400)
105+
#define RDB_E8000_REG (PI_BASE_REG + 0xE8000)
106+
100107
/**
101108
* Serial Interface (SI) Additional Registers
102109
*/

src/bb/misc/dbpprint.c

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "PR/os_internal.h"
2+
#include "PR/bcp.h"
3+
4+
void __osBbPPutter(void* str, char* buf, size_t n) {
5+
int i = 0;
6+
7+
while (n != 0) {
8+
RDB_WRITE16(RDB_E0400_REG, 0x500 | buf[i]);
9+
IO_READ(RDB_20000_REG);
10+
11+
RDB_WRITE16(RDB_E8000_REG, 1);
12+
IO_READ(RDB_20000_REG);
13+
14+
i++;
15+
16+
while (!(RDB_READ16(RDB_E8000_REG) & 8)) {
17+
;
18+
}
19+
20+
RDB_WRITE16(RDB_E8000_REG, 8);
21+
IO_READ(RDB_20000_REG);
22+
23+
n--;
24+
}
25+
}

0 commit comments

Comments
 (0)