NAME=sega megadrive rom
FILE=bins/smd/LiquidSpaceDodgerV3.bin
CMDS=<<EOF
i~!fd
echo ---
ia
echo ---
pxw 4 @ 0x10100
echo ---
iH
echo ---
oml
EOF
EXPECT=<<EOF
file     bins/smd/LiquidSpaceDodgerV3.bin
size     0x272f8
humansz  156.7K
mode     r-x
format   smd
iorw     false
block    0x100
type     ROM
arch     m68k
cpu      N/A
features N/A
baddr    0x00000000
binsz    0x000272f8
bintype  N/A
bits     32
class    SEGA MEGASIS    
compiler N/A
dbg_file N/A
endian   BE
hdr.csum N/A
guid     N/A
intrp    N/A
laddr    0x00000000
lang     N/A
machine  Sega Megadrive
maxopsz  22
minopsz  2
os       smd
cc       N/A
pcalign  2
rpath    N/A
subsys   
stripped false
havecode true
va       true
static   true
linenum  false
lsyms    false
canary   false
pie      false
relrocs  false
nx       false
---
[Info]
arch     m68k
cpu      N/A
features N/A
baddr    0x00000000
binsz    0x000272f8
bintype  N/A
bits     32
class    SEGA MEGASIS    
compiler N/A
dbg_file N/A
endian   BE
hdr.csum N/A
guid     N/A
intrp    N/A
laddr    0x00000000
lang     N/A
machine  Sega Megadrive
maxopsz  22
minopsz  2
os       smd
cc       N/A
pcalign  2
rpath    N/A
subsys   
stripped false
havecode true
va       true
static   true
linenum  false
lsyms    false
canary   false
pie      false
relrocs  false
nx       false

[Imports]
nth vaddr bind type lib name 
-----------------------------

[Entries]
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00000200 0x00000200 ---------- ---------- program

[Exports]
nth paddr vaddr bind type size lib name 
----------------------------------------

[Classes]
address min max name super 
---------------------------

