16fca56fbSSascha Wildner 26fca56fbSSascha Wildner#------------------------------------------------------------------------------ 3*614728caSSascha Wildner# $File: forth,v 1.4 2021/04/26 15:56:00 christos Exp $ 46fca56fbSSascha Wildner# forth: file(1) magic for various Forth environments 56fca56fbSSascha Wildner# From: Lubomir Rintel <lkundrak@v3.sk> 66fca56fbSSascha Wildner# 76fca56fbSSascha Wildner 86fca56fbSSascha Wildner# Has a FORTH stack diagram and something that looks very much like a FORTH 96fca56fbSSascha Wildner# multi-line word definition. Probably a FORTH source. 106fca56fbSSascha Wildner0 regex \[[:space:]]\\(([[:space:]].*)?\ --\ (.*[[:space:]])?\\) 116fca56fbSSascha Wildner>0 regex \^:\[[:space:]] 126fca56fbSSascha Wildner>>0 regex \^;$ FORTH program 136fca56fbSSascha Wildner!:mime text/x-forth 146fca56fbSSascha Wildner 156fca56fbSSascha Wildner# Inline word definition complete with a stack diagram 166fca56fbSSascha Wildner0 regex \^:[[:space:]].*[[:space:]]\\(([[:space:]].*)?\ --\ (.*[[:space:]])?\\)[[:space:]].*[[:space:]];$ FORTH program 176fca56fbSSascha Wildner!:mime text/x-forth 186fca56fbSSascha Wildner 19970935fdSSascha Wildner# Various dictionary images used by OpenFirware FORTH environment 206fca56fbSSascha Wildner 216fca56fbSSascha Wildner0 lelong 0xe1a00000 22970935fdSSascha Wildner>8 lelong 0xe1a00000 23970935fdSSascha Wildner# skip raspberry pi kernel image kernel7.img by checking for positive text length 24970935fdSSascha Wildner>>24 lelong >0 ARM OpenFirmware FORTH Dictionary, 25970935fdSSascha Wildner>>>24 lelong x Text length: %d bytes, 26970935fdSSascha Wildner>>>28 lelong x Data length: %d bytes, 27970935fdSSascha Wildner>>>32 lelong x Text Relocation Table length: %d bytes, 28970935fdSSascha Wildner>>>36 lelong x Data Relocation Table length: %d bytes, 29*614728caSSascha Wildner>>>40 lelong x Entry Point: %#08X, 30970935fdSSascha Wildner>>>44 lelong x BSS length: %d bytes 316fca56fbSSascha Wildner 326fca56fbSSascha Wildner0 string MP 336fca56fbSSascha Wildner>28 lelong 1 x86 OpenFirmware FORTH Dictionary, 346fca56fbSSascha Wildner>>4 leshort x %d blocks 356fca56fbSSascha Wildner>>2 leshort x + %d bytes, 366fca56fbSSascha Wildner>>6 leshort x %d relocations, 376fca56fbSSascha Wildner>>8 leshort x Header length: %d paragraphs, 386fca56fbSSascha Wildner>>10 leshort x Data Size: %d 396fca56fbSSascha Wildner>>12 leshort x - %d 4K pages, 40*614728caSSascha Wildner>>14 lelong x Initial Stack Pointer: %#08X, 41*614728caSSascha Wildner>>20 lelong x Entry Point: %#08X, 426fca56fbSSascha Wildner>>24 lelong x First Relocation Item: %d, 436fca56fbSSascha Wildner>>26 lelong x Overlay Number: %d, 44*614728caSSascha Wildner>>18 leshort x Checksum: %#08X 456fca56fbSSascha Wildner 466fca56fbSSascha Wildner0 belong 0x48000020 PowerPC OpenFirmware FORTH Dictionary, 476fca56fbSSascha Wildner>4 belong x Text length: %d bytes, 486fca56fbSSascha Wildner>8 belong x Data length: %d bytes, 496fca56fbSSascha Wildner>12 belong x BSS length: %d bytes, 506fca56fbSSascha Wildner>16 belong x Symbol Table length: %d bytes, 51*614728caSSascha Wildner>20 belong x Entry Point: %#08X, 526fca56fbSSascha Wildner>24 belong x Text Relocation Table length: %d bytes, 536fca56fbSSascha Wildner>28 belong x Data Relocation Table length: %d bytes 546fca56fbSSascha Wildner 556fca56fbSSascha Wildner0 lelong 0x10000007 MIPS OpenFirmware FORTH Dictionary, 566fca56fbSSascha Wildner>4 lelong x Text length: %d bytes, 576fca56fbSSascha Wildner>8 lelong x Data length: %d bytes, 586fca56fbSSascha Wildner>12 lelong x BSS length: %d bytes, 596fca56fbSSascha Wildner>16 lelong x Symbol Table length: %d bytes, 60*614728caSSascha Wildner>20 lelong x Entry Point: %#08X, 616fca56fbSSascha Wildner>24 lelong x Text Relocation Table length: %d bytes, 626fca56fbSSascha Wildner>28 lelong x Data Relocation Table length: %d bytes 636fca56fbSSascha Wildner 646fca56fbSSascha Wildner# Dictionary images used by minimal C FORTH environments, any platform, 656fca56fbSSascha Wildner# using native byte order. 666fca56fbSSascha Wildner 676fca56fbSSascha Wildner# Weak. 686fca56fbSSascha Wildner#0 short 0x5820 cForth 16-bit Dictionary, 69*614728caSSascha Wildner#>2 short x Serial: %#08X, 70*614728caSSascha Wildner#>4 short x Dictionary Start: %#08X, 716fca56fbSSascha Wildner#>6 short x Dictionary Size: %d bytes, 72*614728caSSascha Wildner#>8 short x User Area Start: %#08X, 736fca56fbSSascha Wildner#>10 short x User Area Size: %d bytes, 74*614728caSSascha Wildner#>12 short x Entry Point: %#08X 756fca56fbSSascha Wildner 766fca56fbSSascha Wildner0 long 0x581120 cForth 32-bit Dictionary, 77*614728caSSascha Wildner>4 long x Serial: %#08X, 78*614728caSSascha Wildner>8 long x Dictionary Start: %#08X, 796fca56fbSSascha Wildner>12 long x Dictionary Size: %d bytes, 80*614728caSSascha Wildner>16 long x User Area Start: %#08X, 816fca56fbSSascha Wildner>20 long x User Area Size: %d bytes, 82*614728caSSascha Wildner>24 long x Entry Point: %#08X 83