Bläddra i källkod

fix result type for ARM Zynq build

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8481 8c9fc860-2736-0410-a75d-ab315db34111
eth.metacore 6 år sedan
förälder
incheckning
5a8d15b3db

+ 3 - 3
source/ARM.Usb.Mod

@@ -803,7 +803,7 @@ TYPE
 			temp : RegisteredDriver;
 			temp : RegisteredDriver;
 			drv : Usbdi.Driver;
 			drv : Usbdi.Driver;
 			interface : InterfaceDescriptor;
 			interface : InterfaceDescriptor;
-			i, res : LONGINT;
+			i : LONGINT; res : WORD;
 			name : Usbdi.Name;
 			name : Usbdi.Name;
 			suffix : LONGINT; (* 0-99; suffix is used to generate unique names for AosPlugin.Name *)
 			suffix : LONGINT; (* 0-99; suffix is used to generate unique names for AosPlugin.Name *)
 		BEGIN
 		BEGIN
@@ -1726,9 +1726,9 @@ BEGIN {EXCLUSIVE}
 END RemoveRootHub;
 END RemoveRootHub;
 
 
 PROCEDURE InstallRootHubs;
 PROCEDURE InstallRootHubs;
-VAR table : Plugins.Table; i : LONGINT;
+VAR table : Plugins.Table; i : LONGINT; res: WORD;
 BEGIN
 BEGIN
-	UsbHcdi.controllers.AddEventHandler(RootHubEvent, i); (* ignore res *)
+	UsbHcdi.controllers.AddEventHandler(RootHubEvent, res); (* ignore res *)
 	UsbHcdi.controllers.GetAll(table);
 	UsbHcdi.controllers.GetAll(table);
 	IF table # NIL THEN
 	IF table # NIL THEN
 		FOR i := 0 TO LEN(table)-1 DO AddRootHub(table[i](UsbHcdi.Hcd)); END;
 		FOR i := 0 TO LEN(table)-1 DO AddRootHub(table[i](UsbHcdi.Hcd)); END;

+ 1 - 1
source/ARM.UsbHcdi.Mod

@@ -1410,7 +1410,7 @@ END Copy;
 
 
 (** Assign a name to the host controller and add it to the controllers registry *)
 (** Assign a name to the host controller and add it to the controllers registry *)
 PROCEDURE RegisterHostController*(hcd : Hcd; CONST description : Plugins.Description);
 PROCEDURE RegisterHostController*(hcd : Hcd; CONST description : Plugins.Description);
-VAR name : Plugins.Name; res : LONGINT;
+VAR name : Plugins.Name; res : WORD;
 BEGIN {EXCLUSIVE}
 BEGIN {EXCLUSIVE}
 	name := "USBHC"; name[5] := CHR(controllerCount + 48); name[6] := 0X;
 	name := "USBHC"; name[5] := CHR(controllerCount + 48); name[6] := 0X;
 	hcd.SetName(name); hcd.desc := description;
 	hcd.SetName(name); hcd.desc := description;

+ 2 - 1
source/ARM.UsbHidDriver.Mod

@@ -1119,7 +1119,8 @@ TYPE
 		VAR
 		VAR
 			joystickColl		: UsbHidReport.HidCollection;
 			joystickColl		: UsbHidReport.HidCollection;
 			temp			: UsbHidReport.HidReport;
 			temp			: UsbHidReport.HidReport;
-			res,i			: LONGINT;
+			res			: WORD;
+			i				: LONGINT;
 		BEGIN
 		BEGIN
 			(*get joystick collection: joystick collection uses UsagePage(Generic Desktop Controlsl)->1 and Usage(Joystick)->4*)
 			(*get joystick collection: joystick collection uses UsagePage(Generic Desktop Controlsl)->1 and Usage(Joystick)->4*)
 			joystickColl := reportManager.GetCollection(UsagePage.GenericDesktopPage,4);
 			joystickColl := reportManager.GetCollection(UsagePage.GenericDesktopPage,4);

+ 5 - 5
source/ARM.UsbStorageBase.Mod

@@ -166,7 +166,7 @@ TYPE
 		number : LONGINT; (* Suffix appended to name to get unique device name *)
 		number : LONGINT; (* Suffix appended to name to get unique device name *)
 		next : UsbStorageDevice;
 		next : UsbStorageDevice;
 
 
-		PROCEDURE Transfer* (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; ofs: LONGINT; VAR diskres: LONGINT);
+		PROCEDURE Transfer* (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; ofs: LONGINT; VAR diskres: WORD);
 		VAR direction : SET; cmd : ARRAY 12 OF CHAR; i, tlen, trans, offset, num0 : LONGINT;
 		VAR direction : SET; cmd : ARRAY 12 OF CHAR; i, tlen, trans, offset, num0 : LONGINT;
 		BEGIN {EXCLUSIVE}
 		BEGIN {EXCLUSIVE}
 			IF (op = Disks.Read) OR (op = Disks.Write) THEN
 			IF (op = Disks.Read) OR (op = Disks.Write) THEN
@@ -215,7 +215,7 @@ TYPE
 		END Transfer;
 		END Transfer;
 
 
 		(** Get number of blocks and size of blocks using the UFI Read Capacity command *)
 		(** Get number of blocks and size of blocks using the UFI Read Capacity command *)