[Symbols]
nth      paddr      vaddr bind type size lib name      
-------------------------------------------------------
  0 0x00fffff0 0x00fffff0 NONE NONE    4     SSP
  1 0x00000200 0x00000200 NONE NONE    4     Reset
  2 0x00001300 0x00001300 NONE NONE    4     BusErr
  3 0x0000130c 0x0000130c NONE NONE    4     AdrErr
  4 0x000012a0 0x000012a0 NONE NONE    4     InvOpCode
  5 0x000012ac 0x000012ac NONE NONE    4     DivBy0
  6 0x000012b8 0x000012b8 NONE NONE    4     Check
  7 0x000012c4 0x000012c4 NONE NONE    4     TrapV
  8 0x000012d0 0x000012d0 NONE NONE    4     GPF
  9 0x000012dc 0x000012dc NONE NONE    4     Trace
 10 0x000012e8 0x000012e8 NONE NONE    4     Reserv0
 11 0x000012f4 0x000012f4 NONE NONE    4     Reserv1
 12 0x00001294 0x00001294 NONE NONE    4     Reserv2
 13 0x444f4e27 0x444f4e27 NONE NONE    4     Reserv3
 14 0x54204c4f 0x54204c4f NONE NONE    4     Reserv4
 15 0x4f4b2041 0x4f4b2041 NONE NONE    4     BadInt
 16 0x54205448 0x54205448 NONE NONE    4     Reserv10
 17 0x49532100 0x49532100 NONE NONE    4     Reserv11
 18 0x00001294 0x00001294 NONE NONE    4     Reserv12
 19 0x00001294 0x00001294 NONE NONE    4     Reserv13
 20 0x00001294 0x00001294 NONE NONE    4     Reserv14
 21 0x00001294 0x00001294 NONE NONE    4     Reserv15
 22 0x00001294 0x00001294 NONE NONE    4     Reserv16
 23 0x00001294 0x00001294 NONE NONE    4     Reserv17
 24 0x00001294 0x00001294 NONE NONE    4     BadIRQ
 25 0x00001294 0x00001294 NONE NONE    4     IRQ1
 26 0x00001294 0x00001294 NONE NONE    4     EXT
 27 0x00001294 0x00001294 NONE NONE    4     IRQ3
 28 0x00000bb2 0x00000bb2 NONE NONE    4     HBLANK
 29 0x00001294 0x00001294 NONE NONE    4     IRQ5
 30 0x00000bb8 0x00000bb8 NONE NONE    4     VBLANK
 31 0x00001294 0x00001294 NONE NONE    4     IRQ7
 32 0x00001294 0x00001294 NONE NONE    4     Trap0
 33 0x00001294 0x00001294 NONE NONE    4     Trap1
 34 0x00001294 0x00001294 NONE NONE    4     Trap2
 35 0x00001294 0x00001294 NONE NONE    4     Trap3
 36 0x00001294 0x00001294 NONE NONE    4     Trap4
 37 0x00001294 0x00001294 NONE NONE    4     Trap5
 38 0x00001294 0x00001294 NONE NONE    4     Trap6
 39 0x00001294 0x00001294 NONE NONE    4     Trap7
 40 0x00001294 0x00001294 NONE NONE    4     Trap8
 41 0x00001294 0x00001294 NONE NONE    4     Trap9
 42 0x00001294 0x00001294 NONE NONE    4     Trap10
 43 0x00001294 0x00001294 NONE NONE    4     Trap11
 44 0x00001294 0x00001294 NONE NONE    4     Trap12
 45 0x00001294 0x00001294 NONE NONE    4     Trap13
 46 0x00001294 0x00001294 NONE NONE    4     Trap14
 47 0x00001294 0x00001294 NONE NONE    4     Trap15
 48 0x00001294 0x00001294 NONE NONE    4     Reserv30
 49 0x00001294 0x00001294 NONE NONE    4     Reserv31
 50 0x00001294 0x00001294 NONE NONE    4     Reserv32
 51 0x00001294 0x00001294 NONE NONE    4     Reserv33
 52 0x00001294 0x00001294 NONE NONE    4     Reserv34
 53 0x00001294 0x00001294 NONE NONE    4     Reserv35
 54 0x00001294 0x00001294 NONE NONE    4     Reserv36
 55 0x00001294 0x00001294 NONE NONE    4     Reserv37
 56 0x00001294 0x00001294 NONE NONE    4     Reserv38
 57 0x00001294 0x00001294 NONE NONE    4     Reserv39
 58 0x00001294 0x00001294 NONE NONE    4     Reserv3A
 59 0x00001294 0x00001294 NONE NONE    4     Reserv3B
 60 0x00001294 0x00001294 NONE NONE    4     Reserv3C
 61 0x00001294 0x00001294 NONE NONE    4     Reserv3D
 62 0x00001294 0x00001294 NONE NONE    4     Reserv3E
 63 0x00001294 0x00001294 NONE NONE    4     Reserv3F

[Sections]
     paddr    size      vaddr   vsize align perm name     type flags 
---------------------------------------------------------------------
0x00000000   0x100 0x00000000   0x100   0x0 -r-- .vectors      
0x00000100   0x100 0x00000100   0x100   0x0 -r-- .header       
0x00000200 0x272f8 0x00000200 0x272f8   0x0 -r-x .text         
----------     0x0 0x00ff0000  0xfdff   0x0 -rwx .ram          

[Memory]
name size address flags mirror 
-------------------------------

[Strings]
paddr vaddr len size section type string 
-----------------------------------------

