1# 2# External loader interface 3# 4Nilmod: module 5{ 6}; 7 8Loader: module 9{ 10 PATH: con "$Loader"; 11 12 Inst: adt 13 { 14 op: byte; 15 addr: byte; 16 src: int; 17 mid: int; 18 dst: int; 19 }; 20 21 Typedesc: adt 22 { 23 size: int; 24 map: array of byte; 25 }; 26 27 Link: adt 28 { 29 name: string; 30 sig: int; 31 pc: int; 32 tdesc: int; 33 }; 34 35 Niladt: adt 36 { 37 }; 38 39 ifetch: fn(mp: Nilmod): array of Inst; 40 tdesc: fn(mp: Nilmod): array of Typedesc; 41 newmod: fn(name: string, ss, nlink: int, 42 inst: array of Inst, data: ref Niladt): Nilmod; 43 tnew: fn(mp: Nilmod, size: int, map: array of byte): int; 44 link: fn(mp: Nilmod): array of Link; 45 ext: fn(mp: Nilmod, idx, pc: int, tdesc: int): int; 46 dnew: fn(size: int, map: array of byte): ref Niladt; 47 compile: fn(mp: Nilmod, flag: int): int; 48}; 49