-		PROCEDURE GetSize* (VAR size, res: LONGINT);
+		PROCEDURE GetSize* (VAR size: LONGINT; VAR res: WORD);
 		BEGIN {EXCLUSIVE}
 		BEGIN {EXCLUSIVE}
 			IF Debug.Trace & Debug.traceInfo THEN KernelLog.String("UsbStorage: GetSize: "); KernelLog.Ln; END;
 			IF Debug.Trace & Debug.traceInfo THEN KernelLog.String("UsbStorage: GetSize: "); KernelLog.Ln; END;
 			(* Some devices I've seen didn't like to be asked for their capacity when no medium was inserted... *)
 			(* Some devices I've seen didn't like to be asked for their capacity when no medium was inserted... *)
@@ -235,7 +235,7 @@ TYPE
 			res := ResOk; (* Allow short transfer *)
 			res := ResOk; (* Allow short transfer *)
 		END GetSize;
 		END GetSize;
 
 
-		PROCEDURE Handle*(VAR msg: Disks.Message; VAR diskres: LONGINT);
+		PROCEDURE Handle*(VAR msg: Disks.Message; VAR diskres: WORD);
 		VAR cmd : ARRAY 12 OF CHAR; i : LONGINT; fdp : FlexibleDiskPage;
 		VAR cmd : ARRAY 12 OF CHAR; i : LONGINT; fdp : FlexibleDiskPage;
 		BEGIN {EXCLUSIVE}
 		BEGIN {EXCLUSIVE}
 			FOR i := 0 TO 11 DO cmd[i] := CHR(0); END;
 			FOR i := 0 TO 11 DO cmd[i] := CHR(0); END;
@@ -870,7 +870,7 @@ TYPE
 		storageDeviceList : UsbStorageDevice;
 		storageDeviceList : UsbStorageDevice;
 		suffixUsed : ARRAY 100 OF BOOLEAN;
 		suffixUsed : ARRAY 100 OF BOOLEAN;
 		regName : ARRAY 32 OF CHAR;
 		regName : ARRAY 32 OF CHAR;
-		res : LONGINT;
+		res : WORD;
 
 
 		PROCEDURE Add*(dev : UsbStorageDevice);
 		PROCEDURE Add*(dev : UsbStorageDevice);
 		VAR i : LONGINT;
 		VAR i : LONGINT;
@@ -1136,7 +1136,7 @@ BEGIN
 	END;
 	END;
 END ShowSenseData;
 END ShowSenseData;
 
 
-PROCEDURE ShowRes(res : LONGINT);
+PROCEDURE ShowRes(res : WORD);
 BEGIN
 BEGIN
 	IF Debug.Level >= Debug.Errors THEN
 	IF Debug.Level >= Debug.Errors THEN
 	CASE res OF
 	CASE res OF

+ 26 - 26
source/Sd.Mod

@@ -495,9 +495,9 @@ CONST
 
 
 TYPE
 TYPE
 	(** Command execution procedure *)
 	(** Command execution procedure *)
-	CommandProcedure * = PROCEDURE (VAR command: Command; VAR result: LONGINT): BOOLEAN;
+	CommandProcedure * = PROCEDURE (VAR command: Command; VAR result: WORD): BOOLEAN;
 	(** Data command execution procedure *)
 	(** Data command execution procedure *)
-	TransferProcedure * = PROCEDURE (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: LONGINT): BOOLEAN;
+	TransferProcedure * = PROCEDURE (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: WORD): BOOLEAN;
 	(** Procedure called to wait for interrupt. mask specifies which interrupts are expected, timeout is in ms. Returns FALSE if timeout occurred *)
 	(** Procedure called to wait for interrupt. mask specifies which interrupts are expected, timeout is in ms. Returns FALSE if timeout occurred *)
 	Blocker * = PROCEDURE {DELEGATE} (hc: HostController; mask: SET; timeout: LONGINT): BOOLEAN;
 	Blocker * = PROCEDURE {DELEGATE} (hc: HostController; mask: SET; timeout: LONGINT): BOOLEAN;
 
 
@@ -689,7 +689,7 @@ VAR
 	END InitHostController;
 	END InitHostController;
 
 
 	(** Set external clock for a host controller. Host state must be HcConfiguring. bus is the SD bus clock frequency, timeout is the timeout clock frequency. *)
 	(** Set external clock for a host controller. Host state must be HcConfiguring. bus is the SD bus clock frequency, timeout is the timeout clock frequency. *)
-	PROCEDURE SetExternalClock * (hc: HostController; bus, timeout: HUGEINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE SetExternalClock * (hc: HostController; bus, timeout: HUGEINT; VAR result: WORD): BOOLEAN;
 	BEGIN
 	BEGIN
 		IF hc.state # HcConfiguring THEN
 		IF hc.state # HcConfiguring THEN
 			result := ErrorInvalidParameters;
 			result := ErrorInvalidParameters;
@@ -704,7 +704,7 @@ VAR
 	(** Set an event handler for a host controller *)
 	(** Set an event handler for a host controller *)
 	PROCEDURE SetEventHandler * (hc: HostController; handler: EventHandler; param: ANY);
 	PROCEDURE SetEventHandler * (hc: HostController; handler: EventHandler; param: ANY);
 	VAR
 	VAR
-		result: LONGINT;
+		result: WORD;
 	BEGIN
 	BEGIN
 		hc.handle := handler;
 		hc.handle := handler;
 		hc.handlerParam := param;
 		hc.handlerParam := param;
@@ -755,7 +755,7 @@ VAR
 			o Execute the command
 			o Execute the command
 			o Wait for response
 			o Wait for response
 	*)
 	*)