---
0x00010100  0x00537413                                   .St.
---
smd:
  vectors:
    SSP: 0xfffff0
    Reset: 0x200
    BusErr: 0x1300
    AdrErr: 0x130c
    InvOpCode: 0x12a0
    DivBy0: 0x12ac
    Check: 0x12b8
    TrapV: 0x12c4
    GPF: 0x12d0
    Trace: 0x12dc
    Reserv0: 0x12e8
    Reserv1: 0x12f4
    Reserv2: 0x1294
    Reserv3: 0x444f4e27
    Reserv4: 0x54204c4f
    BadInt: 0x4f4b2041
    Reserv10: 0x54205448
    Reserv11: 0x49532100
    Reserv12: 0x1294
    Reserv13: 0x1294
    Reserv14: 0x1294
    Reserv15: 0x1294
    Reserv16: 0x1294
    Reserv17: 0x1294
    BadIRQ: 0x1294
    IRQ1: 0x1294
    EXT: 0x1294
    IRQ3: 0x1294
    HBLANK: 0xbb2
    IRQ5: 0x1294
    VBLANK: 0xbb8
    IRQ7: 0x1294
    Trap0: 0x1294
    Trap1: 0x1294
    Trap2: 0x1294
    Trap3: 0x1294
    Trap4: 0x1294
    Trap5: 0x1294
    Trap6: 0x1294
    Trap7: 0x1294
    Trap8: 0x1294
    Trap9: 0x1294
    Trap10: 0x1294
    Trap11: 0x1294
    Trap12: 0x1294
    Trap13: 0x1294
    Trap14: 0x1294
    Trap15: 0x1294
    Reserv30: 0x1294
    Reserv31: 0x1294
    Reserv32: 0x1294
    Reserv33: 0x1294
    Reserv34: 0x1294
    Reserv35: 0x1294
    Reserv36: 0x1294
    Reserv37: 0x1294
    Reserv38: 0x1294
    Reserv39: 0x1294
    Reserv3A: 0x1294
    Reserv3B: 0x1294
    Reserv3C: 0x1294
    Reserv3D: 0x1294
    Reserv3E: 0x1294
    Reserv3F: 0x1294
  header:
    System: "SEGA MEGASIS    "
    Publisher: "(C)2015 James L."
    DomesticTitle: "Liquid Space Dodger V3                          "
    ExportTitle: "Liquid Space Dodger V3                          "
    SerialNumber: "GM 01234567-89"
    CheckSum: 0xdead
    Peripherials: "J               "
    RomStart: 0x0
    RomEnd: 0x272f8
    RamStart: 0xff0000
    RamEnd: 0xffffff
    SramCode: "20 20 20 20 20 20 20 20 20 20 20 20             |                |"
    ModemCode: "20 20 20 20 20 20 20 20 20 20 20 20             |                |"
    Reserved: |
      54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6e |This program con|
      74 61 69 6e 73 20 62 6c 61 73 74 20 70 72 6f 63 |tains blast proc|
      65 73 73 69 6e 67 21 20                         |essing!         |
    CountryCode: "JUE             "

---
 1 fd: 3 +0x00000000 0x00000000 - 0x000000ff r-- fmap..vectors
 2 fd: 3 +0x00000100 0x00000100 - 0x000001ff r-- fmap..header
 3 fd: 3 +0x00000200 0x00000200 * 0x000274f7 r-x fmap..text
 4 fd: 4 +0x00000000 0x00ff0000 - 0x00fffdfe rwx mmap..ram
EOF
RUN

