zasm - Z80 Assembler

Listings and Errors

In addition to the expected binary or hex Target filesoutput file, the generation of a Listings and Errorslisting can be requested with the Command line optionscommand line options '-1'. '-2', '-w' and '-v'.

'-1' enables list output in pass 1, thereas '-2' enables a Listings and Errorslisting in pass 2. '-v' requests a verbose Listings and Errorslisting, which includes the generated object code. '-w' instructs zasm to append a table of all Listings and Errors: Label listingdefined symbols to the Listings and Errorslisting.

Command line optionsCommand line option '-l' is used to set the file path for the Listings and Errorslisting. If omitted, then a default filename is derived from the Source filessource file name.

Plain listing

Example for a plain listing:
NMI:    push af
        push hl
        ld   hl,($5cb0)

        LD   A,H                ;falls HL=0, dann Kaltstart
        OR   L
        JR   NZ,M0070           ;sonst passiert nichts
        JP   (HL)
M0070:  POP  HL
        POP  AF
        RETN

NEXZEI: LD   HL,(CHADD)         ;Programmzeiger erhoehen
M0077:       INC HL
M0078:       LD (CHADD),HL      ;Adr. des naechsten zu
                                ;interpret. Zeichens
        LD   A,(HL)             ;neues Zeichen laden
        RET

Listing with object code

Example for a listing with included object code:
0131: 110100    calcspeed:  ld   de,1       ; pre-adjust
0134: 210040                ld   hl,tickercell
0137: 76                    halt
0138: 7E                    ld   a,(hl)
0139: 0605      cs1         ld   b,5        ; 7
013B: 05        cs2         dec  b          ; 5*4
013C: C23B01                jp   nz,cs2     ; 5*10
013F: 13                    inc  de         ; 6
0140: BE                    cp   a,(hl)     ; 7
0141: CA3901                jp   z,cs1      ; 12
0144: EB                    ex   hl,de
0145:           ; this took hl*100 ticks for 1/60 sec
0145:           ;  = hl*6,000 ticks for 1 sec
0145: 110600                ld   de,6
0148: CDB000                call mult
014B:           ;  = hl*1,000 ticks for 1 sec
014B: 11E803                ld   de,1000
014E: CDC900                call divide
0151:           ;  = hl*1,000,000 + de*1,000 ticks
0151: C9                    ret

Label listing

Example for a table of defined symbols:
; +++ Listings and Errors: Label listingdefined symbols +++
        headerflag      Pseudo instructions: defl, equequ $0000       ; =      0
        dataflag        Pseudo instructions: defl, equequ $00FF       ; =    255
        tCLEAR          Pseudo instructions: defl, equequ $00FD       ; =    253
        tLOAD           Pseudo instructions: defl, equequ $00EF       ; =    239
        tCODE           Pseudo instructions: defl, equequ $00AF       ; =    175
        tPRINT          Pseudo instructions: defl, equequ $00F5       ; =    245
        tUSR            Pseudo instructions: defl, equequ $00C0       ; =    192
        end10           Pseudo instructions: defl, equequ $0010       ; =     16
        end20           Pseudo instructions: defl, equequ $0024       ; =     36
        end30           Pseudo instructions: defl, equequ $0036       ; =     54
        programsize     Pseudo instructions: defl, equequ $0037       ; =     55
        codeend         Pseudo instructions: defl, equequ $5DD0       ; =  24016

Errors

If an Listings and Errors: Errorserror occurs, it is marked in the Listings and Errorslisting with *** Listings and Errors: Errorserror! ***. The assembler will abort if too many Listings and Errors: Errorserrors occur.

If you encountered only a few Listings and Errors: Errorserrors and if you have disabled the "List object code" option and if you have enabled Listings and Errorslisting to file for the pass, where the Listings and Errors: Errorserrors occured (most likely pass 1) then you can move the source into the trash, rename the list file and work on it as your new Source filessource file. You can easily find all the *** Listings and Errors: Errorserror! ***s and correct them, then start over again.

If you suspect the assembler is generating wrong object code, you can include the object code in the Listings and Errorslisting if you add the Command line optionscommand line option -v and list to file. Then you can easily verify the generated code. If there really is a General information: Bug reportsbug, send a General information: Bug reportsbug report to Kio.

Valid HTML   Valid CSS