Description: amiga,morphos,aros,atari Sinclair QL, H68 etc rtl and units
This file as text.
(active) Revisions in this set:
09d6b1129d3ec5541fd69c36d2380561a28192bd,a527a40d12188f698526bd4827654b95e7da5d48,4d1ff152c4019ba3dccc64a1480d4d98b7be6e56
b3ad384547fc2f8fb35b5ce7b1e73274f13c389d,fd1a09a254edd18eaa752fc34d7aa13424992974,d1a097f6c376b8a9b9ef9dcedc91a35d046ebd2a
db055c8f0ce18c07a7263291942ee76a724234ab,22c87afdd1dfd31c8fc5261d26b83563c60bedcb,6d279fdbb9c0fca0dc02dfd8d17301fd782f6b41
c3607e0059f95a96bcb5f291a1d94f14737367fc,9906211f3b1d9dd39b16506483a33d3aa541750a,cb5a1ed72784f8ded30149be51920d312f8ff80b
fb76f529ee7a4c5a590cfb5b38054579bd46f6b1,cd76003b4dc9a82cba7b8cf82fd771d7a5eb41fe,65330f346d46debdc53afc0d8723eef18422453a
a48d40e08e38b691207c557589767a1e9e84c368,1aad73217cc17f4e41e222ffe127ed55446c1317,3031a4da319316e6c7ac59a74071920a22f39e05
c7136b59c78e0ae3eb9d4a69dfbe6e9e6bcc9eac,b96109727c01f496061c4a77d65e0f50e8498eb0,f5becf9ac60e6da9d9f3e323b69b89a800b6d5f0
e0fe8bd17510e16653c8a27547335b692978b91d,632353a8086a6aea4f41062028e2076ba678fec4,8d690546f306ce23f32322d8c20ab3e630cc2eb0
8816a0b601383633d690c3cd51b2b9a4d6374441,086c897981c05bee5a0d47737877823cfa590c03,b599574a162f804f7bc1f68aafd525928242d020
acf58acf4109d35d1207100396b81a61a9acd0d3,dcf08c1d4d934712519c3d5a0b7002e5cd73f09b,280d5057e86a037c6baea33323b3b4bf9a387c3a
3f579c10a4da61a89014c28bcfd99909b97cc382,8b95fb8377a8c05c378186f6876c057a95145e34,36e4db15bcb41e1a5a207868bb9e9f59e461f66e
2f8fe76bed57a0d037c9851210d3c034a51dd01d,c577e290d13b2b1dd2c03ed0db8d607fc28088e7,4f14f0f4e53ccaa8f37830d0bd614b66c604c69e
024ab0a8541406375fe10c9f8668c78667fda1b4,db0deab026eaae27b8d70662dfba25be86bc440b,1bd66a605ce4bbec1143c5e50afc2ec9e78a1d59
09b6bed27cdd337014ae0f8dc85957647236a8eb,6630f47ab492f1860723e58ee36496b94a8f9f32,ef790adc28cbb70befd6571c622a353160c6db47
60d4363f475b8e429856d51e6a90834cff295895,9f80b11c5db115fa5dbc78fcca872ff3d8ecdca8,d2879f5bb9955434a43b394995c8778927d8dce8
df42716665d467eace97490e4e27a8f927388fe1,cab80d121874b3e5ae2a4a7ccb04f2b873284e79,8eefb37b42ba8edf21d2473c44cfabb25bf258ac
18f364a497a75c718537ba3157ee36735ff933fe,c8d18f5ac64f8c42447d5596eb3eb63fac58ac0e,b425c97fce8bee5326e55e28151ddaa6e8d65d54
d5596ef21da4ce337f95cd8a3e4df272a378652f,3870c4791c18ae55c748e04b362cfc020de424de,27125b760ec7d07abfbd47eda7814ffdfa141ece
157e8792c58f6bb207d766c38c8e30dd93f25975,f2ee1dae523eb5b505aa1f9aaf78fa2a7cf5ea8b,2a733aa751453b8cb285026da61e716488d7b03f
6f59167c644a4a4a4090e8a1ecbfc5183816b00f,84e1be805c5888ff85e8c564d8e4e89759da0ac8,75eaca8ab4880c58ecf5643ea05c4630e2ad1892
aa1bbb591c1aab4b1731ecd3e85039719899ac6a,f9d54b7cb746a3567a67493940252cf9da000f76,3eece73a89b8433cdb9400ce426b87857e95d456
2294472ac7fc458043166f8972806ace349de4e8,fcd9625d6b2cec2f9886a02fa1df9e0319ce71a8,8ad127ca309d4fe1e5761c02207b43a66b363aa5
d7a45c646e8e557dde5917cb7ca1451d8c502fb5,5149e58525a560334f4ac1b1064887939769f63c,a04cd9b9ce7a0dad694fd8bc7fbf51354c4fbb21
8b84ef9f4b7f66c9ff85afcec81082d7b481133c,61a4eaa30212cd6fac0f6e955e3c449981ca191e,5821143387d15b370508efafef84fc12f6d26f80
6a9279860356ec61d0f133b00345da12744fef1f,82450e1d57d684b3858b280cf96f045a4505b631,e8b92a4a7692c4922d7f8d4e394c6f145b193103
50cb5707eff57d51a30dc2d2953dcf91a7a93f68,44e39f454a38bb3cfc8a61b8587fa225c3ebec61,ab0de8eec00aba5b957e2db1b31528a65dac18c7
80d549a73449381204174b98462fd83ba9aeb538,08023bbad0df203030f1998f7f5ea724446efaab,d48019247745e8e1b644aa3381ae0303d6310fdd
e7681dfe5beaf76263c2fb7d080e12f8f8c682f8,f5c22b7a9310e0f9f0fa118b04aec75914bc05df,ca475537e886a36b1ba76127db7a3c0bf454e3a2
f3a19aaf5976d5356a4def9355bf2866ff2aa675,fc26e2629bd22a1b8d7df4dd033dd15c2773cb21,992fa3eea700295201d78e109b33140f63e28dc2
541c65feb758859aadbb99ef66022f79394cbbfb,3d4e677db0e3c2aa309c6513249bb4affc498bc4,9432aa4b69a471904eaa57f44edb1e0cb0e82511
3280ec322060dfd6fb333d5f789d1b148c35c5ca,81287362339a70ad44e20162e6ee02b135d1cebf,9e7a8f44aa47d53c47bdf6081ddaba0a99c622d3
a6d475b9b35f345bbe4dead1e176a99afe8f9f50,f90324a02af28994799012e81c4bcf1dfb106bbc,da252e2f4b81ff3e626500454c1974c2b4feb62a
2f90dbbd4403147c2131c03b0d25876cdf819d2c,0d5260396cc16d63e444670ea9c32cc6392c7241,6dbcd17f54cd8b4e2e4853785d405233e1948762
b1497185660cfd390c20390e00cc7fd61b0d2606,02e63411617bcd6f99f666cf341fba063fb47532,53674e387f1eff6ec7febaa7bd763a2c657002aa
8c1ebd8353f7aadc5b79706e5bf8b65ac9a450fd,6a35227a50cb62bd454f46d4637a798084dc5e36,6fbf4dfd9059f8a3bdcf5efdf257262dcd17d178
13f3cd2ae3f3d5197a85035b8d8ee40792eb66ff,12a0083c5924a69f6928a7f28379df4cca86f12d,cd5c2b82717d3168587fc9e853f8a0a0c71ac565
2bf7676f00a35ef8e1f252bae8e118b5088638a2,c9f875b15ff458afb0c28dc1e8e95aa155234657,54f761b4dafc35325e2d49dbfb12720dddef0d42
70011c2306dbf89b7b1b5c92c464550c6ef8b126,94693e5f70828ae617af1a4c1c008e1f4af4b366,19876ca805828d1d59625790bd443fdecfc43e63
436b8c212154e4935b3f030e92169a639db7895c,492210fdc73d4681d05fb59619f77efb53bf6086,53a67b34b53bec3ca526da2ddd70c69488d69556
539f2cd7f095b616b6452f1fcc4aa3635d99fb57,1f41cd195fd8f3a73c3a3a5c17f62d51c720b3f6,c01c13c29aacf5e1475d1e3438bc4c699c1ab9a9
27e9377a3a7b3b90457d79f4d7a9e65785fee186,08f3a3c8ef460fd5bb326c0b74f3fe16ab4dd7bc,98dd448ce849325373057ad5713f96edf7492bee
3608be8f13b3d90bd8bfbc2707ac485c9cfd4d99,50572fda8cdbe8ac3199ffbc22588dd7c7d0e372,cbc8aa63c83df4e16635b26e479c508229428e07
a2b66ea061fb9bbd311d26203525a11394840955,f10fe0985a4b0b60dd03e70d6b150fe193785e05,b66802a14e9851e542d4483b250555fdd0946f77
b4d8f2d1b6164755fd3e7777bc02d9a8cbbecc0a,d3c87f9c584a23591643e3a2dbe234a73ef3c3a3,4a85ab9cb9785d31ab8d6f8808432010b1de8a34
ee5e89733f4fcc26b9389d4dc62b0c707ec8ddb1,98f767efbfe742a749d61d7a598388be12ac3558,e8e1a6e874641ce7e8b637810efa9b7ed2c0c370
5ff82c14cfe2e2b5110d9bdea4c202a20621b80b,b56e1b0cd8df80ec246d5939088b8cbcae7b5ec1,904c59fbfffb65cddd60d892d0e49489773490da
43e92ef2b78195384c25202582141f91813f473a,40adddea3477b3c7960ea0c25779f3b8312ad9ad,17a90f9521420593069df50ca2c0eaebcfd44b0d
a79aa8727276de8db173d67839e78a3df195a357,2b829480e14abf2a8dacf1013ff796acee90b752,6200af404d8d8baa1935ba8780dc9893075d9307
0e4e4b89ab7acf1bed1b2ee7637de9580042a8bf,13ed9a2277918d2da5c9a008cdf4b7f4c78ba309,0ad2150457a100fbef2476378f3ac56a33858fd2
d06ab24389054cd342b82275168d5e9d8ee200ee,704a5a50816d2fca65740f774e5c0bbaa7af9a38,a57a2b6cbefa2e60c69256f3a45796525d0501c3
fdfd7c07ed33bb762b3abd0c64b30d82197ecf4f,a9e3882e37fa75856678470d137ff2e6d648d727,ac8e64c93abbf349227e186ef02d31056b279e01
784d2146c54471cb666248d5554b59d7a17a6cf7,b27335e8a5fee1d8de272ae83a0405928b187e7a,3bb0ae4bf965d66489db5350a1706267e5702087
a954fe6e8fbcb4ddca014a2a9f2086ccf85b5776,6502f7b35ab7438a7c38c64686d86d44eec3a388,bbe18e2633e1537e36767634c3b9cc3906f8f5b2
c74a6f4ca27503ed8837a803169d6c40780329f1,7f33dc18d01914d30f52db7b81f449254fc9a244,729d920ed3f96c09ef015303d656455efdb078a6
07ff5f423abb1107be587bbb1edb55e840017b5c,f1cf83bd8a2ff5b38a4fa5ecb6e2f8e102d8b372,ff576fad0f4b3e3c92e9c695b518b34bd90e4830
a45394d849213a0a54e3e719cfc281f11d500ec0,aa8fe28a05b423cc4a59e9b985d8cc401ce153bd,1fde206ee6703e9ace1a809ae49fb511d35a07d7
61304bf324b59cfab9579af02e4c77bf4d5daff6,f2fc63aed25369295e2525f84c35e6c74e5fc779,2a75debff6ac80dbb0492d4e90e8c68b01f1c718
e339d236e151e89a94b30460e0cc15e758d5bd45,2324055b1fb39b7846f3094fe2edb8872d1f3977,b2f6ca70cdc4f46602c8bf0bbc46bcd2b301c22a
d207a293c7640517ced9a02366cb4e54b16cc0f9,94d47bf7cb5e01c97905763979df0956b8cac421,853b9c5c96f8faaf73c1fc5ead2153e2ddf93885
d78e39d360f3a4873caad0c214628d0bcd263973,e07185bc11189d4fc24b1d8c5d12dd6f33dc2d25,3439b220a71c0888cd906ea010265e202717ff46
1d1a68761e27d473aee8d41a6c15a5a1f7a4324e,9a47cc5c47528ffefc554f9a7c1fc90fa084e9c4,030fe14bdecfb96d136cef785ff55f3087da6c71
5a0d76e45ab161063d5981a807ffcdd8f683314f,08cc81ff60ca9f66ce9f4de4bf36e30dec1403d2,8bc7d5897d19829217f2953128c2bf1cf718e791
b218393b5747b7c2ee86099a91315012a9b616e8,b467de658d6a4b1c9d677935d8d0566429e1de7e,41a48fe385604914f7c40aed701a8b7304fe809a
14f97748380ef4aa4dcf3859e493d2273ae4928f,c6601203291f2460a9cff03cc67c238bb6701169,4058a0ac4b4b1f47dc58a3055ebda62edaf6560e
c5a443d0dd4579f9873ece67624bba33edce8cef,638de87a5a14b2ff5d5ab5ee9553f82b0421f010,ecbd5840cef7db23b6ac4da18061dbead8a9dfa7
3d9d80b007dfee801cf5ae9769283733c75d1963,94368d06ee17f513eaa45519b5e5b79e1ff86980,08820e97e8607e8d7bda8b1414c85048b35c1f18
bcb2aa1323c25c97d12086f4bc5e8142b06a67ab,710d6eb5c5add99f01b73e08778e1cf64aba76ad,1852006c6127cc8bf5562bf9cd44cb104aa0df30
23411b36e03c25c2210f43454a8bde8c53d4cf17,aced88e43cc720fc7aabf3b083682893316f82e4,9bb9ec0fa2a06c8feed1f5b030a555e66ff8003c
3a5b18e0e499321680ed3aed4b76814f4e802a9d,d70d11a650623baa9eb34176c5d00ad72632f349,863bf00357b739ae02f8ba392dbb6d8d3a8eb858
2210a8c84583a3b4137b5672d6546f9fd8c6547b,8fa951f369418d7486ec033ddc19c5bb3965e047,3d889ab8cc3746c35b0a84863fa7e059ac9a1c14
99106402cbb3094534f6ba8a436b7174368c860b,42c0fd5c34623c72719d2178131a557397dc9bad,5fe9ed18d972a6890e7d8092827864bc831dbe81
1cacbeff1e2d74df8030c4ebf4bc46b46516d020,9a5f95b3a479f487f9b088673051777d936ff858,b2dd200863a5311f26915d9a7106eb02c1f79d7d
a3d32e6c5bd41595a4ff8fa7e0dd8dce601ba6e1,09dd03240d1bfaea8932743cae705bedfbe74791,d331e14bde6f8ce0890ef2535f9d5145a8624ce5
c9a7893b61bb4a79a8461b9c27f006c8f39ef1dd,42e202f791cb3fa3193559084cf3cb8fcb3c1186,a3300b5ef5a03727ec6f14d99045fd1c1a5dbe47
b8b091cef889b6ab30fd6b1ecfb559c9cac4db05,42a52aa7d7372306a2e67b8fc6eeeb92730f0986,5abadd255f108b6041650044a2a98be5b32fe9d8
a283c4dab70daf480a5a9d1cf949363c94a28d56,202d526211a6c43ab3a75fe37fdea88f15c56b1b,097608c94e7e6def92d6205c845bc7032780dd92
eac6add9f70ef11b3dbe3dfe7624885069e3229e,1714dbb5631026371f0121ef454f17618b665ace,374d22b5eade55df7ff637518a1cb6ef83cc81de
9c6d1d7dca95714ae3cc297b3821023f46cdb407,35ac20c1f0c037d14344fc146306586c37923e34,d7481249969d552ab056d732b92e14d83a237100
a1863d8dc85ff64a23dfaa103e862e85151a92eb,eb6f29d084b741b0197b3c21672310530ff2f043,572a340a26455397917145eac6b147c0a7bdecc9
bb078b07d1eccef19f16a8654fdaf79f3d9d2bb1,ac4f90b4a7f61cb23772e38cbc613f72ebebecc0,a602ae8685b573ee8f04610b07e0e14f5511eec7
7a31353164ced364430e6c03c0b656e13360effc,a815beea2c83055291685f9e331f7354f37cf9ae,e94d02a06788c0953111efc08dd5a7c8da5789ee
c2ceb4bb9987b36d3d890631835eeedb84b065df,a003040be198c6c7b4ff0aabe258da0e0a4813e6,b2242d7e109d98fee63b6f6e4dcf2d249083621f
6d6225a4af85adc344622e7301668d6d5c557e34,9d1dfa17d5d365e7c760abb4188b8934d0aa5b61,c93edf4783b7700c0f7aff0e0b9786e209823759
79d64a8b6570e356724b6865eb5f80197cc3b9fb,dd6d142f4c0ecf827f1ff6a6bc0c8b2c9e8af262,edeae6609372ef9f18a37ddbda60748c28fb6065
8332b55e3472c311c9272e37c2175f8a3b34ba48,53eeb1cf0f7cf41b90eb2c0ce22de4c41ba9d173,70b4a6bfef8254dcdc83ebd03d8b5f64244a1c62
682f4a750f6f42a804f305fe7d791059f73342be,b964a5f5ee3ea9f4fb5229fefb74be8280d34ca7,32cbfc67cc0f19f6e580870bf57d42f170512452
2dee5c5d8bfb7e4b77b83df13e123dd8fc30e120,1ec58e5178aef7fdf9109fec5a45c72fa708bca5,2ba4487a05fc94de3e78fee3e32e4a511dc09a3f
00fafdbd5483003c49a03c627c32466b753bd37f,5c6cce06bcdfed34c995df2b8d894b7de5e49194,5b9db6c9f3624ee1e895137c57b0da716495f180
60555c4462c1492716fc3ce4fc6f29d5cd247e9a
Clicking a revision will expand files
tosunits: added a few more VDI functions
morphos: add a custom lineinfo unit, prepared to parse stabs relocations in ELF relocatable objects, also featuring stronger address validation, and showing offsets in the executable instead of absolute addresses
morphos: include the new lineinfo in the build
morphos: fixed stabs line number parsing, and off-by-one line issue with backtraces. i think this should be a generic fix and can be backported to the global lineinfo
morphos/lineinfo: updated the address adjustment comment added in
0040857, no functional change
morphos: do not read beyond end of the .rela.stabs section. do not try to relocate stabs entries, if opening the stabs was unsuccessful
amicommon: moved MorphOS-specific lineinfo to amicommon, for upcoming AROS and OS4 support
amicommon/lineinfo: added support for i386 relocatable binaries with .rel.stab section, as used on AROS-i386 for example
amicommon/lineinfo: fixed copy-paste error in PowerPC codepath
aros: only build lineinfo for i386 for now. FPC on x86_64 doesn't support stabs at all and the Amiga-specific lineinfo unit has no ARM support
amiga: enable building of heaptrc unit, enable building lineinfo and exeinfo for OS4/PowerPC
build/install fixes for the new sortbase unit for amiga, atari, aros and morphos
amiga-likes: add fpwidestring unit to the RTL build
amiga: remove packed from RTL OS record/structure definitions, use PACKRECORDS 2 instead. this allows much better code to be generated for a plain 68000 RTL
amicommon: make sure to reset packrecords to default after OS structure inclusion
amicommon: cleaned up the voodoo padding magic and packed record from the DOS unit SearchRec. This structure is entirely platform specific, ancient code might have accessed it from assembly, but it's no longer the case.
m68k-amiga: add some defines, to disable part of OS headersin the RTL when compiling for OS1.x. this is to aid the implementation of future AmigaOS 1.x support
amiga-m68k: minimal tweaks and formatting to the dos unit
amiga: no packed records in doslibd.inc and timerd.inc, use packrecords 2 insead, this improves code generated for plain 68000
m68k-amiga: initial work on some support functions to allow the RTL to be compiled for AmigaOS 1.x
m68k-amiga: implemented StackSwap and DeletePool in legacyexec support, also declare public name for a few functions, so the startup code can hook into them
m68k-amiga: implemented functions required for basic parameter handling in legacydos
m68k-amiga: prepare the startup code and system unit for legacy support
m68k-amiga: make all legacy support functions have a public name, and supply headers for them (will be utilized by athreads, dos, and sysutils units)
m68k-amiga: startup code now uses legacyexech, instead of explicitly declaring legacy support functions it needs
amicommon: m68k-amiga legacy support
m68k-amiga: create the heap memory pool with MEMF_ANY, rather than MEMF_FAST. this will finally allow FPC compiled executables to start on chipmem-only machines.
Amiga: Implementation of Amiga2Date and Date2Amiga for older Amiga Versions
Amiga: very basic first implementation of MatchFirst/Next/End for old Amiga Versions
Amiga: simple SystemTagList() implementation for old Amigas including basic tag list handling (GetEnv works now)
Amiga: do not try to read pr_LocalVars when running on 1.x
Morphos: Fixed compilation after
0044709
m68k-amiga: make it possible to disable functions newer than OS 2.0 (v37+)
m68k-amiga: have an AMIGA prefix in OS_MINVERSION public constant, add OS 2.0 support, make sure we open v39 by default as it is needed by memory pool functions
m68k-amiga: enable certain legacy exec support functions only when compiling for OS v2.0
m68k-amiga: startup code to print a console message and quit, when the OS is known to be too old for the RTL
amicommon: only include exec extensions when complied for v2.0
amicommon: instead of a runtime check, check for OS2.0+ features at compile time in DOS
amicommon: only include exec helpers when compiling for v2.0 in athreads
m68k-amiga: implemented CreateNewProc for legacy support, means AThreads now works on OS v1.2+
m68k-amiga: implemented LockDosList, UnlockDosList, and NextDosEntry helpers for legacy support
m68k-amiga: document which legacy support functions are unimplemented and why, and where are they used in the RTL code
tosunits: added some more xbios calls
tosunits: added another example which shows a DEGAS format picture
tosunits: fixed the palette to be ST only (9 bits) in the example picture, this is a bug in GraphX2 which was used to convert the picture to DEGAS format
m68k-amiga: added four new exec legacy support functions, these exec calls will be used in some DOS and AThreads rework
amiga-likes: add headers for timer.device/GetSysTime()
* fix buildrtl units on Amiga-likes
+ RTL skeleton for the Sinclair QL
sinclairql: implemented some OS trap wrappers, to be used by the RTL
sinclairql: implemented startup code, including binary relocation and stack allocation
sinclairql: initial heap allocation code, and minor system unit bits
sinclairql: disabled a bunch of things in RTL until they're implemented
qlunits: package skeleton to support the Sinclair QL
sinclairql: add a few more QDOS function wrappers which are useful at early stage
sinclairql: startup code fixes. set the top of the new stack as stack pointer, not the bottom of it. initialize the .bss section following the new linker script. better protection against re-relocation.
sinclairql: fixed the relocation marker comment in the startup code. no functional change
sinclairql: more work on the QL port. very basic stdio (console writeln) works.
qlunits: updated QDOS unit, added a QLfloat unit to convert longints and doubles to 48bit QLfloats, added a rotating cube example
sinclairql: QDOS interface wrapper function improvements, patch by Marcel Kilgus in qlforum.co.uk, merged with minor tweaks
sinclairql: initial implementation of RTL file I/O functions, patch by Marcel Kilgus in qlforum.co.uk
sinclairql: system unit changes and improvements, patch by Marcel Kilgus in qlforum.co.uk, merged with minor tweaks
sinclairql: fix exitCode parameter accidentally overwritten in mt_frjob. also save d2 register.
sinclairql: changed startup code to be able to run directly as job without a BASIC loader. based on a patch by Marcel Kilgus in qlforum.co.uk
qlunits: make qlcube example still build with the current RTL
powerpc-amiga: added some exec functions which will be required for some athreads rework
AmigaOS4: renamed reserved name "class" as field name
morphos: new functions and structures from current SDK 3.16
Aros: Layers unit updated with AROS specific extensions
AROS: AGraphics, removal of AROS defines, the unit is only for AROS
Amiga: removal of includes not in use anymore
AmigaOS4: added missing varargs function
amiga: examples fixed and updated
Amiga, AROS, MorphOS, OS4: Unified ExecBase for all Amiga Platforms
qlunits: fix the return value of longint_to_qlfp
amiga: check if P is nil while processing params. this should never happen, except sometimes in real world it still happens. so lets be defensive about it
Add basic support for setting argc and argv for sinclairql OS
sinclairql: fix and simplify the startup code changes in
0049134. accessing global variables is not possible before relocation
sinclairql: further tweaks to the startup code. enable optimizations. mark functions as noreturn to save a few bytes
sinclairql: fixed parameter trashing in several QDOS function assembler wrappers
sinclairql: implemented Error2InOutRes, patch by Norman Dunbar
sinclairql: implemented io_delet and mt_rclck QDOS functions, patch by Norman Dunbar
sinclairql: various file and directory handling improvements, based on patch by Norman Dunbar
sinclairql: instead of tinyheap, made the QL port to use the new OS heap by default, also implemented Randomize, based on patch by Norman Dunbar
sinclairql: first version of working argc/argv generation. implemented ParamCount and ParamStr()
sinclairql: various seeking, FS_POSAB/FS_POSRE and ERR_EF related fixes
qlunits: updated to match the latest RTL qdosfuncs.inc
sinclairql: implemented do_rename(), based on the patch of Norman Dunbar
sinclairql: new files to contain SMS only functions, iof_rename implemented, based on a patch by Norman Dunbar
sinclairql: do_mkdir implemented, patch by Norman Dunbar
sinclairql: have a max. 48 char buffer for job name. set the job name to the program name by default on system unit init
sinclairql: also have a function which returns a pointer directly to the QLstring job name
sinclairql: add right spelling for iof_mkdr, add the QDOS equivalent alias
qlunits: updates, new API and utility functions, improved README
Add strings unit to buildrtl meta-unit, and update Makefile.fpc accordingly
sinclairql: turn the anyKey string const into a pchar, this reduces the final binary size by 200-odd bytes
sinclairql: implemented StackTop, this results in working stacktraces and working stack checking. Implemented a custom 5% stack safety margin and a system specific SysBackTraceStr()
sinclairql: added startup code support for the 'packed' relocation table format in vlink. disabled for now.
sinclairql: hopefully fix off-by-one processing in the packed relocs code
sinclairql: added an entirely stub (for now) sysutils unit. added a classes unit. enabled building the whole rtl
sinclairql: implemented a selection of I/O functions, patch by Norman Dunbar
sinclairql: include qdosh.inc directly. this will allow easier sharing of qdosfuncs.inc with the qlunits package
qlunits: some refactors and updates. added system vars offsets to qdos unit, and a new example
qlunits: really add the a new example missed from the previous commit
sinclairql: introduce a way to override the system unit's console opening/closing and exit message via weakexternals
sinclairql: for setting the exit message of the default console, use a helper function instead.
sinclairql: return true as default for do_isdevice to work around weird console flushing issues.
qlunits: merged a modified version of a patch by Norman Dunbar, defines system variables as a record
qlunits: fixed comments in qdos_sysvars.inc to avoid compiler directives warnings
qlunits: fix SMS unit build, declare all const/vars/types before functions, and minor tweaks
qlunits: make sure everything is two byte aligned
qlunits: add a test program to test sysvar offsets
sinclairql: make sure smsfuncs.inc is in sync with the one in packages
qlunits: added channel definition structures based on C equivalents, added test code
AROS: some fixes for AVL_ functions, added missing NewCreateTaskA
AmigaOS4, MorphOS: added missing RemBob macro
rtl/amiga: add support for OSHeap, now default in legacy mode, optional define otherwise
amunits: in agraphics legacy support, use ExecFreeMem (OS call) instead of FreeMem (RTL call) to free the Bitmap which was created using ExecAllocMem
amunits: added missing WA_Activate handling to the OpenWindow taglist handling legacy support code
amunits: added missing WA_Borderless handling to the OpenWindow taglist handling legacy support code
rtl/amiga: in legacy MatchFirst, revert back to the original directory if we used CurrentDir(0), otherwise MatchFirst() will change the directory to SYS: (0 lock is a shortcut to the boot volume)
rtl/amiga: do not UnLock the initial lock returned by CurrentDir in legacy MatchFirst
rtl/amiga: make sure FileInfoBlock used by legacy MatchFirst is longword aligned
rtl/amiga: added some basic infrastructure to MatchFirst to improve pattern matching in the future
rtl/amiga: fixed the FileInfoBlock copy to the Anchor chain which broke recently with the alignment fixes
rtl/amiga: added minimalistic #?. and *. pattern matching to legacy MatchFirst
atari: implement environment functions
atari: add missing bios/xbios/gemdos functions
todo: Some newer MiNT functions
atari: add missing AES/VDI definitions and functions
atari: add missing type LongIntFunc to tos unit
atari: add some more AES/VDI functions
* tosunits: tabs 2 spaces fix in the TOS unit
* tosunits: add some required defines about compiler mode, strings, alignment in the TOS unit
* tosunits: do not use functions which convert between shortstring and a char array via an AnsiString in TOS unit
* tosunits: remove the sysutils dependency from TOS unit, it's no longer needed
* tosunits: tabs 2 spaces fix in MetaDOS
* tosunits: add {$PACKRECORDS 2} everywhere, just in case
tosunits: variable basepage needs to be visible by applications
atari: add metados functions to tos interface
atari: make control array of gem_pbb PurePascal compatible
Applications expect it to be an array, not a record.
atari: fix external linkage of graf_movebox/graf_rubberbox
atari: add nf_ops unit to access NatFeats from emulators
tosunits: provide alternative names for members of GRECT
tosunits: declare some var parameters as out, to avoid warnings
tosunits: remove some unused locals
tosunits: fix a bug in vq_extnd
tosunits: simplify some pointer assignments
tosunits: fix a bug in objc_find
tosunits: fix a bug in vsl_width
tosunits: fix a bug in menu_tnormal
vdi: add some extra checks for functions that are not always present
vdi: enlarge control array, needed by some NVDI5 functions
tosunits: add a missing copyright header
tosunits: add a missing copyright header
tosunits: fix the package build for Coldfire
* tosunits: fix the cube spin on systems other than original TOS/EmuTOS, patch by mfro in atari-forum.com
atari: some small bug fixes to new bindings
* tosunits: rename gemcommon to gemcmmn so the unit name fits 8.3 limitations
tosunits: honor the window rectangle list in examples
* tosunits: tabs to spaces and indendation change in gem.pas. no functional change.
AROS: Locks must be BPTR type
AROS: 64 bit fix for sysutils FileCreate
AROS: 64bit fixes, synchronized to official ABIv11 includes
AROS: 64-bit filehandle compatibility/consistency fixes for ASYS_FileList related routines
AROS: 64-bit filehandle compatibility fixes for doslibf.inc
AROS: Remove CPU64 ifdef's ensuring 64-bit compatibility for records/fields
Preparation for the introduction of stack aligned records fields (AROS STACKED
structure members).
Remove unmaintainable superfluous ifdef's that are used inside certain record
structures (in an attempt to use correct padding on 64-bit targets) because
they are not in line with the introduction of stack aligned record fields.
AROS: Change MethodID fields (back) to their original 32-bit (longword) size
Preparations for the introduction of stack aligned record fields (AROS STACKED
structure members).
MethodID really is 32-bit wide so we need to change those back to their
original size.
AROS: Add stack aligned record fields for 32-bit and 64-bit compatibility
Final step that attempts to ensure that fields of particular records are
'STACKED' (stack aligned) properly for both 32 and 64 bit.
AROS introduced STACKED structure members, which are members that are padded
according to the current used stacksize which in itself is based on the target
CPU.
These structures are required to have a particular defined size in memory and
have a particular field alignment, therefor these records are always end-padded
(whether required or not) so that we are able to force the compiler to add
padding depending on the RECORDMIN setting.
Other available FPC directives and/or solutions seem currently not able to
solve that issue and we do not wish to manually check each structure to
determine if it requires end-padding or not (based on bitness) simply because
it is unmaintainable.
This change attempts to ensure that these record structures compile using the
correct memory size and field layout for both 32 and 64-bit CPU's.
The introduction of stack aligned record fields solves a lot of 64-bit related
crashes when working with native OOP such as MUI and BOOPSI.
Note: Not tested on big endian.
AROS 64bit fixes filehandles #2
Solve crashes when opening, closing and managing files for AROS 64-bit when
filehandles are located in memory > 32-bit by making sure the used file
handles are actually of type BPTR/THandle instead of longint/cardinal
(and stays compatible to AROS 32-bit).
AROS: 32/64-bit RTL exec compatibility update
Update some exec RTL record structures to be 32/64-bit compatible.
Unit Exec was already up-to-date with these changes.
AROS: RTL exec update. Memory sizes are IPTR
Memory sizes are expressed in IPTR/PtrUInt in order to be compatible to both
32 and 64-bit.
Affects both record structures and API call signatures.
See: https://github.com/aros-development-team/AROS/commit/d7df812342ac2bfc7df2fd271c4cab473fe804b3
AROS: Unit exec update. Memory sizes are IPTR
Memory sizes are expressed in IPTR/PtrUInt in order to be compatible to both
32 and 64-bit.
This changes some of Exec API call signatures and should not impact
existing code.
These changes reflect the changes made in the exec RTL (that were present in
the previous commit) but note that Unit Exec record structures were already
up to date.
See: https://github.com/aros-development-team/AROS/commit/d7df812342ac2bfc7df2fd271c4cab473fe804b3
AROS: 32/64-bit RTL doslib compatibility update
Update some doslib RTL record structures to be 32/64-bit compatible.
AROS: 32/64-bit unit amigados compatibility update
Update some amigados record structures to be 32/64-bit compatible.
These changes reflect the changes made in the doslib RTL (that were present in
the previous commit) but note that some of Unit amigados' record structures
were already up to date.
AROS: RTL doslib, record field members update
Update some doslib RTL record field members for AROS compatiblity.
AROS: Unit amigados, record field members update
Update some amigados unit record field members for AROS compatiblity.
These changes reflect the changes made in the doslib RTL (that were present in
the previous commit).
AROS: 32/64-bit RTL utility compatibility update
Update some utility RTL record structures to be 32/64-bit compatible.
Unit Utility was already up-to-date with these changes.
AROS: 32/64-bit compatibility update for unit workbench
Make TAppMessage compliant to both ABI's as well as 32/64-bit by
changing field am_ID to be of type IPTR for all targets..
AROS: 32/64-bit compatibility update for unit intuition
Make TDrawInfo compliant to both ABI's by removing redundant ifdef.
Add information about (new) fields.
Update dri_version to v3.
AROS: 32/64-bit compatibility update for unit agraphics
Make TRastPort compliant to both ABI's by removing redundant ifdef.
Add information about (new) fields.
AROS: 64-bit fix elf structures for unit amigados
Make sure ELF structures are compliant to 64-bit when target is 64-bit.
AROS: 32/64-bit fix field alignment for unit commodities
Make sure AROS' record structures are C-packed.
AROS: 32/64-bit fix field alignment for unit conunit
Make sure AROS' record structures are C-packed.
AROS: Update RTL structure TETask (execd)
Bring RTL (execd.inc) structure TETask up to date to unit exec (exec.pas).
This structure situated in the RTL was (literally) based on the MorphOS
version which is not compliant to AROS.
The original MorphOS TETask structure can still be 'activated' when the flag
AROS_MORPHOS_COMPATIBLE is defined when compiling the RTL and exec unit (as
is also the case in the original AROS repo).
AROS: ABI compatibility update structure TETask (ABI/BC break)
These changes break Binary Compatibility between ABIv0 and ABIv1.
Record TETask was not compliant to ABIv1 because field et_Compatibility is
only required for ABIv0 (https://github.com/deadw00d/AROS/commit/06538a17900b3e6c45d053128957fba8668c2c15).
Therefor these changes update record TETask for both RTL (execd.inc) and unit
exec (exec.pas) so that field et_Compatibility is only present for ABIv0.
The impact of these changes should be minimal because all relevant fields are
still accessible (some located at another offset) and code should never rely
on the size of this structure.
AROS: ABI compatibility update AROSSupportBase (ABI/API/BC break)
These changes break API/Binary Compatibility between ABIv0 and ABIv1.
Field stdOut is replaced by undefined field named _pad for ABIv1 while
(still) being present as stdOut for ABIv0.
Field DebugConfig is completely removed from ABIv1 (still present for ABIv0).
If your code depends on either of these two fields then you need to make
appropriate changes when compiling for ABIv1.
Removing dependency on either of these two mentioned fields is preferred.
Both RTL (execd.inc) and unit (exec.pas) are updated.
See also https://github.com/aros-development-team/AROS/commit/194cc5e1c52a9dc67aa2275c8acb26673e454757
AROS: Add structure spinlock for SMP builds
In 2015 ABIv1 introduced support for spinlocks for SMP enabled builds (1) by
use of a special spinlock structure.
This structure was later updated to end up in its current form in 2017 (2)
This commit adds this record structure to both RTL (execd) and unit (exec).
The structure can be "enabled" by defining AROSPLATFORM_SMP during build.
1) https://github.com/aros-development-team/AROS/commit/b6045c27fdb925491cc8081837b978d288f057a3
2) https://github.com/aros-development-team/AROS/commit/0ffdbdc48f6b5add7efb3cc193fa98739dedeff3
AROS: Use structure spinlock for SMP enabled build (ABI/BC break)
This commit will add an additional spinlock field to record structures
TMsgPort and TSemaphoreRequest for a SMP enabled build.
This will break ABI and Binary Compatibility between ABIv0 and ABIv1 and for
ABIv1 (for a SMP enabled build).
Recompilation in such case is required as both record structures TMsgPort and
TSemaphoreRequest are embedded in other record structures which causes a
myriad of changes to those records including different record sizes and other
field offsets.
Note that SMP is currently only available for ABIv1 and afaik only supported
for AROS target x86_64 while AROS target i386 has initial support for SMP
(but not actively enabled).
SMP enabled build can be 'activated' by defining AROS_PLATFORM_SMP and
AROSEXEC_SMP.
AROS: Ensure that spinlocks for SMP enabled build can only be active for ABIv1
These changes makes sure that the use of record structure TSpinlock can only
be enabled/active for AROS ABIv1 as that ABI is currently the only ABI that
is able to support SMP by using the spinlock record structure.
AROS: Ensure that spinlocks for SMP enabled build is not possible for ABIv11
These changes makes sure that the use of record structure spinlock is not
active/available when compiling for AROS ABIv11 as that ABI does not support
spinlocks as implemented for AROS ABIv1.
Note that this is a ABI and Binary Compatible break between ABIv1 and ABIv11.
AROS: Make sure opaque SMP extension is used for ABIv11 only
These changes adds an additional record field to record structure TMsgPort in
order to support SMP for ABIv11 (non m68k targets only).
This additional field contains two opaque IPTR's/PtrUInt's and therefor breaks
compatibility between ABIv0, ABIv1 and ABIv11 as well as make them binary
incompatible.
It also renders ABIv11 incompatible with itself when this change was introduced
on march 18 2022. Recompilation of existing code for this ABI is thus required.
See: https://github.com/deadw00d/AROS/commit/b9bc67accce27db0e2cc0f79f554dc76e9b17a73
amunits: correct the HookEntry wrapper functions to new compiler behavior. at some point during 3.3.1, the compiler started to omit stackframes when not needed, which broke the previous assumptions about stackframe handling
AThreads: prevent deadlock for event set before waited
m68k-amiga: print offsets during stacktraces, instead of absolute addresses, which are not really helpful in a single address space
powerpc-amiga: fix build after ecbd5840
Amiga: Bugfix for Tagged Version of OpenWindow at WB1.2/1.3
Amiga: 32 bit set color functions for OS 1.x
Amiga: System CloseList() and CleanupThreadProcChain() are called after the memory manager is already shut down changed to native os memory allocation
AThreads: ThreadInfo for the main thread move to a global var to prevent problems with heap manager
* Dotted filenames for package arosunits
* Dotted filenames for package qlunits
* Dotted filenames for package morphunits
* Dotted filenames for package os4units
* Dotted filenames for package amunits
* Dotted filenames for package tosunits
Arosunits: rexx unit added
* Correct type for filenames
MorphOS: introduced openssl3 library unit
Amiga: Enable Dotted RTL for Amiga
MorphOS: fixed support for dotted rtl
tosunits: xbios vsetrgb/vgetrgb - do not use Pascal open array style syntax in a C-style API, but C pointer-style
tosunits: add VM_INQUIRE constant for xbios_vsetmode()
m68k-sinclairql: also build the various softfpu flavors for the QL
m68k: disable verbose error reporting of the stub unicode and threadmanagers by default on Amiga, Atari, Human68k, and Sinclair QL
m68k-atari: mark functions and API calls related to exiting the program as noreturn
qlunits: added a support unit for the QSound sound card's ROM
rtl/amicommon: reduce the string sizes in the IllegalDevice list of DOS unit. This in turn reduces binary sizes by almost 3 KiB.
rtl/amicommon: fix some comment typos in DOS unit. No functional change.
rtl/amicommon: fix some comment typos in Sysutils unit. No functional change.
* switch M68k RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* with all existing RTLs switched over to the atomic intrinsics, the define FPC_SYSTEM_INTERLOCKED_USE_INTRIN can be removed again
m68k-amiga: fix typo from commit e94d02a0 that broke the build
Remove MaxKeptOSChunks (assume 1), GrowHeapSizeSmall, GrowHeapSize1.
AThreads: implemented ASetThreadDebugNameA()
with helper function IsValidThreadInfo to check validity of a Threadinfo pointer
AThreads: In IsValidThreadInfo() leave early if threadinfo is nil
AROS: removed PutTextToClip and GetTextFromClip from clipboard
removed circular dependancy from iifparse and clipboard unit, both functions still available in ami-extra/cliputils
amunits: add card.resource support unit, the OS interface to the PCMCIA/PCCard slot in A600/A1200 systems
amunits: cardres, use the predefined CARDRESNAME constant while opening the resource
rtl/morphos: do not try to use the section keyword on 3.2.x that doesn't support it. this allows bootstrapping natively with 3.2.x again.
morphos/opengl: added all MorphOS specific GLA extensions to unit TinyGL. also removed some from the generic OpenGL unit
morphunits/tinygl: added more calls, most from the V53 version of the library
rtl/morphos: add optional support for the OSHeap allocator
morphunits/exec: add the Pascal version of the LIB_MINVER macro
morphunits/tinygl: remove unnecessary comment
morphunits/tinygl: add a variation of GLAInitializeContext() function that supports our FPC-style taglist syntax better
morphunits/tinygl: add support for TinyGL context versioning
morphunits/examples: added a TinyGL screen context initialization example
morphunits/examples: added a TinyGL window context initialization example
morphunits/intuition: add methods OM_RETAIN and OM_RELEASE
morphunits/mui: added the newly documented call MUI_RequestObjectA (needs recent MorphOS)
morphunits/examples: added an example of using MUI_RequestObjectA()
morphunits/cybergraphics: fix wrapper functions which accept a Free Pascal style taglist
morphunits/examples: add an example to query and parse the screen mode list