aboutsummaryrefslogtreecommitdiff
path: root/ostoolbox.icl
blob: fbbd8e038cfe1d73372e005be8f741d351a518de (plain) (blame)
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
implementation module ostoolbox

import	StdBool, StdClass, StdInt, StdMisc, StdTuple
import	clCrossCall_12
import	code from "cCrossCallFont_121.o"// PA: moved to ostcp, "cCrossCallTCP_121.obj", "cTCP_121.obj"


::	OSToolbox
	:==	Int
	
// OSNewToolbox :: *OSToolbox
OSNewToolbox :== 0

// RWS ??? add success bool
osInitToolbox :: !*OSToolbox -> *OSToolbox		// PA: strictness added
osInitToolbox toolbox
	| toolbox<>0
		= abort "osInitToolbox reinitialised\n"
	# (ok,toolbox)	= winInitOs
	| not ok
		= toolbox // PA: don't abort, otherwise you can't do startIO twice. 
	//	= abort "osInitToolbox failed\n"
	| otherwise
		# toolbox	= winStartOsThread toolbox	// PA: WinStartOsThread added
		# toolbox	= osInstallFont toolbox		// Install font info cross call handling
	//	# toolbox	= osInstallTCP  toolbox		// Install tcp cross call handling	(PA: moved to StdEventTCP)
		= toolbox

osInstallFont :: !*OSToolbox -> *OSToolbox
osInstallFont _
	= code
	{
		.inline InstallCrossCallFont
			ccall InstallCrossCallFont "I-I"
		.end
	}
/*	PA: moved to ostcp
osInstallTCP :: !*OSToolbox -> *OSToolbox
osInstallTCP tb
	= snd (IssueCleanRequest2 (\_ tb->(Return0Cci,tb)) (Rq0Cci CcRqCREATETCPWINDOW) (osInstallTCP tb))

osInstallTCP :: !*OSToolbox -> *OSToolbox
osInstallTCP _
	= code
	{
		.inline InstallCrossCallTCP
			ccall InstallCrossCallTCP "I-I"
		.end
	}
*/

// RWS ??? ugly
// OSDummyToolbox :: *OSToolbox
OSDummyToolbox :== 0

// PA: moved from world to ostoolbox
worldGetToolbox :: !*World -> (!*OSToolbox,!*World)
worldGetToolbox world
	= (OSNewToolbox,world)

worldSetToolbox :: !*OSToolbox !*World -> *World
worldSetToolbox _ world
	= world