0 Members and 2 Guests are viewing this topic.
"prgmNAME"Asm(E7EF7C4E
ld hl, ptrToNamerst rMOV9TOOP1bcall(_ExecutePrgm)
I've got an epic solution and optimization for you all. I can both eliminate the problem with Copy( and reduce the code size by about ten bytes.Code: [Select]"prgmNAME"Asm(E7EF7C4EBAM! One-liner.For curious:Code: [Select]ld hl, ptrToNamerst rMOV9TOOP1bcall(_ExecutePrgm)Also, to recap: The peep-hold optimizer is causing crashes with the Copy( command sometimes. You can stop Axe from doing the peep-hole optimization with ZOOM. However, it's all a moot point since I just replaced the Copy( command with the single assembly instruction rst rMOV9TOOP1.
You can try this:Type 1 in homescreen, press enter, and check memory again.
"prgmNAME"Asm(E72AEC89E5EF7C4EE122EC89
OS 2.55MP _ExecutePrgm disassembly07:5758: ld a, 03h call 3891h ld a, 38h jp nz, 2793h call 178Bh ex de, hl ld c, (hl) inc hl ld b, (hl) inc hl ld a, (hl) cp 0BBh jp nz, 2729h inc hl ld a, (hl) cp 6Dh jr nz, 57D4h inc hl push hl push bc pop de push de ld hl, 2000h or a sbc hl, de jp c, 2729h ex de, hl call 1735h pop hl push hl ld de, 9D95h call 0F81h pop hl ld (89ECh), hl pop hl ld de, 9D95h ld bc, (89ECh) add hl, bc ldir579Fh: call 1837h jr nz, 57AEh in a, (20) push af bit 5, (iy+24h) call 0DCBh57AEh: ld hl, 5800h call 27DAh call 57FDh call 2800h call 1837h jr nz, 57C4h pop af and 01 out (20), a57C4h: ld de, (89ECh) ld hl, 0000h ld (89ECh), hl ld hl, 9D95h jp 1368h57D4h: rst 18h ;rPUSHREALO1 call 5717h ld hl, 2000h or a sbc hl, de jp c, 2729h ex de, hl push hl call 1735h pop hl push hl ld de, 9D95h call 0F81h pop hl ld (89ECh), hl call 150Fh ld de, 9D95h call 5734h jr 579Fh57FDh: jp 9D95h5800h: call 1837h jr nz, 580Ah pop af and 01 out (20), a580Ah: ld de, (89ECh) ld hl, 0000h ld (89ECh), hl ld hl, 9D95h call 1368h jp 2799h