• Assembler for RISCV added to git.

    From albert@albert@spenarnc.xs4all.nl to comp.lang.forth on Thu Nov 20 15:51:34 2025
    From Newsgroup: comp.lang.forth

    In

    https://github.com/albertvanderhorst/ciasdis

    you find the assembler disassembler for
    DEC-alpha 8080 i8086 i30386 Pentiumn AMD

    ################## RISCV assembler/disassembler ##################
    A new addition is assembler annex disassembler for RISCV.
    Only integer instructions for the moment.

    ################## 64 bit executable reversed #####################

    Another example test for reverse engineering has been added.
    The 64 bit ciforth for AMD is disassembled and assembled to the same
    binary. It helped that I knew this source inside out.
    The Forth plug-in succeeds in separating data and code (hundreds
    of boundaries), and extracting labels from the binary. 1)
    The resulting source can be modified, even if all labels move
    as result of an insertion.
    E.g. the result for DROP :

    ( 0040,24A8 ) :n_DROP dq 4

    ( 0040,24B0 ) d$ "DROP" 90
    ( 0040,24B5 ) d$ 90 90 90

    ( 0040,24B8 ) :x_DROP dq c_DROP c_DROP 0 x_OVER n_DROP 0 0

    ( 0040,24F0 ) :c_DROP POP|X, AX|
    ( 0040,24F1 ) Q: LODS, X'|
    ( 0040,24F3 ) JMPO, ZO| [AX]
    ( 0040,24F5 ) d$ 90 90 90

    E.g. the result for TASK :
    ( 0040,D9E8 ) :n_TASK dq 4

    ( 0040,D9F0 ) d$ "TASK" 90
    ( 0040,D9F5 ) d$ 90 90 90

    ( 0040,D9F8 ) :x_TASK dq docol c_TASK 0 x_.SIGNON n_TASK 0 0
    ( 0040,DA30 ) :c_TASK dq x_(;)

    In the .s file this looks like (compacted)
    11181 # ************
    11182 # * TASK *
    11183 # ************
    11184 #
    11185 .balign 8,0x00
    11187 db58 04000000 N_TASK: .quad 4
    11188 db60 5441534B .ASCII "TASK"
    11189 db64 00000000 .balign 8,0x00
    11191 db68 00000000 TASK: .quad DOCOL
    11192 db70 00000000 .quad TASK+HEADSIZE
    11193 db78 00000000 .quad 0x0
    11194 db80 00000000 .quad SIGNON
    11195 db88 00000000 .quad N_TASK
    11196 db90 00000000 .quad 0
    11197 db98 00000000 .quad 0
    11198
    11199 dba0 00000000 .quad SEMIS

    ################## colorforth ############################
    Previous efforts for colorforth has been added to the directory
    colorforth. This has become of interest lately because Charles Moore
    bemoans that Windows has apparently refused to run colorforth anymore.
    There are 2 archives with sources and assembler/disassembler that
    you can run: color.tgz and colorsmall.tgz.
    Yes that is the original that sits on a bootsector of a floppy.

    Then there is an emulator for GA144 that runs on linux/wine enhanced
    with tools to handle colorforth as ascii source and vim tools to
    see it in color.

    1) No not debug symbols, from the Forth headers.
    --
    The Chinese government is satisfied with its military superiority over USA.
    The next 5 year plan has as primary goal to advance life expectancy
    over 80 years, like Western Europe.
    --- Synchronet 3.21a-Linux NewsLink 1.2