PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
jv.c
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
11#include "acjv_internal.h"
12
13int acJvRead(acJvAddr addr, void *buf, int size)
14{
15 acJvReg src;
16 int i;
17
18 src = (acJvReg)(2 * (addr & 0x3FFF) + 0xB2400000);
19 for ( i = size; i > 0; buf = (acUint8 *)buf + 1 )
20 {
21 --i;
22 *(acUint8 *)buf = *src++;
23 }
24 return size - i;
25}
26
27int acJvWrite(acJvAddr addr, void *buf, int size)
28{
29 acJvReg dst;
30 int i;
31
32 dst = (acJvReg)(2 * (addr & 0x3FFF) + 0xB2400000);
33 for ( i = size; i > 0; ++dst )
34 {
35 --i;
36 *dst = *(acUint8 *)buf;
37 buf = (acUint8 *)buf + 1;
38 }
39 return size - i;
40}
41
42int acJvGet(acJvAddr addr)
43{
44 return ((*(volatile acUint16 *)(2 * (addr & 0x3FFF) + 0xB2400000 + 2) << 8) & 0xFF)
45 | ((*(volatile acUint16 *)(2 * (addr & 0x3FFF) + 0xB2400000)) & 0xFF);
46}
47
48int acJvPut(acJvAddr addr, int value)
49{
50 volatile acUint16 *v3;
51
52 v3 = (volatile acUint16 *)(2 * (addr & 0x3FFF) + 0xB2400000);
53 *v3 = value;
54 v3[1] = value >> 8;
55 return value;
56}
57
58int acJvModuleStart(int argc, char **argv)
59{
60 (void)argc;
61 (void)argv;
62
63 *((volatile acUint16 *)0xB2416002) = 0;
64 return 0;
65}
66
67int acJvModuleStop()
68{
69 *((volatile acUint16 *)0xB2416000) = 0;
70 return 0;
71}
72
73int acJvModuleRestart(int argc, char **argv)
74{
75 (void)argc;
76 (void)argv;
77
78 return -88;
79}
80
81int acJvModuleStatus()
82{
83 return -88;
84}