summaryrefslogtreecommitdiff
path: root/appl/cmd/palm/desklink.m
blob: cc8d69c467db576be780a2aee3edcbf2889213a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

#
# desktop/Pilot link protocol
#

Desklink: module {

	PATH1:	con "/dis/palm/desklink.dis";

	User: adt {
		userid:	int;
		viewerid:	int;
		lastsyncpc:	int;
		succsynctime:	int;
		lastsynctime:	int;
		username: string;
		password:	array of byte;
	};

	SysInfo: adt {
		romversion:	int;
		locale:	int;
		product:	string;
	};

	CardInfo: adt {
		cardno:	int;
		version:	int;
		creation:	int;
		romsize:	int;
		ramsize:	int;
		ramfree:	int;
		name:	string;
		maker:	string;
	};

	connect:	fn(srvfile: string): (Palmdb, string);
	hangup:	fn(): int;

	#
	# Desk Link Protocol functions (usually with the same names as in PalmOS)
	#

	ReadUserInfo:	fn(): ref User;
	WriteUserInfo:	fn(u: ref User, flags: int): int;

	# WriteUserInfo update flags
	UserInfoModUserID:	con 16r80;
	UserInfoModSyncPC:	con 16r40;
	UserInfoModSyncDate:	con 16r20;
	UserInfoModName:	con 16r10;
	UserInfoModViewerID:	con 16r08;

	ReadSysInfo:	fn(): ref SysInfo;
	ReadSysInfoVer:	fn(): (int, int, int);	# DLP 1.2

	GetSysDateTime:	fn(): int;
	SetSysDateTime:	fn(nil: int): int;

	ReadStorageInfo:	fn(cardno: int): (array of ref CardInfo, int, string);
	ReadDBCount:		fn(cardno: int): (int, int);

	ReadDBList:	fn(cardno: int, flags: int, start: int): (array of ref Palm->DBInfo, int, string);	# flags must contain DBListRAM and/or DBListROM
	FindDBInfo:	fn(cardno: int, start: int, name: string, dtype, creator: string): ref Palm->DBInfo;

	# list location and options
	DBListRAM:	con 16r80;
	DBListROM:	con 16r40;
	DBListMultiple:	con 16r20;	# ok to return multiple entries

	# OpenDB, CreateDB, ReadAppBlock, ... ResetSyncFlags, ReadOpenDBInfo, MoveCategory are functions in DB
	CloseDB_All:	fn(): int;
	DeleteDB:		fn(name: string): int;

	ResetSystem:	fn(): int;

	OpenConduit:	fn(): int;
	EndOfSync:	fn(status: int): int;

	# EndOfSync status parameter
	SyncNormal, SyncOutOfMemory, SyncCancelled, SyncError, SyncIncompatible:	con iota;

	AddSyncLogEntry:	fn(entry: string): int;

	#
	# Palmdb implementation
	#

	init:	fn(m: Palm): string;
};