-	PROCEDURE ExecuteCommand (VAR command: Command; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE ExecuteCommand (VAR command: Command; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		status, r1: SET;
 		status, r1: SET;
 	BEGIN
 	BEGIN
@@ -802,7 +802,7 @@ VAR
 		Execute command with data transfer using CPU.
 		Execute command with data transfer using CPU.
 		Data is read from/written to [data[ofs], data[ofs + len]).
 		Data is read from/written to [data[ofs], data[ofs + len]).
 	*)
 	*)
-	PROCEDURE ExecuteDataCommand (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE ExecuteDataCommand (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: WORD): BOOLEAN;
 	TYPE
 	TYPE
 		DataBytes = ARRAY 4 OF CHAR;
 		DataBytes = ARRAY 4 OF CHAR;
 	VAR
 	VAR
@@ -956,7 +956,7 @@ VAR
 		data, ofs, len: Buffer
 		data, ofs, len: Buffer
 		result: error code
 		result: error code
 	*)
 	*)
-	PROCEDURE ExecuteAdmaCommand (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE ExecuteAdmaCommand (VAR command: Command; VAR data: ARRAY OF SYSTEM.BYTE; ofs, len: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		tt: SdEnvironment.Time;
 		tt: SdEnvironment.Time;
 		hc: HostController;
 		hc: HostController;
@@ -1135,7 +1135,7 @@ VAR
 	END GetResponse;
 	END GetResponse;
 
 
 	(** Issue an SD Card Transaction. [Simplified specs. 3.7.1.1 pp. 106-108] *)
 	(** Issue an SD Card Transaction. [Simplified specs. 3.7.1.1 pp. 106-108] *)
-	PROCEDURE StartCommand (hc: HostController; cmd, argument, responseType: LONGINT; read, dma, busy, abort: BOOLEAN; VAR status: SET; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE StartCommand (hc: HostController; cmd, argument, responseType: LONGINT; read, dma, busy, abort: BOOLEAN; VAR status: SET; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		t: HUGEINT;
 		t: HUGEINT;
 		reg: LONGINT;
 		reg: LONGINT;
@@ -1244,7 +1244,7 @@ VAR
 		Perform error recovery as specified by the triggered error interrupts.
 		Perform error recovery as specified by the triggered error interrupts.
 		Returns an error code (result) and the interrupt status register before recovery (status)
 		Returns an error code (result) and the interrupt status register before recovery (status)
 	*)
 	*)
-	PROCEDURE ErrorRecovery (hc: HostController; VAR result: LONGINT; VAR status: SET): BOOLEAN;
+	PROCEDURE ErrorRecovery (hc: HostController; VAR result: WORD; VAR status: SET): BOOLEAN;
 	BEGIN
 	BEGIN
 		(* 1 is done *)
 		(* 1 is done *)
 		status := hc.regs.InterruptStatus;
 		status := hc.regs.InterruptStatus;
@@ -1307,7 +1307,7 @@ VAR
 	END ErrorRecovery;
 	END ErrorRecovery;
 
 
 	(** Wait for completion of an SD command [Simplified specs. 3.7.1.2 pp. 109-110 *)
 	(** Wait for completion of an SD command [Simplified specs. 3.7.1.2 pp. 109-110 *)
-	PROCEDURE WaitForCompletion (hc: HostController; tryRecover: BOOLEAN; 	VAR status: SET; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE WaitForCompletion (hc: HostController; tryRecover: BOOLEAN; 	VAR status: SET; VAR result: WORD): BOOLEAN;
 	BEGIN
 	BEGIN
 		result := ErrorNone;
 		result := ErrorNone;
 
 
@@ -1347,7 +1347,7 @@ VAR
 	END WaitForCompletion;
 	END WaitForCompletion;
 
 
 	(** Wait for transfer complete interrupt *)
 	(** Wait for transfer complete interrupt *)
-	PROCEDURE WaitForTransfer (hc: HostController; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE WaitForTransfer (hc: HostController; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		status: SET;
 		status: SET;
 	BEGIN
 	BEGIN
@@ -1380,7 +1380,7 @@ VAR
 	END SpinBlock;
 	END SpinBlock;
 
 
 	(** Sends CMD7 if necessary to select the given card *)
 	(** Sends CMD7 if necessary to select the given card *)
-	PROCEDURE SelectCard * (hc: HostController; card: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE SelectCard * (hc: HostController; card: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		status: SET;
 		status: SET;
@@ -1406,10 +1406,10 @@ VAR
 	END SelectCard;
 	END SelectCard;
 
 
 	(** Deselects all cards *)
 	(** Deselects all cards *)
-	PROCEDURE DeselectCards * (hc: HostController; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE DeselectCards * (hc: HostController; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
-		ignoreRes: LONGINT;
+		ignoreRes: WORD;
 		ignoreBool: BOOLEAN;
 		ignoreBool: BOOLEAN;
 	BEGIN
 	BEGIN
 		result := ErrorNone;
 		result := ErrorNone;
@@ -1553,7 +1553,7 @@ VAR
 	END SetTimeout;
 	END SetTimeout;
 
 
 	(** Set the data bus width for a given RCA. *)
 	(** Set the data bus width for a given RCA. *)
-	PROCEDURE SetBusWidth (hc: HostController; card: Card; width: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE SetBusWidth (hc: HostController; card: Card; width: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		val: LONGINT;
 		val: LONGINT;
@@ -1601,7 +1601,7 @@ VAR
 	END SetBusWidth;
 	END SetBusWidth;
 
 
 	(** Executes a switch function command *)
 	(** Executes a switch function command *)
-	PROCEDURE SwitchFunc (card: Card; switch: BOOLEAN; funcs: ARRAY 6 OF LONGINT; VAR sts: SwitchFuncStatus; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SwitchFunc (card: Card; switch: BOOLEAN; funcs: ARRAY 6 OF LONGINT; VAR sts: SwitchFuncStatus; VAR res: WORD): BOOLEAN;
 	VAR
 	VAR
 		status: ARRAY 64 OF CHAR;
 		status: ARRAY 64 OF CHAR;
 		command: Command;
 		command: Command;
@@ -1668,7 +1668,7 @@ VAR
 	PROCEDURE HandleInterrupt * (hc: HostController);
 	PROCEDURE HandleInterrupt * (hc: HostController);
 	VAR
 	VAR
 		card: Card;
 		card: Card;
-		result: LONGINT;
+		result: WORD;
 		interruptStatus: SET;
 		interruptStatus: SET;
 	BEGIN
 	BEGIN
 		interruptStatus := hc.regs.InterruptStatus;
 		interruptStatus := hc.regs.InterruptStatus;
@@ -1790,7 +1790,7 @@ TYPE
 		Initializes a new card on the host controller.
 		Initializes a new card on the host controller.
 		Executes all commands until either an error occurs or the card is ready for data transfers.
 		Executes all commands until either an error occurs or the card is ready for data transfers.
 	*)
 	*)
-	PROCEDURE InitCard * (hc: HostController; card: Card; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE InitCard * (hc: HostController; card: Card; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		response: LONGINT;
 		response: LONGINT;
 		status: SET;
 		status: SET;
@@ -1991,7 +1991,7 @@ TYPE
 	END InitCard;
 	END InitCard;
 
 
 	(** Write 'data[ofs, ofs + len)' to 'card', starting at block 'firstBlock'. *)
 	(** Write 'data[ofs, ofs + len)' to 'card', starting at block 'firstBlock'. *)
-	PROCEDURE Write * (card: Card; firstBlock, len: LONGINT; VAR data: ARRAY OF SYSTEM.BYTE; ofs: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE Write * (card: Card; firstBlock, len: LONGINT; VAR data: ARRAY OF SYSTEM.BYTE; ofs: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		start, stop: HUGEINT;
 		start, stop: HUGEINT;
@@ -2043,7 +2043,7 @@ TYPE
 	END Write;
 	END Write;
 
 
 	(** Read 'len' bytes starting from 'firstBlock' of 'card' to 'data[ofs, ofs + len)' *)
 	(** Read 'len' bytes starting from 'firstBlock' of 'card' to 'data[ofs, ofs + len)' *)
-	PROCEDURE Read * (card: Card; firstBlock, len: LONGINT; VAR data: ARRAY OF SYSTEM.BYTE; ofs: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE Read * (card: Card; firstBlock, len: LONGINT; VAR data: ARRAY OF SYSTEM.BYTE; ofs: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		start, stop: HUGEINT;
 		start, stop: HUGEINT;
@@ -2085,7 +2085,7 @@ TYPE
 	END Read;
 	END Read;
 
 
 	(** Erase blocks [block, block + num) on specified card. *)
 	(** Erase blocks [block, block + num) on specified card. *)
-	PROCEDURE Erase * (card: Card; block, num: LONGINT; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE Erase * (card: Card; block, num: LONGINT; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		r1: SET;
 		r1: SET;
@@ -2120,7 +2120,7 @@ TYPE
 		RETURN TRUE
 		RETURN TRUE
 	END Erase;
 	END Erase;
 
 
-	PROCEDURE ReadCsd (card: Card; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE ReadCsd (card: Card; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		csd: ARRAY 4 OF LONGINT;
 		csd: ARRAY 4 OF LONGINT;
@@ -2147,7 +2147,7 @@ TYPE
 	END ReadCsd;
 	END ReadCsd;
 
 
 	(** Read the SD card Configuration Register of a card *)
 	(** Read the SD card Configuration Register of a card *)
-	PROCEDURE ReadScr (card: Card; VAR result: LONGINT): BOOLEAN;
+	PROCEDURE ReadScr (card: Card; VAR result: WORD): BOOLEAN;
 	VAR
 	VAR
 		command: Command;
 		command: Command;
 		ofs: LONGINT;
 		ofs: LONGINT;
@@ -2187,7 +2187,7 @@ TYPE
 	VAR
 	VAR
 		status: ARRAY 64 OF CHAR;
 		status: ARRAY 64 OF CHAR;
 		command: Command;
 		command: Command;
-		ignore: LONGINT;
+		ignore: WORD;
 		bitfield: POINTER {UNSAFE,UNTRACED} TO Bitfield;
 		bitfield: POINTER {UNSAFE,UNTRACED} TO Bitfield;
 		c: CHAR;
 		c: CHAR;
 		i: LONGINT;
 		i: LONGINT;
@@ -2216,7 +2216,7 @@ TYPE
 	VAR
 	VAR
 		cid: Cid;
 		cid: Cid;
 		command: Command;
 		command: Command;
-		res: LONGINT;
+		res: WORD;
 	BEGIN
 	BEGIN
 		IF ~DeselectCards(card.hc, res) THEN HALT(512) END;
 		IF ~DeselectCards(card.hc, res) THEN HALT(512) END;
 		command.hc := card.hc;
 		command.hc := card.hc;
@@ -2265,7 +2265,7 @@ TYPE
 	END ComputeTimeouts;
 	END ComputeTimeouts;
 
 
 	(** Select card speed mode. It is necessary to set it to high in order to use higher bus clock frequencies. *)
 	(** Select card speed mode. It is necessary to set it to high in order to use higher bus clock frequencies. *)
-	PROCEDURE SelectSpeedMode(card: Card; high: BOOLEAN; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SelectSpeedMode(card: Card; high: BOOLEAN; VAR res: WORD): BOOLEAN;
 	VAR
 	VAR
 		funcs: ARRAY 6 OF LONGINT;
 		funcs: ARRAY 6 OF LONGINT;
 		status: SwitchFuncStatus;
 		status: SwitchFuncStatus;

+ 5 - 5
source/SdDisks.Mod

@@ -51,7 +51,7 @@ TYPE
 			END;
 			END;
 		END InitSdDevice;
 		END InitSdDevice;
 
 
-		PROCEDURE Transfer0 * (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; ofs: LONGINT; VAR res: LONGINT);
+		PROCEDURE Transfer0 * (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; ofs: LONGINT; VAR res: WORD);
 		VAR ok: BOOLEAN;
 		VAR ok: BOOLEAN;
 		BEGIN
 		BEGIN
 			CASE op OF
 			CASE op OF
@@ -62,7 +62,7 @@ TYPE
 			END
 			END
 		END Transfer0;
 		END Transfer0;
 
 
-		PROCEDURE Transfer * (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; offs: LONGINT; VAR res: LONGINT);
+		PROCEDURE Transfer * (op, block, num: LONGINT; VAR data: ARRAY OF CHAR; offs: LONGINT; VAR res: WORD);
 		VAR
 		VAR
 			t: SdEnvironment.Time;
 			t: SdEnvironment.Time;
 		BEGIN{EXCLUSIVE}
 		BEGIN{EXCLUSIVE}
@@ -82,14 +82,14 @@ TYPE
 (*			TRACE(block,num,t);*)
 (*			TRACE(block,num,t);*)
 		END Transfer;
 		END Transfer;
 
 
-		PROCEDURE GetSize * (VAR size, res: LONGINT);
+		PROCEDURE GetSize * (VAR size: LONGINT; VAR res: WORD);
 		BEGIN
 		BEGIN
 			size := LONGINT(card.csd.capacity);
 			size := LONGINT(card.csd.capacity);
 			IF size < 0 THEN size := MAX(LONGINT) END;
 			IF size < 0 THEN size := MAX(LONGINT) END;
 			res := Disks.Ok
 			res := Disks.Ok
 		END GetSize;
 		END GetSize;
 
 
-		PROCEDURE Handle * (VAR msg: Disks.Message;  VAR res: LONGINT);
+		PROCEDURE Handle * (VAR msg: Disks.Message;  VAR res: WORD);
 		BEGIN
 		BEGIN
 			res := 0;
 			res := 0;
 			IF msg IS Disks.LockMsg THEN
 			IF msg IS Disks.LockMsg THEN
@@ -171,7 +171,7 @@ TYPE
 	VAR
 	VAR
 		disk, prev: Device;
 		disk, prev: Device;
 		name, id: ARRAY 32 OF CHAR;
 		name, id: ARRAY 32 OF CHAR;
-		result: LONGINT;
+		result: WORD;
 	BEGIN
 	BEGIN
 		CASE event OF
 		CASE event OF
 			 Sd.OnInitialization:
 			 Sd.OnInitialization:

+ 1 - 1
source/Zynq.DisplayLinear.Mod

@@ -200,7 +200,7 @@ VAR
 
 
 	PROCEDURE Init;
 	PROCEDURE Init;
 	VAR
 	VAR
-		res: LONGINT;
+		res: WORD;
 		d: LONGINT;
 		d: LONGINT;
 	BEGIN
 	BEGIN
 		SetupClocks;
 		SetupClocks;

+ 8 - 8
source/Zynq.PsSerials.Mod

@@ -20,7 +20,7 @@ TYPE
 			ASSERT(uart # NIL);
 			ASSERT(uart # NIL);
 		END Init;
 		END Init;
 
 
-		PROCEDURE Open (bps, data, parity, stop : LONGINT; VAR res: LONGINT);
+		PROCEDURE Open (bps, data, parity, stop : LONGINT; VAR res: WORD);
 		BEGIN{EXCLUSIVE}
 		BEGIN{EXCLUSIVE}
 			PsUart.Open(uart, bps, data, parity, stop, res);
 			PsUart.Open(uart, bps, data, parity, stop, res);
 		END Open;
 		END Open;
@@ -30,7 +30,7 @@ TYPE
 			PsUart.Close(uart);
 			PsUart.Close(uart);
 		END Close;
 		END Close;
 
 
-		PROCEDURE BusyLoopCallback(VAR res: LONGINT): BOOLEAN;
+		PROCEDURE BusyLoopCallback(VAR res: WORD): BOOLEAN;
 		BEGIN
 		BEGIN
 			IF uart.open THEN
 			IF uart.open THEN
 				Objects.Yield;
 				Objects.Yield;
@@ -41,7 +41,7 @@ TYPE
 			END;
 			END;
 		END BusyLoopCallback;
 		END BusyLoopCallback;
 
 
-		PROCEDURE BusyLoopCallback0(VAR res: LONGINT): BOOLEAN;
+		PROCEDURE BusyLoopCallback0(VAR res: WORD): BOOLEAN;
 		BEGIN
 		BEGIN
 			IF uart.open THEN
 			IF uart.open THEN
 				RETURN TRUE;
 				RETURN TRUE;
@@ -52,7 +52,7 @@ TYPE
 		END BusyLoopCallback0;
 		END BusyLoopCallback0;
 
 
 		(*! This method can be used for trace output *)
 		(*! This method can be used for trace output *)
-		PROCEDURE SendChar(char: CHAR; VAR res: LONGINT);
+		PROCEDURE SendChar(char: CHAR; VAR res: WORD);
 		BEGIN
 		BEGIN
 			Machine.AcquireObject(sendLock);
 			Machine.AcquireObject(sendLock);
 			(*! use BusyLoopCallback0 method to make sure no low-level lock is acquired here - required when used as trace output *)
 			(*! use BusyLoopCallback0 method to make sure no low-level lock is acquired here - required when used as trace output *)
@@ -62,7 +62,7 @@ TYPE
 		END SendChar;
 		END SendChar;
 
 
 		(*! This method must not be used for trace output! *)
 		(*! This method must not be used for trace output! *)
-		PROCEDURE Send(CONST buf: ARRAY OF CHAR; ofs, len: LONGINT; propagate: BOOLEAN; VAR res: LONGINT);
+		PROCEDURE Send(CONST buf: ARRAY OF CHAR; ofs, len: LONGINT; propagate: BOOLEAN; VAR res: WORD);
 		BEGIN
 		BEGIN
 			Machine.AcquireObject(sendLock);
 			Machine.AcquireObject(sendLock);
 			PsUart.Send(uart, buf, ofs, len, propagate, BusyLoopCallback, res);
 			PsUart.Send(uart, buf, ofs, len, propagate, BusyLoopCallback, res);
@@ -70,7 +70,7 @@ TYPE
 			Machine.ReleaseObject(sendLock);
 			Machine.ReleaseObject(sendLock);
 		END Send;
 		END Send;
 
 
-		PROCEDURE ReceiveChar(VAR char: CHAR; VAR res: LONGINT);
+		PROCEDURE ReceiveChar(VAR char: CHAR; VAR res: WORD);
 		BEGIN
 		BEGIN
 			Machine.AcquireObject(recvLock);
 			Machine.AcquireObject(recvLock);
 			char := PsUart.ReceiveChar(uart, BusyLoopCallback, res);
 			char := PsUart.ReceiveChar(uart, BusyLoopCallback, res);
@@ -78,7 +78,7 @@ TYPE
 			Machine.ReleaseObject(recvLock);
 			Machine.ReleaseObject(recvLock);
 		END ReceiveChar;
 		END ReceiveChar;
 
 
-		PROCEDURE Receive(VAR buf: ARRAY OF CHAR; ofs, size, min: LONGINT; VAR len, res: LONGINT);
+		PROCEDURE Receive(VAR buf: ARRAY OF CHAR; ofs, size, min: LONGINT; VAR len: LONGINT; VAR res: WORD);
 		BEGIN
 		BEGIN
 			Machine.AcquireObject(recvLock);
 			Machine.AcquireObject(recvLock);
 			PsUart.Receive(uart, buf, ofs, size, min, len, BusyLoopCallback, res);
 			PsUart.Receive(uart, buf, ofs, size, min, len, BusyLoopCallback, res);
@@ -107,7 +107,7 @@ VAR
 
 
 	PROCEDURE Init;
 	PROCEDURE Init;
 	VAR
 	VAR
-		i, clk, res: LONGINT;
+		i, clk: LONGINT; res: WORD;
 		name, desc: ARRAY 32 OF CHAR;
 		name, desc: ARRAY 32 OF CHAR;
 		tracePort: LONGINT;
 		tracePort: LONGINT;
 	BEGIN
 	BEGIN

+ 3 - 3
source/Zynq.PsTraceDevice.Mod

@@ -10,15 +10,15 @@ VAR
 	uart: PsUartMin.UartRegisters;
 	uart: PsUartMin.UartRegisters;
 
 
 	PROCEDURE TraceChar(ch: CHAR);
 	PROCEDURE TraceChar(ch: CHAR);
-	VAR ignore: LONGINT;
+	VAR res: WORD;
 	BEGIN
 	BEGIN
-		PsUartMin.SendChar(uart, ch, TRUE, NIL, ignore);
+		PsUartMin.SendChar(uart, ch, TRUE, NIL, res);
 	END TraceChar;
 	END TraceChar;
 
 
 	PROCEDURE Install *;
 	PROCEDURE Install *;
 	VAR
 	VAR
 		uartId: LONGINT;
 		uartId: LONGINT;
-		res: LONGINT;
+		res: WORD;
 	BEGIN
 	BEGIN
 		Trace.Init;
 		Trace.Init;
 		uartId := BootConfig.GetIntValue("TracePort")-1;
 		uartId := BootConfig.GetIntValue("TracePort")-1;

+ 6 - 6
source/Zynq.PsUart.Mod

@@ -164,7 +164,7 @@ VAR
 		inputClock: controller input clock in Hz
 		inputClock: controller input clock in Hz
 		res: returned error code, 0 in case of success
 		res: returned error code, 0 in case of success
 	*)
 	*)
-	PROCEDURE Install* (uart: LONGINT; base: ADDRESS; inputClock: LONGINT; VAR res: LONGINT);
+	PROCEDURE Install* (uart: LONGINT; base: ADDRESS; inputClock: LONGINT; VAR res: WORD);
 	VAR ctl: UartController;
 	VAR ctl: UartController;
 	BEGIN
 	BEGIN
 		PsUartMin.Install(uart, base, inputClock, res);
 		PsUartMin.Install(uart, base, inputClock, res);
@@ -213,7 +213,7 @@ VAR
 		stop: number of stop bits
 		stop: number of stop bits
 		res: returned error code, 0 in case of success
 		res: returned error code, 0 in case of success
 	*)
 	*)
-	PROCEDURE Open*(uart: UartController; bps, data, parity, stop: LONGINT; VAR res: LONGINT);
+	PROCEDURE Open*(uart: UartController; bps, data, parity, stop: LONGINT; VAR res: WORD);
 	VAR n: LONGINT;
 	VAR n: LONGINT;
 	BEGIN
 	BEGIN
 		IF uart.open THEN res := PsUartMin.PortInUse; RETURN; END;
 		IF uart.open THEN res := PsUartMin.PortInUse; RETURN; END;
@@ -312,7 +312,7 @@ VAR
 		propagate: TRUE for flushing the TX FIFO buffer
 		propagate: TRUE for flushing the TX FIFO buffer
 		res: error code, 0 in case of success
 		res: error code, 0 in case of success
 	*)
 	*)
-	PROCEDURE SendChar*(uart: UartController; ch: CHAR; propagate: BOOLEAN; onBusy: PsUartMin.BusyLoopCallback; VAR res: LONGINT);
+	PROCEDURE SendChar*(uart: UartController; ch: CHAR; propagate: BOOLEAN; onBusy: PsUartMin.BusyLoopCallback; VAR res: WORD);
 	BEGIN
 	BEGIN
 		(*! for the moment just write directly to the FIFO *)
 		(*! for the moment just write directly to the FIFO *)
 		res := 0;
 		res := 0;
@@ -332,7 +332,7 @@ VAR
 	(**
 	(**
 		Send data to the UART
 		Send data to the UART
 	*)
 	*)
-	PROCEDURE Send*(uart: UartController; CONST buf: ARRAY OF CHAR; offs, len: LONGINT; propagate: BOOLEAN; onBusy: PsUartMin.BusyLoopCallback; VAR res: LONGINT);
+	PROCEDURE Send*(uart: UartController; CONST buf: ARRAY OF CHAR; offs, len: LONGINT; propagate: BOOLEAN; onBusy: PsUartMin.BusyLoopCallback; VAR res: WORD);
 	VAR
 	VAR
 		bufWrPos, n: LONGINT;
 		bufWrPos, n: LONGINT;
 	BEGIN
 	BEGIN
@@ -419,7 +419,7 @@ VAR
 
 
 		Remarks: blocks until a character is available
 		Remarks: blocks until a character is available
 	*)
 	*)
-	PROCEDURE ReceiveChar*(uart: UartController; onBusy: PsUartMin.BusyLoopCallback; VAR res: LONGINT): CHAR;
+	PROCEDURE ReceiveChar*(uart: UartController; onBusy: PsUartMin.BusyLoopCallback; VAR res: WORD): CHAR;
 	VAR
 	VAR
 		buf: ARRAY 1 OF CHAR;
 		buf: ARRAY 1 OF CHAR;
 		len: LONGINT;
 		len: LONGINT;
@@ -431,7 +431,7 @@ VAR
 	(**
 	(**
 		Receive data from the UART
 		Receive data from the UART
 	*)
 	*)
-	PROCEDURE Receive*(uart: UartController; VAR buf: ARRAY OF CHAR; offs, size, min: LONGINT; VAR len: LONGINT; onBusy: PsUartMin.BusyLoopCallback; VAR res: LONGINT);
+	PROCEDURE Receive*(uart: UartController; VAR buf: ARRAY OF CHAR; offs, size, min: LONGINT; VAR len: LONGINT; onBusy: PsUartMin.BusyLoopCallback; VAR res: WORD);
 	VAR
 	VAR
 		bufRdPos, n: LONGINT;
 		bufRdPos, n: LONGINT;
 	BEGIN
 	BEGIN

+ 8 - 8
source/Zynq.PsUartMin.Mod

@@ -177,7 +177,7 @@ TYPE
 		txwm*: LONGINT;
 		txwm*: LONGINT;
 	END;
 	END;
 
 
-	BusyLoopCallback* = PROCEDURE{DELEGATE}(VAR res: LONGINT): BOOLEAN;
+	BusyLoopCallback* = PROCEDURE{DELEGATE}(VAR res: WORD): BOOLEAN;
 
 
 VAR
 VAR
 	uarts: ARRAY NumUarts OF UartRegisters;
 	uarts: ARRAY NumUarts OF UartRegisters;
@@ -191,7 +191,7 @@ VAR
 		inputClock: controller input clock in Hz
 		inputClock: controller input clock in Hz
 		res: returned error code, 0 in case of success
 		res: returned error code, 0 in case of success
 	*)
 	*)
-	PROCEDURE Install* (uart: LONGINT; base: ADDRESS; inputClock: LONGINT; VAR res: LONGINT);
+	PROCEDURE Install* (uart: LONGINT; base: ADDRESS; inputClock: LONGINT; VAR res: WORD);
 	BEGIN
 	BEGIN
 		IF (uart < 0) OR (uart >= LEN(uarts)) THEN
 		IF (uart < 0) OR (uart >= LEN(uarts)) THEN
 			res := NoSuchPort; RETURN;
 			res := NoSuchPort; RETURN;
@@ -259,7 +259,7 @@ VAR
 	(*
 	(*
 		Setup baudrate in bps
 		Setup baudrate in bps
 	*)
 	*)
-	PROCEDURE SetBps*(uart: UartRegisters; baudrate: LONGINT; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SetBps*(uart: UartRegisters; baudrate: LONGINT; VAR res: WORD): BOOLEAN;
 	VAR
 	VAR
 		i, clock: LONGINT;
 		i, clock: LONGINT;
 		valBAUDDIV, valBRGR, calcBaudrate, baudError: LONGINT;
 		valBAUDDIV, valBRGR, calcBaudrate, baudError: LONGINT;
@@ -333,7 +333,7 @@ VAR
 	(**
 	(**
 		Set number of data bits
 		Set number of data bits
 	*)
 	*)
-	PROCEDURE SetDataBits*(uart: UartRegisters; dataBits: LONGINT; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SetDataBits*(uart: UartRegisters; dataBits: LONGINT; VAR res: WORD): BOOLEAN;
 	VAR reg: SET;
 	VAR reg: SET;
 	BEGIN
 	BEGIN
 		CASE dataBits OF
 		CASE dataBits OF
@@ -353,7 +353,7 @@ VAR
 	(**
 	(**
 		Setup parity check type
 		Setup parity check type
 	*)
 	*)
-	PROCEDURE SetParity*(uart: UartRegisters; parityType: LONGINT; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SetParity*(uart: UartRegisters; parityType: LONGINT; VAR res: WORD): BOOLEAN;
 	VAR reg: SET;
 	VAR reg: SET;
 	BEGIN
 	BEGIN
 		CASE parityType OF
 		CASE parityType OF
@@ -375,7 +375,7 @@ VAR
 	(**
 	(**
 		Setup number of stop bits
 		Setup number of stop bits
 	*)
 	*)
-	PROCEDURE SetStopBits*(uart: UartRegisters; stopBits: LONGINT; VAR res: LONGINT): BOOLEAN;
+	PROCEDURE SetStopBits*(uart: UartRegisters; stopBits: LONGINT; VAR res: WORD): BOOLEAN;
 	VAR reg: SET;
 	VAR reg: SET;
 	BEGIN
 	BEGIN
 		CASE stopBits OF
 		CASE stopBits OF
@@ -399,7 +399,7 @@ VAR
 		propagate: TRUE for flushing the TX FIFO buffer
 		propagate: TRUE for flushing the TX FIFO buffer
 		res: error code, 0 in case of success
 		res: error code, 0 in case of success
 	*)
 	*)
-	PROCEDURE SendChar*(uart: UartRegisters; ch: CHAR; propagate: BOOLEAN; onBusy: BusyLoopCallback; VAR res: LONGINT);
+	PROCEDURE SendChar*(uart: UartRegisters; ch: CHAR; propagate: BOOLEAN; onBusy: BusyLoopCallback; VAR res: WORD);
 	BEGIN
 	BEGIN
 		(* Wait until TX FIFO is not full *)
 		(* Wait until TX FIFO is not full *)
 		WHILE (XUARTPS_CR_TX_EN IN uart.cr) & (XUARTPS_SR_TXFULL IN uart.sr) DO
 		WHILE (XUARTPS_CR_TX_EN IN uart.cr) & (XUARTPS_SR_TXFULL IN uart.sr) DO
@@ -425,7 +425,7 @@ VAR
 
 
 		Remarks: blocks until a character is available
 		Remarks: blocks until a character is available
 	*)
 	*)
-	PROCEDURE ReceiveChar*(uart: UartRegisters; onBusy: BusyLoopCallback; VAR res: LONGINT): CHAR;
+	PROCEDURE ReceiveChar*(uart: UartRegisters; onBusy: BusyLoopCallback; VAR res: WORD): CHAR;
 	BEGIN
 	BEGIN
 		(* wait until data is available *)
 		(* wait until data is available *)
 		WHILE (XUARTPS_CR_RX_EN IN uart.cr) & (XUARTPS_SR_RXEMPTY IN uart.sr) DO
 		WHILE (XUARTPS_CR_RX_EN IN uart.cr) & (XUARTPS_SR_RXEMPTY IN uart.sr) DO

+ 1 - 1
source/Zynq.SdControllers.Mod

@@ -25,7 +25,7 @@ TYPE
 
 
 		PROCEDURE & Init (base: ADDRESS; int: LONGINT; clock: HUGEINT);
 		PROCEDURE & Init (base: ADDRESS; int: LONGINT; clock: HUGEINT);
 		VAR
 		VAR
-			result: LONGINT;
+			result: WORD;
 		BEGIN
 		BEGIN
 			NEW(hc);
 			NEW(hc);
 			Sd.InitHostController(hc, base);
 			Sd.InitHostController(hc, base);