From 8d66e85d2c40b6b7673e5579a9ae696fd326811a Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Sun, 5 Jan 2020 18:31:35 -0500 Subject: [PATCH] self-build linker. will also build with merlin 16+, other than USR differences. --- src/link/link.cmd.s | 16 +++---- src/link/link.express.s | 3 ++ src/link/link.header.s | 11 +++-- src/link/link.macs.s | 99 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 src/link/link.macs.s diff --git a/src/link/link.cmd.s b/src/link/link.cmd.s index f90a451..bfd0079 100644 --- a/src/link/link.cmd.s +++ b/src/link/link.cmd.s @@ -1,10 +1,10 @@ - put link.vars - put link.eval - put linker.1 - put linker.2 - put link.errors +* put link.vars +* put link.eval +* put linker.1 +* put linker.2 +* put link.errors + ovr all asm link.header - lnk utility/qlinkgs.l + lnk qlinkgs.l typ exe - sav utility/qlinkgs - + sav qlinkgs diff --git a/src/link/link.express.s b/src/link/link.express.s index e8d0647..1cca801 100644 --- a/src/link/link.express.s +++ b/src/link/link.express.s @@ -1140,7 +1140,10 @@ indexj da 5*2 ; these indexes is crucial array da 1,1,2,3,5,8,13,21,54,75,129,204 da 323,527,850,1377,2227 + do 0 +* Illegal relative address in line: err *-array-34 + fin seed php rep %00110000 diff --git a/src/link/link.header.s b/src/link/link.header.s index f51af48..2f9c693 100644 --- a/src/link/link.header.s +++ b/src/link/link.header.s @@ -11,9 +11,12 @@ doexpress = $01 - use 4/util.macs - use qatools.macs - use 2/qa.equates + use ../macros/builtin.macs + use ../macros/qatools.macs + use ../data/qa.equates + + use link.macs + brl start @@ -497,5 +500,5 @@ tempbuff ds 130 lst off typ exe - sav utility/qlinkgs.l + sav qlinkgs.l diff --git a/src/link/link.macs.s b/src/link/link.macs.s new file mode 100644 index 0000000..d2e08e9 --- /dev/null +++ b/src/link/link.macs.s @@ -0,0 +1,99 @@ +_DisposeHandle MAC + tll $1002 + <<< +_DisposeAll MAC + tll $1102 + <<< +_NewHandle MAC + tll $902 + <<< +_GetHandleSize MAC + tll $1802 + <<< +_SetHandleSize MAC + tll $1902 + <<< +_HLock MAC + tll $2002 + <<< +_HUnlock MAC + tll $2202 + <<< + +_setmark MAC + jsl $e100a8 + da $16 + adrl ]1 + <<< + +_getmark MAC + jsl $e100a8 + da $17 + adrl ]1 + <<< + +_getprefix MAC + jsl $e100a8 + da $0a + adrl ]1 + <<< + +_create MAC + jsl $e100a8 + da $01 + adrl ]1 + <<< +_destroy MAC + jsl $e100a8 + da $02 + adrl ]1 + <<< +_changepath MAC + jsl $e100a8 + da $04 + adrl ]1 + <<< + +_setfileinfo MAC + jsl $e100a8 + da $05 + adrl ]1 + <<< +_getfileinfo MAC + jsl $e100a8 + da $06 + adrl ]1 + <<< + +_open MAC + jsl $e100a8 + da $10 + adrl ]1 + <<< +_read MAC + jsl $e100a8 + da $12 + adrl ]1 + <<< + +_write MAC + jsl $e100a8 + da $13 + adrl ]1 + <<< +_close MAC + jsl $e100a8 + da $14 + adrl ]1 + <<< +_seteof MAC + jsl $e100a8 + da $18 + adrl ]1 + <<< +opc mac + usr ]1 + dw ]2 + dw ]3 + <<< +