Oberon 1.2 OC (compiler) patch (Developers)
> Unfortunately, it uses at least one problematic ("obsolete") OMF .OBJ
> record in its output: REGINT. This chokes most linkers.
If you patch a single byte at offset CB1Fh from 70h to 88h in OC.EXE, you will no longer need your external patcher. The compilers code changes from:
mov ax,0070h (B80070)
to:
mov ax,0088h (B80088)
Searching OC.EXE for the sequence B80070 in any hex editor will also easily find the required patch point as the sequence only appears once in the file.
For anyone unfamiliar with topic. What we are doing here is changing the OMF REGINT (70h) to a COMENT (88h) record. The REGINT record takes this form:
70h, 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
where 00h,00h is a word for the size of the record and the bytes following are the initial register values (6 * word). Fortunately the COMENT record also has a word for record length following the record type byte. So all that happens is the REGINT record becomes a COMENT record:
88h, 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h
Real world example, this REGINT record:
70 0D 00 01 04 01 01 41 04 05 05 81 04 02 02
becomes a COMENT record:
88 0D 00 01 04 01 01 41 04 05 05 81 04 02 02
This is what Rugxulo utility does after the OBJ file has been created by the compiler, obviously what the patch above does is allow the compiler to be updated so that Rugxulo's external utility isn't required for new OBJ files.
An alternative to patching for OBJ files which removes the redundant record completely via an external tool is to code such a util to do the following:
1)Get filesize of OBJ file to patch
2)Open the OBJ file for writing
3)Read/temporarily store the last 5 bytes of a Oberon generated OBJ file
4)Seeking offset filesize-21 bytes
5)Writing the 5 saved bytes from offset
6)Updating the filesize to be 17 bytes less
7)Closing file
Personally I prefer the OC.EXE patch or Rugxulo method.
Complete thread:
- OMF records - Rugxulo, 15.02.2012, 16:14 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- Just some research about the name "E. R. Videki" - rr, 15.02.2012, 21:09
- Just some research about the name "E. R. Videki" - Arjay, 15.02.2012, 22:08
- Just some research about the name "E. R. Videki" - Rugxulo, 15.02.2012, 23:19
- Just some research about the name "E. R. Videki" - Arjay, 16.02.2012, 00:47
- Just some research about the name "E. R. Videki" - Rugxulo, 15.02.2012, 23:19
- Just some research about the name "E. R. Videki" - Arjay, 15.02.2012, 22:08
- OMF records - Arjay, 15.02.2012, 22:36
- OMF records - Rugxulo, 15.02.2012, 23:29
- OMF records - Arjay, 16.02.2012, 01:09
- OMF records - Rugxulo, 16.02.2012, 08:00
- OMF records - rr, 16.02.2012, 09:51
- OMF records - Arjay, 16.02.2012, 21:37
- OMF records - marcov, 18.02.2012, 17:16
- OMF records - Rugxulo, 18.02.2012, 17:32
- OMF records - Rugxulo, 18.02.2012, 17:54
- OMF records - marcov, 19.02.2012, 16:47
- OMF records - RayeR, 19.02.2012, 17:19
- OMF records - marcov, 20.02.2012, 10:33
- OMF records - Rugxulo, 19.02.2012, 21:33
- OMF records - marcov, 20.02.2012, 18:23
- OMF records - RayeR, 19.02.2012, 17:19
- OMF records - marcov, 19.02.2012, 16:47
- OMF records - marcov, 19.02.2012, 16:43
- OMF records - Rugxulo, 19.02.2012, 21:15
- OMF records - marcov, 20.02.2012, 10:54
- OMF records - Rugxulo, 20.02.2012, 17:50
- OMF records - marcov, 20.02.2012, 18:54
- OMF records - Rugxulo, 20.02.2012, 20:09
- OMF records - marcov, 20.02.2012, 18:54
- OMF records - Rugxulo, 20.02.2012, 17:50
- OMF records - marcov, 20.02.2012, 10:54
- OMF records - Rugxulo, 19.02.2012, 21:15
- OMF records - Rugxulo, 18.02.2012, 17:54
- OMF records - Rugxulo, 18.02.2012, 17:32
- OMF records - rr, 16.02.2012, 09:51
- OMF records - Rugxulo, 16.02.2012, 08:00
- OMF records - Arjay, 16.02.2012, 01:09
- OMF records - Rugxulo, 15.02.2012, 23:29
- OMF records - Japheth, 16.02.2012, 18:08
- OMF records - Rugxulo, 16.02.2012, 19:48
- OMF records - Arjay, 16.02.2012, 21:27
- OMF records - Arjay, 16.02.2012, 21:52
- OMF records - Rugxulo, 16.02.2012, 23:09
- OMF records - Arjay, 16.02.2012, 21:52
- OMF records - Arjay, 16.02.2012, 21:27
- OMF records - Rugxulo, 17.02.2012, 02:15
- OMF records - Japheth, 17.02.2012, 08:08
- OMF records - Rugxulo, 17.02.2012, 20:21
- OMF records - Japheth, 18.02.2012, 09:05
- OMF records - Rugxulo, 18.02.2012, 16:39
- OMF records - Japheth, 18.02.2012, 17:55
- jwlinkd updated - Japheth, 20.02.2012, 14:31
- Oberon subtyping (was: JWlinkD updated) - Rugxulo, 20.02.2012, 20:14
- BEFI 3H (Oberon-M fully supported) - Rugxulo, 06.03.2012, 23:30
- Oberon subtyping (was: JWlinkD updated) - Rugxulo, 20.02.2012, 20:14
- jwlinkd updated - Japheth, 20.02.2012, 14:31
- OMF records - Japheth, 18.02.2012, 17:55
- OMF records - Rugxulo, 18.02.2012, 16:39
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 14:22
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 15:47
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 18.02.2012, 17:12
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 18.02.2012, 16:56
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 19.02.2012, 10:16
- OMF records - processing SYS.OBJ with tdstrip - Rugxulo, 19.02.2012, 17:58
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 19.02.2012, 10:16
- OMF records - processing SYS.OBJ with tdstrip - Arjay, 18.02.2012, 15:47
- OMF records - Japheth, 18.02.2012, 09:05
- OMF records - Rugxulo, 17.02.2012, 20:21
- OMF records - Japheth, 17.02.2012, 08:08
- OMF records - Rugxulo, 16.02.2012, 19:48
- Oberon 1.2 OC (compiler) patch - Arjay, 18.02.2012, 23:37
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Rugxulo, 19.02.2012, 00:54
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Arjay, 19.02.2012, 10:05
- Oberon/M 1.2 (OMF output) ... die, REGINT, die! - Rugxulo, 19.02.2012, 00:54
- Just some research about the name "E. R. Videki" - rr, 15.02.2012, 21:09
Mix view