file_ex/magic/Magdir/forth
2023-08-06 17:12:15 +01:00

82 lines
2.9 KiB
Text

#------------------------------------------------------------------------------
# $File: forth,v 1.4 2021/04/26 15:56:00 christos Exp $
# forth: file(1) magic for various Forth environments
# From: Lubomir Rintel <lkundrak@v3.sk>
#
# Has a FORTH stack diagram and something that looks very much like a FORTH
# multi-line word definition. Probably a FORTH source.
0 regex \[[:space:]]\\(([[:space:]].*)?\ --\ (.*[[:space:]])?\\)
>0 regex \^:\[[:space:]]
>>0 regex \^;$ FORTH program
!:mime text/x-forth
# Inline word definition complete with a stack diagram
0 regex \^:[[:space:]].*[[:space:]]\\(([[:space:]].*)?\ --\ (.*[[:space:]])?\\)[[:space:]].*[[:space:]];$ FORTH program
!:mime text/x-forth
# Various dictionary images used by OpenFirware FORTH environment
0 lelong 0xe1a00000
>8 lelong 0xe1a00000
# skip raspberry pi kernel image kernel7.img by checking for positive text length
>>24 lelong >0 ARM OpenFirmware FORTH Dictionary,
>>>24 lelong x Text length: %d bytes,
>>>28 lelong x Data length: %d bytes,
>>>32 lelong x Text Relocation Table length: %d bytes,
>>>36 lelong x Data Relocation Table length: %d bytes,
>>>40 lelong x Entry Point: %#08X,
>>>44 lelong x BSS length: %d bytes
0 string MP
>28 lelong 1 x86 OpenFirmware FORTH Dictionary,
>>4 leshort x %d blocks
>>2 leshort x + %d bytes,
>>6 leshort x %d relocations,
>>8 leshort x Header length: %d paragraphs,
>>10 leshort x Data Size: %d
>>12 leshort x - %d 4K pages,
>>14 lelong x Initial Stack Pointer: %#08X,
>>20 lelong x Entry Point: %#08X,
>>24 lelong x First Relocation Item: %d,
>>26 lelong x Overlay Number: %d,
>>18 leshort x Checksum: %#08X
0 belong 0x48000020 PowerPC OpenFirmware FORTH Dictionary,
>4 belong x Text length: %d bytes,
>8 belong x Data length: %d bytes,
>12 belong x BSS length: %d bytes,
>16 belong x Symbol Table length: %d bytes,
>20 belong x Entry Point: %#08X,
>24 belong x Text Relocation Table length: %d bytes,
>28 belong x Data Relocation Table length: %d bytes
0 lelong 0x10000007 MIPS OpenFirmware FORTH Dictionary,
>4 lelong x Text length: %d bytes,
>8 lelong x Data length: %d bytes,
>12 lelong x BSS length: %d bytes,
>16 lelong x Symbol Table length: %d bytes,
>20 lelong x Entry Point: %#08X,
>24 lelong x Text Relocation Table length: %d bytes,
>28 lelong x Data Relocation Table length: %d bytes
# Dictionary images used by minimal C FORTH environments, any platform,
# using native byte order.
# Weak.
#0 short 0x5820 cForth 16-bit Dictionary,
#>2 short x Serial: %#08X,
#>4 short x Dictionary Start: %#08X,
#>6 short x Dictionary Size: %d bytes,
#>8 short x User Area Start: %#08X,
#>10 short x User Area Size: %d bytes,
#>12 short x Entry Point: %#08X
0 long 0x581120 cForth 32-bit Dictionary,
>4 long x Serial: %#08X,
>8 long x Dictionary Start: %#08X,
>12 long x Dictionary Size: %d bytes,
>16 long x User Area Start: %#08X,
>20 long x User Area Size: %d bytes,
>24 long x Entry Point: %#08X