NAME=smd strings
FILE=malloc://256k
CMDS=<<EOF
. scripts/smd_strings.rz
e bin.str.filter=U
izz
EOF
EXPECT=<<EOF
     paddr      vaddr len size section type  string                                                                                                                                                           
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0x00000100 0x00000100 160  161         ascii SEGA GENESIS    (C)SEGA 1995.MARCART. BRADESCO                                  CART. BRADESCO                                  GM 00000001-00W`J               
0x00005d18 0x00005d18  12   13         ascii BEBBBB|\t~\t0\a
0x00007974 0x00007974  24   25         ascii AT&FV0B0+FCLASS=1;+FF=1\r
0x00007ad9 0x00007ad9  15   16         ascii NMEMORIA CHEIA.
0x00007ae9 0x00007ae9  13   14         ascii SEM PORTADORA
0x00007af7 0x00007af7  27   28         ascii INICIANDO TESTE AGUARDE !!!
0x00007b13 0x00007b13  13   14         ascii LINHA OCUPADA
0x00007b21 0x00007b21  10   11         ascii NAO ATENDE
0x00007b2c 0x00007b2c  16   17         ascii SEM TOM DISCAGEM
0x00007b3d 0x00007b3d  18   19         ascii DISCANDO NOVAMENTE
0x00007b50 0x00007b50  12   13         ascii CONEXAO OK !
0x00007b5d 0x00007b5d  13   14         ascii OPER ABORTADA
0x00007b6b 0x00007b6b  19   20         ascii ERRO NOVA TENTATIVA
0x00007b7f 0x00007b7f  19   20         ascii LINHA DESCONECTADA.
0x00007ba3 0x00007ba3  19   20         ascii ERRO DE COMUNICACAO
0x00007bb7 0x00007bb7  16   17         ascii DADOS INCORRETOS
0x00007bc8 0x00007bc8  17   18         ascii ENVIANDO DADOS...
0x00007bda 0x00007bda  15   16         ascii RECEBENDO DADOS
0x00007bea 0x00007bea  18   19         ascii FALHA 3 TENTATIVAS
0x00007bfd 0x00007bfd  19   20         ascii ERRO NOVA TENTATIVA
0x00007c11 0x00007c11  13   14         ascii TIMEOUT DADOS
0x00007c1f 0x00007c1f  14   15         ascii FINAL RECEPCAO
0x00007c33 0x00007c33  16   17         ascii ERRO DE CHECKSUM
0x00007c44 0x00007c44  18   19         ascii TRANSACAO INEXISTE
0x00007c57 0x00007c57  23   24         ascii DATA,HIST.,DOCTO,VALOR,
0x00007c74 0x00007c74  15   16         ascii SALDO VINCULADO
0x00007c8d 0x00007c8d  45   46         ascii SALDO DISPONIVEL,SALDO VINCULADO,SALDO TOTAL,
0x00007ccd 0x00007ccd  14   15         ascii  ERRO CLASS 1 
0x00007cf3 0x00007cf3  15   16         ascii SALDO ATUAL    
0x00007d03 0x00007d03  64   65         ascii DATA,SALDO TOTAL,DATA,SALDO VINCULADO,DATA,SALDO C/L PROGRAMADO,
0x00007d44 0x00007d44  20   21         ascii FALHA DE COMUNICACAO
0x00007d59 0x00007d59  15   16         ascii HOST INOPERANTE
0x00007d69 0x00007d69  13   14         ascii TIMEOUT  HOST
0x00007d77 0x00007d77  19   20         ascii ERRO DE COMUNICACAO
0x00007d8b 0x00007d8b  18   19         ascii AGENCIA FORA DO AR
0x00007d9e 0x00007d9e  21   22         ascii TRANSMISSAO CANCELADA
0x00007db4 0x00007db4  17   18         ascii SENHA NAO GRAVADA
0x00007dc6 0x00007dc6  14   15         ascii SENHA INVALIDA
0x00007dd5 0x00007dd5  13   14         ascii C/C BLOQUEADA
0x00007de3 0x00007de3  22   23         ascii EXTRATO NAO ENCONTRADO
0x00007dfa 0x00007dfa  15   16         ascii SEM LANCAMENTOS
0x00007e0a 0x00007e0a  26   27         ascii DIA DE VENCIMENTO INVALIDO
0x00007e25 0x00007e25  23   24         ascii MES DO EXTRATO INVALIDO
0x00007e3d 0x00007e3d  14   15         ascii FIM DE EXTRATO
0x00007e4c 0x00007e4c  17   18         ascii AGENCIA INCORRETA
0x00007e5e 0x00007e5e  23   24         ascii CADASTRO EM ATUALIZACAO
0x00007e76 0x00007e76  17   18         ascii CONTA INEXISTENTE
0x00007e88 0x00007e88  19   20         ascii EXTRATO INEXISTENTE
0x00007eaa 0x00007eaa  17   18         ascii CARTAO DE CREDITO
0x00007ebc 0x00007ebc  19   20         ascii LANCAMENTOS FUTUROS
0x00007ed0 0x00007ed0  24   25         ascii LANCAMENTOS DIA ANTERIOR
0x00007ee9 0x00007ee9  14   15         ascii  F.A.F.  FACIL
0x00007ef8 0x00007ef8  12   13         ascii AT+FCLASS=1\r
0x00007f23 0x00007f23  10   11         ascii AT+FTM=48\r
0x00007f2e 0x00007f2e  10   11         ascii AT+FTM=24\r
0x00007f39 0x00007f39  10   11         ascii AT+FRM=48\r
0x00007f44 0x00007f44  10   11         ascii AT+FRM=24\r
0x00007f4f 0x00007f4f  12   13         ascii DIS FRAME OK
0x00007f5c 0x00007f5c  13   14         ascii ERRO RX FRAME
0x00007f8a 0x00007f8a  14   15         ascii WAIT DIS FRAME
0x00007f99 0x00007f99  14   15         ascii ERRO:FRAME DIS
0x00007fa8 0x00007fa8  10   11         ascii ERRO FTH=3
0x00007fbc 0x00007fbc  17   18         ascii <TCF> TRAINING...
0x00007fd4 0x00007fd4  11   12         ascii RECEPCAO...
0x0000803b 0x0000803b  12   13         ascii ERRO PROG RX
0x00008048 0x00008048  18   19         ascii RECEBENDO DADOS...
0x0000806a 0x0000806a  16   17         ascii TRAINING 4800...
0x0000807b 0x0000807b  16   17         ascii TRAINING 2400...
0x0000808c 0x0000808c  11   12         ascii TRAINING OK
0x00008098 0x00008098  13   14         ascii ERRO TRAINING
0x000080c8 0x000080c8  17   18         ascii FALHA:COMUNICACAO
0x000080f8 0x000080f8  10   11         ascii ERRO BLOCO
0x00008103 0x00008103  25   26         ascii CONTA OU DIGITO INCORRETO
0x0000811d 0x0000811d  27   28         ascii CODIGO DA AGENCIA INCORRETO
0x00008139 0x00008139  35   36         ascii DATA DO CARTAO DE CREDITO INCORRETA
0x0000818c 0x0000818c  52   53         ascii 001002003005010011004020021022030031999040041042043N
0x0000a9bf 0x0000a9bf  12   13         ascii IJKLMNOPQRST
0x0000dfff 0x0000dfff  43   44         ascii >?@ABCDEFGHIJKLMNOPQQRSTULKJIHGFEDCBA@?>VWX
0x0000e2ba 0x0000e2ba  11   12         ascii CDEFGHIJKL*
0x0000e2ce 0x0000e2ce  11   12         ascii MNOPQORSPT*
0x0000e44d 0x0000e44d  21   22         ascii AB,CDEFGHIJKLMNOPQRST
0x0000e463 0x0000e463  14   15         ascii QUVWXWYZ[\]^_R
0x0000e707 0x0000e707  25   26         ascii #<=>?@ABC)(D\aEFGHIJKLMNOP
0x0000e723 0x0000e723  12   13         ascii #QRSTUVWRXYZ
0x0000e8b8 0x0000e8b8  15   16         ascii 6789:;<=>?@ABCD
0x0000ef10 0x0000ef10  12   13         ascii >?@>ABCDEF@G
0x0000ef1e 0x0000ef1e  12   13         ascii HIJKLJMNOPQR
0x0000ef2c 0x0000ef2c  12   13         ascii STUVWUXYZ[\]
0x000166ae 0x000166ae  16   17         ascii SUSU355355S53553
0x00016947 0x00016947  13   14         ascii 5S5S3UU355U53
0x00016963 0x00016963  10   11         ascii U3UU5SS3S3
0x00017d0e 0x00017d0e  14   15         ascii DEAQDEATDEATDE
0x000194cc 0x000194cc  14   15         ascii DEAQDEATDEATDE
0x0001acde 0x0001acde  14   15         ascii DEAQDEATDEATDE
0x0001c542 0x0001c542  14   15         ascii DEAQDEATDEATDE
0x0001d8aa 0x0001d8aa  12   13         ascii DDEQTDDEUUUU
0x0002036c 0x0002036c  63   64         ascii 3331333333333333DDDADDDADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDADDDADDD
EOF
RUN
