Activity for Intel 8080 Assembler

  • Jay Cotton Jay Cotton posted a comment on ticket #10

    Thanks for the catch. I'll have a go at it.

  • Daniel Snyder Daniel Snyder created ticket #10

    Semi-colons in quoted text are seen as comments

  • Jay Cotton Jay Cotton modified ticket #9

    extra tabs in listing file.

  • Jay Cotton Jay Cotton committed [12c39c]

    fix indent bug

  • Jay Cotton Jay Cotton posted a comment on ticket #9

    I have a fix for this. but the gates are locked.

  • Jay Cotton Jay Cotton posted a comment on ticket #9

    95 0140 C2 3D 01 jnz memset 96 0143 C9 ret 97 01 44 s171463 equ $ 98 0144 21 AC 04 lxi h,outfile 99 ;pzzp packfd "TEST.OUT" 100 01 47 pzzp equ $ 101 ; can't really see it with proportional spaceing ....

  • Jay Cotton Jay Cotton created ticket #9

    extra tabs in listing file.

  • J.B. J.B. posted a comment on ticket #8

    I spent some time today looking at the CP/M manual' ASM chapter: https://www.tramm.li/i8080/cpm22-m.pdf. It explicitly states that labels are case insensitive (page 79) and that machine instructions can be used in the operand field (page 82). So what I thought were questionable constructs are actually valid according to that assembler. If your aim is to be as compatible with old sources as possible, maybe it's worth perusing.

  • J.B. J.B. modified a comment on ticket #8

    You're right.. this code is not optimal. I've found a lot of questionable sources on altairclone.com that break your assembler. Another example is HEXLOAD.ASM which is trying to use the "ret" mnemonic to load the opcode for that instruction into L: lxi h,ret ;H=0, L=RET instruction I'm not sure if any of these things are really worth accomodating. I'm curious what assembler they're using that lets them get away with this. And yes, your assembler has been very helpful for experimenting with old sources...

  • J.B. J.B. modified a comment on ticket #8

    You're right.. this code is not optimal. I've found a lot of questionable sources on altairclone.com that break your assembler. Another example is HEXLOAD.ASM which is trying to use the "ret" mnemonic to load the opcode for that instruction into L: lxi h,ret ;H=0, L=RET instruction I'm not sure if any of these things are really worth accomodating. I'm curious what assembler they're using that lets them get away with this. And yes, your assembler has been very helpful for experimenting with old sources...

  • J.B. J.B. modified a comment on ticket #8

    You're right.. this code is not optimal. I've found a lot of questionable sources on altairclone.com that break your assembler. Another example is HEXLOAD.ASM which is trying to use the "ret" mnemonic to load the opcode for that instruction into H: lxi h,ret ;H=0, L=RET instruction I'm not sure if any of these things are really worth accomodating. I'm curious what assembler they're using that lets them get away with this. And yes, your assembler has been very helpful for experimenting with old sources...

  • J.B. J.B. posted a comment on ticket #8

    You're right.. this code is not optimal. I've found a lot of questionable sources on altairclone.com that break your assembler. Another example is HEXLOAD.ASM which is trying to use the "ret" mnemonic to load the opcode for that instruction into H: lxi h,ret ;H=0, L=RET instruction I'm not sure if any of these things are really worth accomodating. I'm curious what assembler they're using that lets them get away with this. And yes, your assembler has been very helpful for experimenting with old sources...

  • Jay Cotton Jay Cotton posted a comment on ticket #8

    Get your code and did a test. Yep. I think we are abusing the hex generator a bit. I modified your code to (what I think the correct text should be) ;--------------------------------------------------------------- ;DISK BUFFER IN RAM RIGHT AFTER THE LOADER ;--------------------------------------------------------------- BUFFER: DW 00H ;FILLS THE EPROM OUT WITH 00'S org 0 ;--------------------------------------------------------------- ; AND FINALLY THE STACK, WHICH GROWS DOWNWARD ;---------------------------------------------------------------...

  • Jay Cotton Jay Cotton posted a comment on ticket #8

    I'll have a look at your .asm file, but look at this one. org 0fff0h db "This is a test of" end produces $ asm8080 eom.asm -l *** Warning 17 in "eom.asm" @2: address wrapped at maxval $ cat eom.hex :00000001FF If I shorten it by 1 byte, it seems to be happy. So, over flow it busting the code....

  • J.B. J.B. posted a comment on ticket #7

    Confirmed that http://altairclone.com/downloads/roms/DBL.ASM now assembles succesfully with a warning. I agree it may not be what most people want so a command-line switch is probably a good idea.

  • J.B. J.B. posted a comment on ticket #8

    It's this version of dbl.asm that I modified not to wrap around: https://github.com/jblang/z80ctrl/blob/master/dbl.asm It still generates the all-zero lines after pulling down the patch. I think maybe the bug is only triggered if the last byte assembled falls exactly on FFFF. The original version of DBL.ASM from http://altairclone.com/downloads/roms/DBL.ASM does not reproduce this issue now and assembles with the warning as you stated in the other bug.

  • Jay Cotton Jay Cotton posted a comment on a wiki page

    A resent bug was logged that seems a bit dicey to me. The asm file has near the end. 396 FFFE BUFFER: DW 00H ;FILLS THE EPROM OUT WITH 00'S 0000 *** Warning 17 in "dbl.asm": address wrapped at maxval 397 0000 DS 84H 398 399 ;--------------------------------------------------------------- 400 ; AND FINALLY THE STACK, WHICH GROWS DOWNWARD 401 ;--------------------------------------------------------------- 402 0085 STSP: DS 08H ;SPACE FOR STACK 403 00 8D STACK: EQU $ 404 405 END This seems inocent...

  • Jay Cotton Jay Cotton posted a comment on ticket #8

    Do you have a test case for this? It looks like DBL.HEX from the side by side comparision. The newer (more broken) version of the assembler should have fixed this also. Can you retest.

  • Jay Cotton Jay Cotton posted a comment on ticket #7

    Pushed a fix for this. What I did was break the code that prevents the wrap around. Did add a warning. Just in case you did not intent to wrap the address around. I my opinion the above is a bad fix. I may add a run time switch to allow users to decide they want broken behavior.

  • Jay Cotton Jay Cotton committed [ae9a6d]

    Fixes for pc address wrap around

  • J.B. J.B. posted a comment on ticket #6

    I filed new bugs for the other problems.

  • J.B. J.B. created ticket #8

    Possible overflow bug in hex generator

  • J.B. J.B. created ticket #7

    Error when PC goes past FFFF

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    braceing like this ('I'+80h), gets around the problem.

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    The db '1'+80h looks like there is a missing call to eval. Will look at it more.

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    Did not see the hex file problem on altmon. But the hex dumper may have an overflow bug.

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    Thats a new bug. Can you file a ticket on it.... On Mon, Jan 15, 2018 at 3:02 PM, J.B. jblang@users.sf.net wrote: I fixed it by hardcoding STACK: EQU 008CH. However, I'm also seeing something weird with the hex file that is generated. The 256 bytes from the program are in there twice (once at the beginning and once at the end: :10FF00002113FF11002C0EEB7E1223130DC208FFEC :10FF1000C3002CF3AFD3222FD3233E2CD3223E0396 :10FF2000D310DBFFE6100F0FC610D31031792DAFC1 :10FF3000D308DB08E608C21C2C3E04D309C3382CC6...

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    lxi h,cmdTbl+100h-2*'B' ;'B' indexes to start of cmdtbl The bug here is the assumption that 2 * 'B' get evaluated first befor cmdTbl+100h. The fix in the source is as stated cmdTbl+100h-(2*'B') I'll have to think on this for a while to find a solution that works with the delep parser and stack down eval. While looking at this bug I also see another one 'I'+80h is not working correctly.

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    So the basic issues with 'I' + 80h and 2 * 'B' is operator presidence. The parser is chewing through the input text left to right one item at a time.

  • J.B. J.B. posted a comment on ticket #6

    I fixed it by hardcoding STACK: EQU 008CH. However, I'm also seeing something weird with the hex file that is generated. The 256 bytes from the program are in there twice (once at the beginning and once at the end: :10FF00002113FF11002C0EEB7E1223130DC208FFEC :10FF1000C3002CF3AFD3222FD3233E2CD3223E0396 :10FF2000D310DBFFE6100F0FC610D31031792DAFC1 :10FF3000D308DB08E608C21C2C3E04D309C3382CC6 :10FF4000DB08E602C22D2C3E02D309DB08E640C2E4 :10FF50002D2C11000006003E10F5D5C5D511868068 :10FF600021EB2CDB091FDA502CE61FB8C2502CDB2A...

  • J.B. J.B. modified a comment on ticket #6

    Yes, I found the case mismatch and fixed it in my source. I am assuming whatever was originally used to assemble it was not case senstive. I found another weird one that will not assemble: http://altairclone.com/downloads/roms/DBL.ASM. asm8080 will not accept it because the DS 84H and DS 08H at the end causes it to go past the top of RAM at FFFF: *** Error 17 in "DBL1.ASM" @397: Program counter over range! (0) *** Error 17 in "DBL1.ASM" @402: Program counter over range! (132) I changed 84H and 08H...

  • J.B. J.B. posted a comment on ticket #6

    Yes, I found the case mismatch and fixed it in my source. I am assuming whatever was originally used to assemble it was not case senstive. I found another weird one that will not assemble: http://altairclone.com/downloads/roms/DBL.ASM. asm8080 will not accept it because the DS 84H and DS 08H at the end causes it to go past the top of RAM at FFFF: *** Error 17 in "DBL1.ASM" @397: Program counter over range! (0) *** Error 17 in "DBL1.ASM" @402: Program counter over range! (132) I changed 84H and 08H...

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    I have confirmed your bug report. The hexLoad bug, is a source error. The label is called hexload (lower case L) I wonder how that gets through the assemblers... Things like 'I'+80h should work, so I'll have a go at those things first...

  • Jay Cotton Jay Cotton posted a comment on ticket #6

    Thanks for the report. I'll take a look at this, and get that source file to play with. There have been a few bugs fixed in this area, looks like I missed a few. jc On Fri, Jan 12, 2018 at 7:33 PM, J.B. jblang@users.sf.net wrote: [bugs:#6] https://sourceforge.net/p/asm8080/bugs/6/ Problems with altmon.asm* Status: open Group: v1.0 (example) Created: Sat Jan 13, 2018 03:33 AM UTC by J.B. Last Updated: Sat Jan 13, 2018 03:33 AM UTC Owner: nobody I wanted to report a source that won't assemble cleanly:...

  • J.B. J.B. created ticket #6

    Problems with altmon.asm

  • Jay Cotton Jay Cotton committed [d38a80]

    fix equ error

  • Jay Cotton Jay Cotton committed [7061f7]

    merge

  • Jay Cotton Jay Cotton committed [c837cf]

    fix major math bug

  • Jay Cotton Jay Cotton committed [d336f4]

    test update

  • Jay Cotton Jay Cotton committed [aa38e3]

    fix signed multiply

  • Jay Cotton Jay Cotton committed [5f1f7d]

    correct and anotate test case

  • Jay Cotton Jay Cotton committed [cce0b9]

    fixup logics

  • Jay Cotton Jay Cotton committed [2cc7be]

    more bug fixing

  • Jay Cotton Jay Cotton committed [f6b62d]

    added new bugs

  • Jay Cotton Jay Cotton committed [0624e6]

    fix a bunch of corner cases

  • Jay Cotton Jay Cotton committed [a13706]

    fixed up test case

  • Jay Cotton Jay Cotton committed [019bbf]

    New test case from Jos

  • Jay Cotton Jay Cotton committed [03f976]

    correct als8 to match Intel assembler syntax

  • Jay Cotton Jay Cotton committed [65427c]

    gack, I can't type

  • Jay Cotton Jay Cotton committed [b5391f]

    fix typeo

  • Jay Cotton Jay Cotton committed [26851f]

    added date and time to version

  • Jay Cotton Jay Cotton committed [02c9e7]

    test files

  • Jay Cotton Jay Cotton committed [948f85]

    log fix

  • Jay Cotton Jay Cotton committed [c1370f]

    Fix copyright

  • Jay Cotton Jay Cotton committed [19cbea]

    Update to current code base

  • Jay Cotton Jay Cotton committed [091297]

    Cleanup code base

  • Jay Cotton Jay Cotton committed [89899c]

    Moving code to Mercurial

  • Jay Cotton Jay Cotton committed [a0d0c9]

    Moving to HG

  • Jay Cotton Jay Cotton committed [2349d3]

    initial commit

1