; ; File generated by cc65 v 2.11.0 ; .fopt compiler,"cc65 v 2.11.0" .setcpu "6502" .smart on .autoimport on .case on .debuginfo on .importzp sp, sreg, regsave, regbank, tmp1, ptr1, ptr2 .macpack longbranch .dbg file, "dbg.c", 33127, 1126287028 .dbg file, "../../include/stdio.h", 5945, 1113916546 .dbg file, "../../include/stddef.h", 2974, 1061022172 .dbg file, "../../include/stdarg.h", 2817, 1102777145 .dbg file, "../../include/stdlib.h", 5287, 1122210074 .dbg file, "../../include/string.h", 4676, 1116364269 .dbg file, "../../include/conio.h", 8725, 1111857627 .dbg file, "../../include/cbm.h", 10064, 1097955127 .dbg file, "../../include/vic20.h", 3723, 1079218289 .dbg file, "../../include/_vic.h", 3582, 1036528430 .dbg file, "../../include/_6522.h", 3530, 1081446207 .dbg file, "../../include/ctype.h", 7770, 1087856507 .dbg file, "../../include/6502.h", 4960, 1042112063 .dbg file, "../../include/dbg.h", 5628, 1047937717 .import _exit .import _strlen .import _clrscr .import _kbhit .import _gotoxy .import _wherex .import _cputc .import _cputcxy .import _cputsxy .import _cgetc .import _cursor .import _revers .import _textcolor .import _bgcolor .import _bordercolor .import _chline .import _chlinexy .import _cvlinexy .import _cclearxy .import _cputhex8 .import _cputhex16 .import __ctype .import _toupper .import _brk_a .import _brk_x .import _brk_y .import _brk_sr .import _brk_pc .import _DbgDisAsm .import _DbgDisAsmLen .import _DbgIsRAM .import _DbgMemDump .import _DbgSP .import _DbgCS .import _DbgHI .export _DbgBreakCount .export _DbgBreaks .import _DbgGetBreakSlot .import _DbgIsBreak .export _DbgEntry .segment "DATA" _RegText: .byte $01 .byte $00 .addr L0001 .byte $01 .byte $01 .addr L0001+3 .byte $01 .byte $02 .addr L0001+6 .byte $01 .byte $03 .addr L0001+8 .byte $01 .byte $04 .addr L0001+10 .byte $01 .byte $05 .addr L0001+12 .byte $01 .byte $06 .addr L0001+15 .byte $01 .byte $07 .addr L0001+18 _HelpText: .byte $01 .byte $00 .addr L0001+21 .byte $01 .byte $01 .addr L0001+36 .byte $01 .byte $02 .addr L0001+64 .byte $01 .byte $03 .addr L0001+103 .byte $01 .byte $04 .addr L0001+127 .byte $01 .byte $05 .addr L0001+147 .byte $01 .byte $06 .addr L0001+167 .byte $01 .byte $07 .addr L0001+198 .byte $01 .byte $08 .addr L0001+218 .byte $01 .byte $09 .addr L0001+236 .byte $01 .byte $0A .addr L0001+259 .byte $01 .byte $0B .addr L0001+282 .byte $01 .byte $0C .addr L0001+301 .byte $01 .byte $0D .addr L0001+330 .byte $01 .byte $0E .addr L0001+352 .byte $01 .byte $0F .addr L0001+382 .byte $01 .byte $10 .addr L0001+397 .byte $01 .byte $11 .addr L0001+421 _AsmFrame: .byte $B0 .byte $B2 .byte $AB .byte $7B .byte $00 .byte $00 .byte $1E .byte $0F .byte $1D .byte $0E .byte $01 .addr _AsmHandler .byte $00 .word $0000 _RegFrame: .byte $B2 .byte $AE .byte $AB .byte $B3 .byte $1E .byte $00 .byte $27 .byte $09 .byte $08 .byte $08 .byte $01 .addr _RegHandler .byte $08 .addr _RegText _StackFrame: .byte $AB .byte $B3 .byte $7B .byte $B3 .byte $1E .byte $09 .byte $27 .byte $0F .byte $08 .byte $05 .byte $01 .addr _StackHandler .byte $00 .word $0000 _CStackFrame: .byte $7B .byte $B3 .byte $B1 .byte $BD .byte $1E .byte $0F .byte $27 .byte $18 .byte $08 .byte $08 .byte $01 .addr _CStackHandler .byte $00 .word $0000 _DumpFrame: .byte $AB .byte $7B .byte $AD .byte $B1 .byte $00 .byte $0F .byte $1E .byte $18 .byte $1D .byte $08 .byte $01 .addr _DumpHandler .byte $00 .word $0000 _HelpFrame: .byte $B0 .byte $AE .byte $AD .byte $BD .byte $00 .byte $00 .byte $27 .byte $18 .byte $26 .byte $17 .byte $00 .addr _HelpHandler .byte $12 .addr _HelpText _Frames: .addr _AsmFrame .addr _RegFrame .addr _StackFrame .addr _CStackFrame .addr _DumpFrame .addr _HelpFrame _ActiveFrame: .word $FFFF _ActivePrompt: .word $0000 _DbgBreakCount: .byte $00 .segment "RODATA" L0001: .byte $D0,$C3,$00,$D3,$D2,$00,$C1,$00,$D8,$00,$D9,$00,$D3,$D0,$00,$C3 .byte $D3,$00,$C8,$C9,$00,$C6,$31,$2C,$20,$3F,$20,$20,$20,$20,$20,$C8 .byte $45,$4C,$50,$00,$C6,$32,$2C,$20,$54,$20,$20,$20,$20,$20,$D4,$4F .byte $47,$47,$4C,$45,$20,$42,$52,$45,$41,$4B,$50,$4F,$49,$4E,$54,$00 .byte $C6,$33,$2C,$20,$55,$20,$20,$20,$20,$20,$D2,$55,$4E,$20,$55,$4E .byte $54,$49,$4C,$20,$53,$55,$42,$52,$4F,$55,$54,$49,$4E,$45,$20,$52 .byte $45,$54,$55,$52,$4E,$53,$00,$C6,$34,$2C,$20,$48,$20,$20,$20,$20 .byte $20,$D2,$55,$4E,$20,$54,$4F,$20,$43,$55,$52,$53,$4F,$52,$00,$C6 .byte $37,$2C,$20,$53,$50,$41,$43,$45,$20,$D3,$54,$45,$50,$20,$49,$4E .byte $54,$4F,$00,$C6,$38,$2C,$20,$45,$4E,$54,$45,$52,$20,$D3,$54,$45 .byte $50,$20,$4F,$56,$45,$52,$00,$31,$2D,$35,$20,$20,$20,$20,$20,$20 .byte $20,$D3,$45,$4C,$45,$43,$54,$20,$41,$43,$54,$49,$56,$45,$20,$57 .byte $49,$4E,$44,$4F,$57,$00,$2B,$20,$20,$20,$20,$20,$20,$20,$20,$20 .byte $D0,$41,$47,$45,$20,$44,$4F,$57,$4E,$00,$2D,$20,$20,$20,$20,$20 .byte $20,$20,$20,$20,$D0,$41,$47,$45,$20,$55,$50,$00,$C3,$55,$52,$53 .byte $4F,$52,$20,$20,$20,$20,$CD,$4F,$56,$45,$20,$55,$50,$2F,$44,$4F .byte $57,$4E,$00,$41,$2F,$5A,$20,$20,$20,$20,$20,$20,$20,$CD,$4F,$56 .byte $45,$20,$55,$50,$2F,$44,$4F,$57,$4E,$00,$43,$20,$20,$20,$20,$20 .byte $20,$20,$20,$20,$C3,$4F,$4E,$54,$49,$4E,$55,$45,$00,$46,$20,$20 .byte $20,$20,$20,$20,$20,$20,$20,$C6,$4F,$4C,$4C,$4F,$57,$20,$49,$4E .byte $53,$54,$52,$55,$43,$54,$49,$4F,$4E,$00,$4F,$20,$20,$20,$20,$20 .byte $20,$20,$20,$20,$C7,$4F,$54,$4F,$20,$4F,$52,$49,$47,$49,$4E,$00 .byte $50,$20,$20,$20,$20,$20,$20,$20,$20,$20,$D5,$53,$45,$20,$41,$53 .byte $20,$4E,$45,$57,$20,$D0,$C3,$20,$56,$41,$4C,$55,$45,$00,$51,$20 .byte $20,$20,$20,$20,$20,$20,$20,$20,$D1,$55,$49,$54,$00,$52,$20,$20 .byte $20,$20,$20,$20,$20,$20,$20,$D2,$45,$44,$52,$41,$57,$20,$53,$43 .byte $52,$45,$45,$4E,$00,$53,$20,$20,$20,$20,$20,$20,$20,$20,$20,$D3 .byte $4B,$49,$50,$20,$4E,$45,$58,$54,$20,$49,$4E,$53,$54,$52,$55,$43 .byte $54,$49,$4F,$4E,$00,$D0,$52,$45,$53,$53,$20,$C6,$31,$20,$46,$4F .byte $52,$20,$48,$45,$4C,$50,$00,$D0,$52,$45,$53,$53,$20,$41,$4E,$59 .byte $20,$4B,$45,$59,$20,$54,$4F,$20,$43,$4F,$4E,$54,$49,$4E,$55,$45 .byte $00,$C7,$4F,$54,$4F,$3A,$20,$00,$C9,$4E,$56,$41,$4C,$49,$44,$20 .byte $49,$4E,$50,$55,$54,$20,$2D,$20,$50,$52,$45,$53,$53,$20,$41,$20 .byte $4B,$45,$59,$00,$C3,$41,$4E,$4E,$4F,$54,$20,$53,$45,$54,$20,$42 .byte $52,$45,$41,$4B,$50,$4F,$49,$4E,$54,$20,$2D,$20,$50,$52,$45,$53 .byte $53,$20,$41,$20,$4B,$45,$59,$00,$D4,$4F,$4F,$20,$4D,$41,$4E,$59 .byte $20,$42,$52,$45,$41,$4B,$50,$4F,$49,$4E,$54,$53,$20,$2D,$20,$50 .byte $52,$45,$53,$53,$20,$41,$20,$4B,$45,$59,$00,$2D,$3E,$00 .segment "BSS" _AsmAddr: .res 2,$00 _DumpAddr: .res 2,$00 _CStackAddr: .res 2,$00 _StackAddr: .res 1,$00 _PromptColor: .res 1,$00 _PromptLength: .res 1,$00 _DbgBreaks: .res 48,$00 ; --------------------------------------------------------------- ; unsigned char __near__ AsmHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _AsmHandler: near .segment "CODE" ; ; while (1) { ; .dbg line, "dbg.c", 854 jsr decsp3 ; ; Last = UpdateAsm (); ; .dbg line, "dbg.c", 857 L02EB: jsr _UpdateAsm ldy #$00 jsr staxysp ; ; switch (c = GetKeyUpdate ()) { ; .dbg line, "dbg.c", 860 jsr _GetKeyUpdate ldy #$02 sta (sp),y ; ; } ; .dbg line, "dbg.c", 910 cmp #$11 jeq L031B cmp #$2B beq L02F5 cmp #$2D beq L02F9 cmp #$41 jeq L0313 cmp #$46 beq L0305 cmp #$47 beq L0308 cmp #$4F beq L030C cmp #$50 beq L030F cmp #$54 beq L02FF cmp #$5A jeq L031B cmp #$89 beq L02FF cmp #$91 beq L0313 jmp L0321 ; ; AsmAddr = Last; ; .dbg line, "dbg.c", 863 L02F5: dey jsr ldaxysp sta _AsmAddr stx _AsmAddr+1 ; ; break; ; .dbg line, "dbg.c", 864 jmp L02EB ; ; AsmAddr = AsmBack (AsmAddr, AsmFrame.fd_height); ; .dbg line, "dbg.c", 867 L02F9: jsr decsp3 lda _AsmAddr ldx _AsmAddr+1 dey sta (sp),y iny txa sta (sp),y lda _AsmFrame+9 ldy #$00 sta (sp),y jsr _AsmBack sta _AsmAddr stx _AsmAddr+1 ; ; break; ; .dbg line, "dbg.c", 868 jmp L02EB ; ; DbgToggleUserBreak (AsmAddr); ; .dbg line, "dbg.c", 874 L02FF: lda _AsmAddr ldx _AsmAddr+1 jsr pushax jsr _DbgToggleUserBreak ; ; break; ; .dbg line, "dbg.c", 875 jmp L02EB ; ; AsmFollow (); ; .dbg line, "dbg.c", 878 L0305: jsr _AsmFollow ; ; break; ; .dbg line, "dbg.c", 879 jmp L02EB ; ; InputGoto (&AsmAddr); ; .dbg line, "dbg.c", 882 L0308: lda #<(_AsmAddr) ldx #>(_AsmAddr) jsr pushax jsr _InputGoto ; ; break; ; .dbg line, "dbg.c", 883 jmp L02EB ; ; AsmHome (); ; .dbg line, "dbg.c", 886 L030C: jsr _AsmHome ; ; break; ; .dbg line, "dbg.c", 887 jmp L02EB ; ; brk_pc = AsmAddr; ; .dbg line, "dbg.c", 890 L030F: lda _AsmAddr ldx _AsmAddr+1 sta _brk_pc stx _brk_pc+1 ; ; break; ; .dbg line, "dbg.c", 891 jmp L02EB ; ; AsmAddr = AsmBack (AsmAddr, 1); ; .dbg line, "dbg.c", 897 L0313: jsr decsp3 lda _AsmAddr ldx _AsmAddr+1 dey sta (sp),y iny txa sta (sp),y lda #$01 ldy #$00 sta (sp),y jsr _AsmBack sta _AsmAddr stx _AsmAddr+1 ; ; break; ; .dbg line, "dbg.c", 898 jmp L02EB ; ; AsmAddr += DbgDisAsmLen (AsmAddr); ; .dbg line, "dbg.c", 904 L031B: lda _AsmAddr ldx _AsmAddr+1 jsr _DbgDisAsmLen clc adc _AsmAddr sta _AsmAddr txa adc _AsmAddr+1 sta _AsmAddr+1 ; ; break; ; .dbg line, "dbg.c", 905 jmp L02EB ; ; return c; ; .dbg line, "dbg.c", 908 L0321: ldx #$00 lda (sp),y jmp incsp3 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ RegHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _RegHandler: near .segment "CODE" ; ; return GetKeyUpdate (); ; .dbg line, "dbg.c", 956 jmp _GetKeyUpdate .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ StackHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _StackHandler: near .segment "CODE" ; ; unsigned char BytesPerPage = StackFrame.fd_height; ; .dbg line, "dbg.c", 1008 jsr decsp1 lda _StackFrame+9 jsr pusha ; ; switch (c = GetKeyUpdate ()) { ; .dbg line, "dbg.c", 1013 L037B: jsr _GetKeyUpdate ldy #$01 sta (sp),y ; ; } ; .dbg line, "dbg.c", 1044 cmp #$11 beq L0393 cmp #$2B beq L0383 cmp #$2D beq L0387 cmp #$41 beq L038E cmp #$4F beq L038B cmp #$5A beq L0393 cmp #$91 beq L038E jmp L0397 ; ; StackAddr += BytesPerPage; ; .dbg line, "dbg.c", 1016 L0383: dey lda (sp),y clc adc _StackAddr sta _StackAddr ; ; break; ; .dbg line, "dbg.c", 1017 jmp L0381 ; ; StackAddr -= BytesPerPage; ; .dbg line, "dbg.c", 1020 L0387: dey lda (sp),y eor #$FF sec adc _StackAddr sta _StackAddr ; ; break; ; .dbg line, "dbg.c", 1021 jmp L0381 ; ; StackHome (); ; .dbg line, "dbg.c", 1024 L038B: jsr _StackHome ; ; break; ; .dbg line, "dbg.c", 1025 jmp L0381 ; ; --StackAddr; ; .dbg line, "dbg.c", 1031 L038E: dec _StackAddr ; ; break; ; .dbg line, "dbg.c", 1032 jmp L0381 ; ; ++StackAddr; ; .dbg line, "dbg.c", 1038 L0393: inc _StackAddr ; ; break; ; .dbg line, "dbg.c", 1039 jmp L0381 ; ; return c; ; .dbg line, "dbg.c", 1042 L0397: ldx #$00 lda (sp),y jmp incsp2 ; ; UpdateStack (); ; .dbg line, "dbg.c", 1047 L0381: jsr _UpdateStack ; ; } ; .dbg line, "dbg.c", 1048 jmp L037B .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ CStackHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _CStackHandler: near .segment "CODE" ; ; unsigned char BytesPerPage = CStackFrame.fd_height * 2; ; .dbg line, "dbg.c", 1098 jsr decsp1 lda _CStackFrame+9 asl a jsr pusha ; ; switch (c = GetKeyUpdate ()) { ; .dbg line, "dbg.c", 1103 L03BD: jsr _GetKeyUpdate ldy #$01 sta (sp),y ; ; } ; .dbg line, "dbg.c", 1134 cmp #$11 beq L03D7 cmp #$2B beq L03C5 cmp #$2D beq L03C9 cmp #$41 beq L03D0 cmp #$4F beq L03CD cmp #$5A beq L03D7 cmp #$91 beq L03D0 jmp L03DD ; ; CStackAddr += BytesPerPage; ; .dbg line, "dbg.c", 1106 L03C5: dey lda (sp),y clc adc _CStackAddr sta _CStackAddr tya adc _CStackAddr+1 sta _CStackAddr+1 ; ; break; ; .dbg line, "dbg.c", 1107 jmp L03C3 ; ; CStackAddr -= BytesPerPage; ; .dbg line, "dbg.c", 1110 L03C9: dey lda (sp),y sec eor #$FF adc _CStackAddr sta _CStackAddr lda #$FF adc _CStackAddr+1 sta _CStackAddr+1 ; ; break; ; .dbg line, "dbg.c", 1111 jmp L03C3 ; ; CStackHome (); ; .dbg line, "dbg.c", 1114 L03CD: jsr _CStackHome ; ; break; ; .dbg line, "dbg.c", 1115 jmp L03C3 ; ; CStackAddr -= 2; ; .dbg line, "dbg.c", 1121 L03D0: sec lda _CStackAddr sbc #$02 sta _CStackAddr bcs L03C3 dec _CStackAddr+1 ; ; break; ; .dbg line, "dbg.c", 1122 jmp L03C3 ; ; CStackAddr += 2; ; .dbg line, "dbg.c", 1128 L03D7: lda #$02 clc adc _CStackAddr sta _CStackAddr bcc L03C3 inc _CStackAddr+1 ; ; break; ; .dbg line, "dbg.c", 1129 jmp L03C3 ; ; return c; ; .dbg line, "dbg.c", 1132 L03DD: ldx #$00 lda (sp),y jmp incsp2 ; ; UpdateCStack (); ; .dbg line, "dbg.c", 1137 L03C3: jsr _UpdateCStack ; ; } ; .dbg line, "dbg.c", 1138 jmp L03BD .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ DumpHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DumpHandler: near .segment "CODE" ; ; unsigned BytesPerPage = DumpFrame.fd_height * 8; ; .dbg line, "dbg.c", 1179 jsr decsp1 ldx #$00 lda _DumpFrame+9 jsr shlax3 jsr pushax ; ; switch (c = GetKeyUpdate ()) { ; .dbg line, "dbg.c", 1184 L03FE: jsr _GetKeyUpdate ldy #$02 sta (sp),y ; ; } ; .dbg line, "dbg.c", 1219 cmp #$11 beq L041C cmp #$2B beq L0406 cmp #$2D beq L040A cmp #$41 beq L0415 cmp #$47 beq L040E cmp #$4F beq L0412 cmp #$5A beq L041C cmp #$91 beq L0415 jmp L0422 ; ; DumpAddr += BytesPerPage; ; .dbg line, "dbg.c", 1187 L0406: dey jsr ldaxysp clc adc _DumpAddr sta _DumpAddr txa adc _DumpAddr+1 sta _DumpAddr+1 ; ; break; ; .dbg line, "dbg.c", 1188 jmp L0404 ; ; DumpAddr -= BytesPerPage; ; .dbg line, "dbg.c", 1191 L040A: dey jsr ldaxysp sec eor #$FF adc _DumpAddr sta _DumpAddr txa eor #$FF adc _DumpAddr+1 sta _DumpAddr+1 ; ; break; ; .dbg line, "dbg.c", 1192 jmp L0404 ; ; InputGoto (&DumpAddr); ; .dbg line, "dbg.c", 1195 L040E: lda #<(_DumpAddr) ldx #>(_DumpAddr) jsr pushax jsr _InputGoto ; ; break; ; .dbg line, "dbg.c", 1196 jmp L0404 ; ; DumpHome (); ; .dbg line, "dbg.c", 1199 L0412: jsr _DumpHome ; ; break; ; .dbg line, "dbg.c", 1200 jmp L0404 ; ; DumpAddr -= 8; ; .dbg line, "dbg.c", 1206 L0415: sec lda _DumpAddr sbc #$08 sta _DumpAddr bcs L0404 dec _DumpAddr+1 ; ; break; ; .dbg line, "dbg.c", 1207 jmp L0404 ; ; DumpAddr += 8; ; .dbg line, "dbg.c", 1213 L041C: lda #$08 clc adc _DumpAddr sta _DumpAddr bcc L0404 inc _DumpAddr+1 ; ; break; ; .dbg line, "dbg.c", 1214 jmp L0404 ; ; return c; ; .dbg line, "dbg.c", 1217 L0422: ldx #$00 lda (sp),y jmp incsp3 ; ; UpdateDump (); ; .dbg line, "dbg.c", 1222 L0404: jsr _UpdateDump ; ; } ; .dbg line, "dbg.c", 1223 jmp L03FE .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ HelpHandler (void) ; --------------------------------------------------------------- .segment "CODE" .proc _HelpHandler: near .segment "CODE" ; ; int OldActive = ActiveFrame; ; .dbg line, "dbg.c", 1238 lda _ActiveFrame ldx _ActiveFrame+1 jsr pushax ; ; ActivateFrame (WIN_HELP, 1); ; .dbg line, "dbg.c", 1239 jsr decsp3 lda #$05 ldy #$01 sta (sp),y iny lda #$00 sta (sp),y lda #$01 ldy #$00 sta (sp),y jsr _ActivateFrame ; ; AnyKeyPrompt (); ; .dbg line, "dbg.c", 1242 jsr _AnyKeyPrompt ; ; cgetc (); ; .dbg line, "dbg.c", 1245 jsr _cgetc ; ; Redraw (OldActive); ; .dbg line, "dbg.c", 1248 ldy #$00 lda (sp),y jsr pusha jsr _Redraw ; ; return 0; ; .dbg line, "dbg.c", 1251 ldx #$00 txa ; ; } ; .dbg line, "dbg.c", 1252 jmp incsp2 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DisplayPrompt (unsigned char*) ; --------------------------------------------------------------- .segment "CODE" .proc _DisplayPrompt: near .segment "CODE" ; ; OldColor = textcolor (COLOR_TEXTHIGH); ; .dbg line, "dbg.c", 436 jsr decsp1 lda #$01 jsr _textcolor ldy #$00 sta (sp),y ; ; if (ActivePrompt) { ; .dbg line, "dbg.c", 439 lda _ActivePrompt ora _ActivePrompt+1 beq L0139 ; ; (void) textcolor (PromptColor); ; .dbg line, "dbg.c", 440 lda _PromptColor jsr _textcolor ; ; chlinexy ((MAX_X - PromptLength) / 2, MAX_Y-1, PromptLength); ; .dbg line, "dbg.c", 441 jsr decsp2 ldx #$00 lda #$28 jsr pushax lda _PromptLength jsr tossubax jsr shrax1 ldy #$01 sta (sp),y lda #$18 dey sta (sp),y lda _PromptLength jsr _chlinexy ; ; ActivePrompt = s; ; .dbg line, "dbg.c", 445 L0139: ldy #$02 jsr ldaxysp sta _ActivePrompt stx _ActivePrompt+1 ; ; PromptColor = OldColor; ; .dbg line, "dbg.c", 446 ldy #$00 lda (sp),y sta _PromptColor ; ; PromptLength = strlen (ActivePrompt); ; .dbg line, "dbg.c", 447 lda _ActivePrompt ldx _ActivePrompt+1 jsr _strlen sta _PromptLength ; ; (void) textcolor (COLOR_TEXTHIGH); ; .dbg line, "dbg.c", 450 lda #$01 jsr _textcolor ; ; cputsxy ((MAX_X - PromptLength) / 2, MAX_Y-1, ActivePrompt); ; .dbg line, "dbg.c", 451 jsr decsp2 ldx #$00 lda #$28 jsr pushax lda _PromptLength jsr tossubax jsr shrax1 ldy #$01 sta (sp),y lda #$18 dey sta (sp),y lda _ActivePrompt ldx _ActivePrompt+1 jsr _cputsxy ; ; (void) textcolor (PromptColor); ; .dbg line, "dbg.c", 454 lda _PromptColor jsr _textcolor ; ; } ; .dbg line, "dbg.c", 455 jmp incsp3 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ SingleStep (unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _SingleStep: near .segment "CODE" ; ; switch (*(unsigned char*) brk_pc) { ; .dbg line, "dbg.c", 1290 jsr decsp1 lda _brk_pc ldx _brk_pc+1 ldy #$00 sta ptr1 stx ptr1+1 lda (ptr1),y ; ; } ; .dbg line, "dbg.c", 1336 cmp #$10 beq L0457 cmp #$20 jeq L046B cmp #$30 beq L0457 cmp #$40 beq L0466 cmp #$4C beq L0441 cmp #$50 beq L0457 cmp #$60 beq L0463 cmp #$6C beq L0445 cmp #$70 beq L0457 cmp #$90 beq L0457 cmp #$B0 beq L0457 cmp #$D0 beq L0457 cmp #$F0 beq L0457 jmp L043F ; ; DbgSetTmpBreak (GetArg16 ()); ; .dbg line, "dbg.c", 1294 L0441: jsr _GetArg16 ; ; return; ; .dbg line, "dbg.c", 1295 jmp L0510 ; ; DbgSetTmpBreak (*(unsigned*)GetArg16 ()); ; .dbg line, "dbg.c", 1299 L0445: jsr _GetArg16 ldy #$01 jsr ldaxidx ; ; return; ; .dbg line, "dbg.c", 1300 jmp L0510 ; ; Offs = ((signed char*)brk_pc)[1]; ; .dbg line, "dbg.c", 1313 L0457: lda _brk_pc ldx _brk_pc+1 iny jsr ldaidx dey sta (sp),y ; ; if (Offs) { ; .dbg line, "dbg.c", 1314 lda (sp),y beq L043F ; ; DbgSetTmpBreak (brk_pc + Offs + 2); ; .dbg line, "dbg.c", 1315 lda _brk_pc ldx _brk_pc+1 sta sreg stx sreg+1 ldx #$00 lda (sp),y bpl L0460 dex L0460: clc adc sreg sta sreg txa adc sreg+1 tax lda sreg clc adc #$02 bcc L0461 inx L0461: jsr pushax jsr _DbgSetTmpBreak ; ; break; ; .dbg line, "dbg.c", 1317 jmp L043F ; ; SetRTSBreak (); ; .dbg line, "dbg.c", 1321 L0463: jsr _SetRTSBreak ; ; return; ; .dbg line, "dbg.c", 1322 jmp incsp2 ; ; DbgSetTmpBreak (GetStack16 (1)); ; .dbg line, "dbg.c", 1326 L0466: lda #$01 jsr pusha jsr _GetStack16 ; ; return; ; .dbg line, "dbg.c", 1327 jmp L0510 ; ; if (StepInto) { ; .dbg line, "dbg.c", 1330 L046B: iny lda (sp),y beq L043F ; ; DbgSetTmpBreak (GetArg16 ()); ; .dbg line, "dbg.c", 1332 jsr _GetArg16 ; ; return; ; .dbg line, "dbg.c", 1333 jmp L0510 ; ; DbgSetTmpBreak (brk_pc + DbgDisAsmLen (brk_pc)); ; .dbg line, "dbg.c", 1339 L043F: lda _brk_pc ldx _brk_pc+1 jsr pushax lda _brk_pc ldx _brk_pc+1 jsr _DbgDisAsmLen jsr tosaddax L0510: jsr pushax jsr _DbgSetTmpBreak ; ; } ; .dbg line, "dbg.c", 1340 jmp incsp2 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ RedrawStatic (unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _RedrawStatic: near .segment "CODE" ; ; ActiveFrame = -1; ; .dbg line, "dbg.c", 1354 lda #$FF sta _ActiveFrame sta _ActiveFrame+1 ; ; (void) bordercolor (COLOR_BORDER); ; .dbg line, "dbg.c", 1357 lda #$00 jsr _bordercolor ; ; (void) bgcolor (COLOR_BACKGROUND); ; .dbg line, "dbg.c", 1358 lda #$00 jsr _bgcolor ; ; clrscr (); ; .dbg line, "dbg.c", 1359 jsr _clrscr ; ; cursor (0); ; .dbg line, "dbg.c", 1360 lda #$00 jsr _cursor ; ; (void) textcolor (COLOR_FRAMELOW); ; .dbg line, "dbg.c", 1363 lda #$0F jsr _textcolor ; ; DrawFrames (); ; .dbg line, "dbg.c", 1364 jsr _DrawFrames ; ; HelpPrompt (); ; .dbg line, "dbg.c", 1367 jsr _HelpPrompt ; ; ActivateFrame (Frame, 0); ; .dbg line, "dbg.c", 1370 jsr decsp3 ldy #$03 lda (sp),y ldy #$01 sta (sp),y iny lda #$00 sta (sp),y tay sta (sp),y jsr _ActivateFrame ; ; } ; .dbg line, "dbg.c", 1371 jmp incsp1 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ Redraw (unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _Redraw: near .segment "CODE" ; ; RedrawStatic (Frame); ; .dbg line, "dbg.c", 1379 ldy #$00 lda (sp),y jsr pusha jsr _RedrawStatic ; ; UpdateAsm (); ; .dbg line, "dbg.c", 1382 jsr _UpdateAsm ; ; UpdateReg (); ; .dbg line, "dbg.c", 1383 jsr _UpdateReg ; ; UpdateStack (); ; .dbg line, "dbg.c", 1384 jsr _UpdateStack ; ; UpdateCStack (); ; .dbg line, "dbg.c", 1385 jsr _UpdateCStack ; ; UpdateDump (); ; .dbg line, "dbg.c", 1386 jsr _UpdateDump ; ; } ; .dbg line, "dbg.c", 1387 jmp incsp1 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ GetKeyUpdate (void) ; --------------------------------------------------------------- .segment "CODE" .proc _GetKeyUpdate: near .segment "BSS" L048D: .res 1,$00 .segment "CODE" ; ; while (!kbhit ()) { ; .dbg line, "dbg.c", 1397 L048E: jsr _kbhit tax jne _cgetc ; ; switch (Win) { ; .dbg line, "dbg.c", 1399 lda L048D ; ; } ; .dbg line, "dbg.c", 1416 beq L0495 cmp #$01 beq L0498 cmp #$02 beq L049B cmp #$03 beq L049E jmp L0493 ; ; UpdateAsm (); ; .dbg line, "dbg.c", 1402 L0495: jsr _UpdateAsm ; ; break; ; .dbg line, "dbg.c", 1403 jmp L0493 ; ; UpdateStack (); ; .dbg line, "dbg.c", 1406 L0498: jsr _UpdateStack ; ; break; ; .dbg line, "dbg.c", 1407 jmp L0493 ; ; UpdateCStack (); ; .dbg line, "dbg.c", 1410 L049B: jsr _UpdateCStack ; ; break; ; .dbg line, "dbg.c", 1411 jmp L0493 ; ; UpdateDump (); ; .dbg line, "dbg.c", 1414 L049E: jsr _UpdateDump ; ; Win = (Win + 1) & 0x03; ; .dbg line, "dbg.c", 1418 L0493: lda L048D clc adc #$01 and #$03 sta L048D ; ; } ; .dbg line, "dbg.c", 1420 jmp L048E .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DrawFrame (register struct $anon-struct-0007*, unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _DrawFrame: near .segment "CODE" ; ; { ; .dbg line, "dbg.c", 316 ldy #$01 ldx #$04 jsr regswap2 ; ; if (Active) { ; .dbg line, "dbg.c", 324 ldy #$0B jsr subysp ldy #$0B lda (sp),y beq L00B7 ; ; OldColor = textcolor (COLOR_FRAMEHIGH); ; .dbg line, "dbg.c", 325 lda #$01 jsr _textcolor ldy #$00 sta (sp),y ; ; tl = CH_ULCORNER; ; .dbg line, "dbg.c", 326 lda #$B0 ldy #$07 sta (sp),y ; ; tr = CH_URCORNER; ; .dbg line, "dbg.c", 327 lda #$AE dey sta (sp),y ; ; bl = CH_LLCORNER; ; .dbg line, "dbg.c", 328 lda #$AD dey sta (sp),y ; ; br = CH_LRCORNER; ; .dbg line, "dbg.c", 329 lda #$BD ; ; } else { ; .dbg line, "dbg.c", 330 jmp L0514 ; ; OldColor = textcolor (COLOR_FRAMELOW); ; .dbg line, "dbg.c", 331 L00B7: lda #$0F jsr _textcolor ldy #$00 sta (sp),y ; ; tl = F->fd_tl; ; .dbg line, "dbg.c", 332 lda (regbank+4),y ldy #$07 sta (sp),y ; ; tr = F->fd_tr; ; .dbg line, "dbg.c", 333 ldy #$01 lda (regbank+4),y ldy #$06 sta (sp),y ; ; bl = F->fd_bl; ; .dbg line, "dbg.c", 334 ldy #$02 lda (regbank+4),y ldy #$05 sta (sp),y ; ; br = F->fd_br; ; .dbg line, "dbg.c", 335 ldy #$03 lda (regbank+4),y L0514: ldy #$04 sta (sp),y ; ; x1 = F->fd_x1; ; .dbg line, "dbg.c", 339 lda (regbank+4),y dey sta (sp),y ; ; y1 = F->fd_y1; ; .dbg line, "dbg.c", 340 ldy #$05 lda (regbank+4),y ldy #$02 sta (sp),y ; ; width = F->fd_width; ; .dbg line, "dbg.c", 341 ldy #$08 lda (regbank+4),y ldy #$01 sta (sp),y ; ; cputcxy (x1, y1, tl); ; .dbg line, "dbg.c", 344 jsr decsp2 ldy #$05 lda (sp),y ldy #$01 sta (sp),y ldy #$04 lda (sp),y ldy #$00 sta (sp),y ldy #$09 lda (sp),y jsr _cputcxy ; ; chline (width); ; .dbg line, "dbg.c", 345 ldy #$01 lda (sp),y jsr _chline ; ; cputc (tr); ; .dbg line, "dbg.c", 346 ldy #$06 lda (sp),y jsr _cputc ; ; cvlinexy (x1, ++y1, F->fd_height); ; .dbg line, "dbg.c", 349 jsr decsp2 ldy #$05 lda (sp),y ldy #$01 sta (sp),y ldy #$04 clc lda #$01 adc (sp),y sta (sp),y ldy #$00 sta (sp),y ldy #$09 lda (regbank+4),y jsr _cvlinexy ; ; cputc (bl); ; .dbg line, "dbg.c", 352 ldy #$05 lda (sp),y jsr _cputc ; ; chline (width); ; .dbg line, "dbg.c", 353 ldy #$01 lda (sp),y jsr _chline ; ; cputc (br); ; .dbg line, "dbg.c", 354 ldy #$04 lda (sp),y jsr _cputc ; ; cvlinexy (F->fd_x2, y1, F->fd_height); ; .dbg line, "dbg.c", 357 jsr decsp2 ldy #$06 lda (regbank+4),y ldy #$01 sta (sp),y ldy #$04 lda (sp),y ldy #$00 sta (sp),y ldy #$09 lda (regbank+4),y jsr _cvlinexy ; ; (void) textcolor (COLOR_TEXTLOW); ; .dbg line, "dbg.c", 360 lda #$0F jsr _textcolor ; ; Count = F->fd_textcount; ; .dbg line, "dbg.c", 361 ldy #$0D lda (regbank+4),y ldy #$08 sta (sp),y ; ; T = F->fd_text; ; .dbg line, "dbg.c", 362 ldy #$0F lda (regbank+4),y tax dey lda (regbank+4),y ldy #$09 jsr staxysp ; ; while (Count--) { ; .dbg line, "dbg.c", 363 L00F2: ldy #$08 lda (sp),y pha sec sbc #$01 sta (sp),y pla tax beq L00F3 ; ; cputsxy (x1 + T->x, y1 + T->y, T->text); ; .dbg line, "dbg.c", 364 jsr decsp2 ldy #$0C jsr ldaxysp ldy #$00 sta ptr1 stx ptr1+1 lda (ptr1),y clc ldy #$05 adc (sp),y ldy #$01 sta (sp),y ldy #$0C jsr ldaxysp ldy #$01 sta ptr1 stx ptr1+1 lda (ptr1),y clc ldy #$04 adc (sp),y ldy #$00 sta (sp),y ldy #$0C jsr ldaxysp ldy #$03 jsr ldaxidx jsr _cputsxy ; ; ++T; ; .dbg line, "dbg.c", 365 ldy #$09 ldx #$00 lda #$04 jsr addeqysp ; ; } ; .dbg line, "dbg.c", 366 jmp L00F2 ; ; (void) textcolor (OldColor); ; .dbg line, "dbg.c", 369 L00F3: tay lda (sp),y jsr _textcolor ; ; } ; .dbg line, "dbg.c", 370 ldy #$0C lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 iny jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DrawFrames (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DrawFrames: near .segment "CODE" ; ; for (I = 0; I < sizeof (Frames) / sizeof (Frames [0]); ++I) { ; .dbg line, "dbg.c", 381 jsr decsp3 lda #$00 ldy #$02 L0515: sta (sp),y cmp #$06 jcs incsp3 ; ; F = Frames [I]; ; .dbg line, "dbg.c", 382 ldx #$00 lda (sp),y jsr aslax1 clc adc #<(_Frames) tay txa adc #>(_Frames) tax tya ldy #$01 jsr ldaxidx ldy #$00 jsr staxysp ; ; if (F->fd_visible) { ; .dbg line, "dbg.c", 383 ldy #$0A sta ptr1 stx ptr1+1 lda (ptr1),y beq L00FF ; ; DrawFrame (F, 0); ; .dbg line, "dbg.c", 384 jsr decsp3 ldy #$04 jsr ldaxysp ldy #$01 sta (sp),y iny txa sta (sp),y lda #$00 tay sta (sp),y jsr _DrawFrame ; ; for (I = 0; I < sizeof (Frames) / sizeof (Frames [0]); ++I) { ; .dbg line, "dbg.c", 381 L00FF: ldy #$02 clc lda #$01 adc (sp),y jmp L0515 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ ActivateFrame (int, unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _ActivateFrame: near .segment "CODE" ; ; register FrameDesc* F; ; .dbg line, "dbg.c", 395 jsr decsp1 lda regbank+4 ldx regbank+5 jsr pushax ; ; if (ActiveFrame != Num) { ; .dbg line, "dbg.c", 397 lda _ActiveFrame ldx _ActiveFrame+1 jsr pushax ldy #$07 jsr ldaxysp jsr tosicmp jeq L0111 ; ; if (ActiveFrame >= 0) { ; .dbg line, "dbg.c", 400 ldx _ActiveFrame+1 bmi L0113 ; ; DrawFrame (Frames [ActiveFrame], 0); ; .dbg line, "dbg.c", 401 jsr decsp3 lda _ActiveFrame ldx _ActiveFrame+1 jsr aslax1 clc adc #<(_Frames) tay txa adc #>(_Frames) tax tya ldy #$01 jsr ldaxidx ldy #$01 sta (sp),y iny txa sta (sp),y lda #$00 tay sta (sp),y jsr _DrawFrame ; ; if ((ActiveFrame = Num) >= 0) { ; .dbg line, "dbg.c", 405 L0113: ldy #$05 jsr ldaxysp sta _ActiveFrame stx _ActiveFrame+1 txa bmi L0119 ; ; F = Frames [ActiveFrame]; ; .dbg line, "dbg.c", 406 lda _ActiveFrame ldx _ActiveFrame+1 jsr aslax1 clc adc #<(_Frames) tay txa adc #>(_Frames) tax tya ldy #$01 jsr ldaxidx sta regbank+4 stx regbank+4+1 ; ; if (Clear) { ; .dbg line, "dbg.c", 408 ldy #$03 lda (sp),y beq L0123 ; ; for (y = F->fd_y1+1; y < F->fd_y2; ++y) { ; .dbg line, "dbg.c", 409 ldy #$05 lda (regbank+4),y clc adc #$01 ldy #$02 L0516: sta (sp),y ldx #$00 lda (sp),y jsr pushax ldy #$07 lda (regbank+4),y jsr tosicmp bcs L0123 ; ; cclearxy (F->fd_x1+1, y, F->fd_width); ; .dbg line, "dbg.c", 410 jsr decsp2 ldy #$04 lda (regbank+4),y clc adc #$01 ldy #$01 sta (sp),y ldy #$04 lda (sp),y ldy #$00 sta (sp),y ldy #$08 lda (regbank+4),y jsr _cclearxy ; ; for (y = F->fd_y1+1; y < F->fd_y2; ++y) { ; .dbg line, "dbg.c", 409 ldy #$02 clc lda #$01 adc (sp),y jmp L0516 ; ; DrawFrame (F, 1); ; .dbg line, "dbg.c", 413 L0123: jsr decsp3 lda regbank+4 ldx regbank+4+1 ldy #$01 sta (sp),y iny txa sta (sp),y lda #$01 ldy #$00 sta (sp),y jsr _DrawFrame ; ; DisplayPrompt (ActivePrompt); ; .dbg line, "dbg.c", 417 L0119: lda _ActivePrompt ldx _ActivePrompt+1 jsr pushax jsr _DisplayPrompt ; ; } ; .dbg line, "dbg.c", 420 L0111: ldy #$00 lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 jmp incsp6 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ HelpPrompt (void) ; --------------------------------------------------------------- .segment "CODE" .proc _HelpPrompt: near .segment "CODE" ; ; DisplayPrompt ("Press F1 for help"); ; .dbg line, "dbg.c", 462 lda #<(L0001+453) ldx #>(L0001+453) jsr pushax jmp _DisplayPrompt .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ AnyKeyPrompt (void) ; --------------------------------------------------------------- .segment "CODE" .proc _AnyKeyPrompt: near .segment "CODE" ; ; DisplayPrompt ("Press any key to continue"); ; .dbg line, "dbg.c", 469 lda #<(L0001+471) ldx #>(L0001+471) jsr pushax jmp _DisplayPrompt .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ IsAbortKey (unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _IsAbortKey: near .segment "CODE" ; ; if (C == CH_ESC) { ; .dbg line, "dbg.c", 478 ldy #$00 lda (sp),y cmp #$1B bne L0159 ; ; return 1; ; .dbg line, "dbg.c", 479 ldx #$00 lda #$01 jmp incsp1 ; ; if (C == CH_STOP) { ; .dbg line, "dbg.c", 483 L0159: lda (sp),y cmp #$03 bne L015C ; ; return 1; ; .dbg line, "dbg.c", 484 ldx #$00 lda #$01 jmp incsp1 ; ; return 0; ; .dbg line, "dbg.c", 487 L015C: ldx #$00 txa ; ; } ; .dbg line, "dbg.c", 488 jmp incsp1 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ Input (unsigned char*, unsigned char*, unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _Input: near .segment "CODE" ; ; cclearxy (0, MAX_Y-1, MAX_X); ; .dbg line, "dbg.c", 504 jsr decsp8 jsr decsp2 lda #$00 ldy #$01 sta (sp),y lda #$18 dey sta (sp),y lda #$28 jsr _cclearxy ; ; OldColor = textcolor (COLOR_TEXTHIGH); ; .dbg line, "dbg.c", 507 lda #$01 jsr _textcolor ldy #$05 sta (sp),y ; ; cputsxy (0, MAX_Y-1, Prompt); ; .dbg line, "dbg.c", 508 jsr decsp2 lda #$00 ldy #$01 sta (sp),y lda #$18 dey sta (sp),y ldy #$0E jsr ldaxysp jsr _cputsxy ; ; (void) textcolor (COLOR_TEXTLOW); ; .dbg line, "dbg.c", 509 lda #$0F jsr _textcolor ; ; x1 = wherex (); ; .dbg line, "dbg.c", 512 jsr _wherex ldy #$03 sta (sp),y ; ; OldCursor = cursor (1); ; .dbg line, "dbg.c", 513 lda #$01 jsr _cursor ldy #$04 sta (sp),y ; ; i = done = 0; ; .dbg line, "dbg.c", 516 lda #$00 ldy #$01 sta (sp),y iny sta (sp),y ; ; c = cgetc (); ; .dbg line, "dbg.c", 518 L0176: jsr _cgetc ldy #$00 sta (sp),y ; ; if (isalnum (c) && i < Count) { ; .dbg line, "dbg.c", 519 tay lda __ctype,y and #$07 beq L017B ldy #$02 ldx #$00 lda (sp),y jsr pushax ldy #$0A lda (sp),y jsr tosicmp bcs L017B ; ; Buf [i] = c; ; .dbg line, "dbg.c", 520 ldy #$0A jsr ldaxysp sta sreg stx sreg+1 ldy #$02 lda (sp),y clc adc sreg ldx sreg+1 bcc L0517 inx L0517: sta sreg stx sreg+1 ldy #$00 lda (sp),y sta (sreg),y ; ; cputcxy (x1 + i, MAX_Y-1, c); ; .dbg line, "dbg.c", 521 jsr decsp2 ldy #$04 lda (sp),y clc iny adc (sp),y ldy #$01 sta (sp),y lda #$18 dey sta (sp),y ldy #$02 lda (sp),y jsr _cputcxy ; ; ++i; ; .dbg line, "dbg.c", 522 ldy #$02 clc lda #$01 adc (sp),y ; ; } else if (i > 0 && c == CH_DEL) { ; .dbg line, "dbg.c", 523 jmp L051C L017B: ldy #$02 lda (sp),y beq L0191 ldy #$00 lda (sp),y cmp #$14 bne L0191 ; ; --i; ; .dbg line, "dbg.c", 524 ldy #$02 sec lda (sp),y sbc #$01 sta (sp),y ; ; cputcxy (x1 + i, MAX_Y-1, ' '); ; .dbg line, "dbg.c", 525 jsr decsp2 ldy #$04 lda (sp),y clc iny adc (sp),y ldy #$01 sta (sp),y lda #$18 dey sta (sp),y lda #$20 jsr _cputcxy ; ; gotoxy (x1 + i, MAX_Y-1); ; .dbg line, "dbg.c", 526 ldy #$02 lda (sp),y clc iny adc (sp),y jsr pusha lda #$18 jsr _gotoxy ; ; } else if (c == '\n') { ; .dbg line, "dbg.c", 527 jmp L01A6 L0191: ldy #$00 lda (sp),y cmp #$0D bne L019E ; ; Buf [i] = '\0'; ; .dbg line, "dbg.c", 528 ldy #$0A jsr ldaxysp sta sreg stx sreg+1 ldy #$02 lda (sp),y clc adc sreg ldx sreg+1 bcc L051B inx L051B: sta sreg stx sreg+1 lda #$00 tay sta (sreg),y ; ; done = 1; ; .dbg line, "dbg.c", 529 lda #$01 ; ; } else if (IsAbortKey (c)) { ; .dbg line, "dbg.c", 530 jmp L051D L019E: lda (sp),y jsr pusha jsr _IsAbortKey tax beq L01A6 ; ; done = 2; ; .dbg line, "dbg.c", 532 lda #$02 L051D: ldy #$01 L051C: sta (sp),y ; ; } while (!done); ; .dbg line, "dbg.c", 534 L01A6: ldy #$01 lda (sp),y jeq L0176 ; ; cursor (OldCursor); ; .dbg line, "dbg.c", 537 ldy #$04 lda (sp),y jsr _cursor ; ; (void) textcolor (OldColor); ; .dbg line, "dbg.c", 538 ldy #$05 lda (sp),y jsr _textcolor ; ; DrawFrames (); ; .dbg line, "dbg.c", 539 jsr _DrawFrames ; ; Frame = ActiveFrame; ; .dbg line, "dbg.c", 540 lda _ActiveFrame ldx _ActiveFrame+1 ldy #$06 jsr staxysp ; ; ActiveFrame = -1; ; .dbg line, "dbg.c", 541 lda #$FF sta _ActiveFrame sta _ActiveFrame+1 ; ; ActivateFrame (Frame, 0); ; .dbg line, "dbg.c", 542 jsr decsp3 ldy #$0A jsr ldaxysp ldy #$01 sta (sp),y iny txa sta (sp),y lda #$00 tay sta (sp),y jsr _ActivateFrame ; ; return (done == 1); ; .dbg line, "dbg.c", 544 ldy #$01 lda (sp),y cmp #$01 jsr booleq ; ; } ; .dbg line, "dbg.c", 545 ldy #$0D jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ InputHex (unsigned char*, unsigned int*) ; --------------------------------------------------------------- .segment "CODE" .proc _InputHex: near .segment "CODE" ; ; if (Input (Prompt, Buf, sizeof (Buf)-1) && isxdigit (Buf [0])) { ; .dbg line, "dbg.c", 558 ldy #$0A jsr subysp jsr decsp5 ldy #$12 jsr ldaxysp ldy #$03 sta (sp),y iny txa sta (sp),y lda #$0A jsr leaasp ldy #$01 sta (sp),y iny txa sta (sp),y lda #$04 ldy #$00 sta (sp),y jsr _Input tax jeq L01BC ldy #$05 lda (sp),y tay lda __ctype,y and #$08 jeq L01BC ; ; P = Buf; ; .dbg line, "dbg.c", 561 lda #$05 jsr leaasp ldy #$03 jsr staxysp ; ; V = 0; ; .dbg line, "dbg.c", 562 ldx #$00 txa tay jsr staxysp ; ; while ((C = *P) && isxdigit (C)) { ; .dbg line, "dbg.c", 563 L01D1: ldy #$04 jsr ldaxysp ldy #$00 sta ptr1 stx ptr1+1 lda (ptr1),y ldy #$02 sta (sp),y tax beq L01D2 lda (sp),y tay lda __ctype,y and #$08 beq L01D2 ; ; V <<= 4; ; .dbg line, "dbg.c", 564 ldy #$01 jsr ldaxysp jsr shlax4 ldy #$00 jsr staxysp ; ; if (isdigit (C)) { ; .dbg line, "dbg.c", 565 ldy #$02 lda (sp),y tay lda __ctype,y and #$04 beq L01E2 ; ; C -= '0'; ; .dbg line, "dbg.c", 566 ldy #$02 sec lda (sp),y sbc #$30 ; ; } else { ; .dbg line, "dbg.c", 567 jmp L051E ; ; C = toupper (C) - ('A' - 10); ; .dbg line, "dbg.c", 568 L01E2: ldy #$02 tax lda (sp),y jsr _toupper sec sbc #$B7 ldy #$02 L051E: sta (sp),y ; ; V += C; ; .dbg line, "dbg.c", 570 ldx #$00 lda (sp),y ldy #$00 jsr addeqysp ; ; ++P; ; .dbg line, "dbg.c", 571 ldy #$03 ldx #$00 lda #$01 jsr addeqysp ; ; } ; .dbg line, "dbg.c", 572 jmp L01D1 ; ; *Val = V; ; .dbg line, "dbg.c", 575 L01D2: ldy #$0B jsr ldaxysp sta sreg stx sreg+1 ldy #$01 jsr ldaxysp ldy #$00 sta (sreg),y iny txa sta (sreg),y ; ; return 1; ; .dbg line, "dbg.c", 578 ldx #$00 tya jmp L01FA ; ; return 0; ; .dbg line, "dbg.c", 583 L01BC: tax ; ; } ; .dbg line, "dbg.c", 586 L01FA: ldy #$0E jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ ErrorPrompt (unsigned char*) ; --------------------------------------------------------------- .segment "CODE" .proc _ErrorPrompt: near .segment "CODE" ; ; char* OldPrompt = ActivePrompt; ; .dbg line, "dbg.c", 594 lda _ActivePrompt ldx _ActivePrompt+1 jsr pushax ; ; DisplayPrompt (Msg); ; .dbg line, "dbg.c", 597 ldy #$05 jsr pushwysp jsr _DisplayPrompt ; ; cgetc (); ; .dbg line, "dbg.c", 600 jsr _cgetc ; ; DisplayPrompt (OldPrompt); ; .dbg line, "dbg.c", 603 ldy #$03 jsr pushwysp jsr _DisplayPrompt ; ; } ; .dbg line, "dbg.c", 604 jmp incsp4 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ InputGoto (unsigned int*) ; --------------------------------------------------------------- .segment "CODE" .proc _InputGoto: near .segment "CODE" ; ; Ok = InputHex ("Goto: ", Addr); ; .dbg line, "dbg.c", 612 jsr decsp1 jsr decsp4 lda #<(L0001+497) ldx #>(L0001+497) ldy #$02 sta (sp),y iny txa sta (sp),y ldy #$06 jsr ldaxysp ldy #$00 sta (sp),y iny txa sta (sp),y jsr _InputHex ldy #$00 sta (sp),y ; ; if (!Ok) { ; .dbg line, "dbg.c", 613 lda (sp),y bne L0208 ; ; ErrorPrompt ("Invalid input - press a key"); ; .dbg line, "dbg.c", 614 lda #<(L0001+504) ldx #>(L0001+504) jsr pushax jsr _ErrorPrompt ; ; return Ok; ; .dbg line, "dbg.c", 616 L0208: ldy #$00 ldx #$00 lda (sp),y ; ; } ; .dbg line, "dbg.c", 617 jmp incsp3 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ BreakInRomError (void) ; --------------------------------------------------------------- .segment "CODE" .proc _BreakInRomError: near .segment "CODE" ; ; ErrorPrompt ("Cannot set breakpoint - press a key"); ; .dbg line, "dbg.c", 624 lda #<(L0001+532) ldx #>(L0001+532) jsr pushax jmp _ErrorPrompt .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DbgSetTmpBreak (unsigned int) ; --------------------------------------------------------------- .segment "CODE" .proc _DbgSetTmpBreak: near .segment "CODE" ; ; BreakPoint* B = DbgGetBreakSlot (); ; .dbg line, "dbg.c", 638 jsr _DbgGetBreakSlot jsr pushax ; ; B->bk_addr = Addr; ; .dbg line, "dbg.c", 639 ldy #$01 jsr ldaxysp sta sreg stx sreg+1 ldy #$03 jsr ldaxysp ldy #$00 sta (sreg),y iny txa sta (sreg),y ; ; B->bk_use = BRK_TMP; ; .dbg line, "dbg.c", 640 jsr ldaxysp sta sreg stx sreg+1 lda #$80 ldy #$03 sta (sreg),y ; ; } ; .dbg line, "dbg.c", 641 jmp incsp4 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DbgToggleUserBreak (unsigned int) ; --------------------------------------------------------------- .segment "CODE" .proc _DbgToggleUserBreak: near .segment "CODE" ; ; register BreakPoint* B = DbgIsBreak (Addr); ; .dbg line, "dbg.c", 648 lda regbank+4 ldx regbank+5 jsr pushax ldy #$05 jsr pushwysp jsr _DbgIsBreak sta regbank+4 stx regbank+4+1 ; ; if (B) { ; .dbg line, "dbg.c", 650 lda regbank+4 ora regbank+4+1 beq L0219 ; ; B->bk_use = BRK_EMPTY; ; .dbg line, "dbg.c", 652 lda #$00 ldy #$03 sta (regbank+4),y ; ; --DbgBreakCount; ; .dbg line, "dbg.c", 653 dec _DbgBreakCount ; ; } else { ; .dbg line, "dbg.c", 654 jmp L0228 ; ; if (DbgBreakCount >= MAX_USERBREAKS) { ; .dbg line, "dbg.c", 656 L0219: lda _DbgBreakCount cmp #$0A bcc L021F ; ; ErrorPrompt ("Too many breakpoints - press a key"); ; .dbg line, "dbg.c", 657 lda #<(L0001+568) ldx #>(L0001+568) jsr pushax jsr _ErrorPrompt ; ; } else { ; .dbg line, "dbg.c", 658 jmp L0228 ; ; if (!DbgIsRAM (Addr)) { ; .dbg line, "dbg.c", 660 L021F: ldy #$03 jsr ldaxysp jsr _DbgIsRAM stx tmp1 ora tmp1 bne L0224 ; ; BreakInRomError (); ; .dbg line, "dbg.c", 661 jsr _BreakInRomError ; ; } else { ; .dbg line, "dbg.c", 662 jmp L0228 ; ; B = DbgGetBreakSlot (); ; .dbg line, "dbg.c", 664 L0224: jsr _DbgGetBreakSlot sta regbank+4 stx regbank+4+1 ; ; B->bk_addr = Addr; ; .dbg line, "dbg.c", 665 sta sreg stx sreg+1 ldy #$03 jsr ldaxysp ldy #$00 sta (sreg),y iny txa sta (sreg),y ; ; B->bk_use = BRK_USER; ; .dbg line, "dbg.c", 666 tya ldy #$03 sta (regbank+4),y ; ; ++DbgBreakCount; ; .dbg line, "dbg.c", 667 inc _DbgBreakCount ; ; } ; .dbg line, "dbg.c", 671 L0228: ldy #$00 lda (sp),y sta regbank+4 iny lda (sp),y sta regbank+5 jmp incsp4 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DbgResetTmpBreaks (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DbgResetTmpBreaks: near .segment "CODE" ; ; BreakPoint* B = DbgBreaks; ; .dbg line, "dbg.c", 679 jsr decsp1 lda #<(_DbgBreaks) ldx #>(_DbgBreaks) jsr pushax ; ; for (i = 0; i < MAX_USERBREAKS; ++i) { ; .dbg line, "dbg.c", 681 lda #$00 ldy #$02 L0520: sta (sp),y cmp #$0A jcs incsp3 ; ; if (B->bk_use == BRK_TMP) { ; .dbg line, "dbg.c", 682 dey jsr ldaxysp ldy #$03 sta ptr1 stx ptr1+1 lda (ptr1),y cmp #$80 bne L023A ; ; B->bk_use = BRK_EMPTY; ; .dbg line, "dbg.c", 683 ldy #$01 jsr ldaxysp sta sreg stx sreg+1 lda #$00 ldy #$03 sta (sreg),y ; ; ++B; ; .dbg line, "dbg.c", 685 L023A: ldy #$00 ldx #$00 lda #$04 jsr addeqysp ; ; for (i = 0; i < MAX_USERBREAKS; ++i) { ; .dbg line, "dbg.c", 681 ldy #$02 clc lda #$01 adc (sp),y jmp L0520 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned char __near__ DbgTmpBreaksOk (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DbgTmpBreaksOk: near .segment "CODE" ; ; BreakPoint* B = DbgBreaks; ; .dbg line, "dbg.c", 697 jsr decsp1 lda #<(_DbgBreaks) ldx #>(_DbgBreaks) jsr pushax ; ; for (i = 0; i < MAX_USERBREAKS; ++i) { ; .dbg line, "dbg.c", 698 lda #$00 ldy #$02 L0521: sta (sp),y cmp #$0A bcs L0242 ; ; if (B->bk_use == BRK_TMP && !DbgIsRAM (B->bk_addr)) { ; .dbg line, "dbg.c", 699 dey jsr ldaxysp ldy #$03 sta ptr1 stx ptr1+1 lda (ptr1),y cmp #$80 bne L0249 ldy #$01 jsr ldaxysp ldy #$01 jsr ldaxidx jsr _DbgIsRAM stx tmp1 ora tmp1 bne L0249 ; ; BreakInRomError (); ; .dbg line, "dbg.c", 700 jsr _BreakInRomError ; ; DbgResetTmpBreaks (); ; .dbg line, "dbg.c", 701 jsr _DbgResetTmpBreaks ; ; return 0; ; .dbg line, "dbg.c", 702 ldx #$00 txa jmp incsp3 ; ; ++B; ; .dbg line, "dbg.c", 704 L0249: ldy #$00 ldx #$00 lda #$04 jsr addeqysp ; ; for (i = 0; i < MAX_USERBREAKS; ++i) { ; .dbg line, "dbg.c", 698 ldy #$02 clc lda #$01 adc (sp),y jmp L0521 ; ; return 1; ; .dbg line, "dbg.c", 706 L0242: ldx #$00 lda #$01 ; ; } ; .dbg line, "dbg.c", 707 jmp incsp3 .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ AsmBack (unsigned int, unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _AsmBack: near .segment "CODE" ; ; unsigned offs = 6; ; .dbg line, "dbg.c", 726 ldy #$43 jsr subysp ldx #$00 lda #$06 jsr pushax ; ; in = 0; ; .dbg line, "dbg.c", 728 L0256: lda #$00 ldy #$02 sta (sp),y ; ; cur = mem - (lines * 3) - offs; ; .dbg line, "dbg.c", 729 ldy #$49 jsr pushwysp ldy #$47 ldx #$00 lda (sp),y jsr mulax3 jsr tossubax jsr pushax ldy #$03 jsr ldaxysp jsr tossubax ldy #$43 jsr staxysp ; ; cur += DbgDisAsmLen (cur); ; .dbg line, "dbg.c", 731 L025E: ldy #$44 jsr ldaxysp jsr _DbgDisAsmLen ldy #$43 jsr addeqysp ; ; adr [in] = cur; ; .dbg line, "dbg.c", 732 ldy #$02 ldx #$00 lda (sp),y jsr aslax1 clc adc #$03 bcc L0266 inx clc L0266: adc sp tay txa adc sp+1 tax tya sta ptr1 stx ptr1+1 ldy #$44 jsr ldaxysp ldy #$00 sta (ptr1),y iny txa sta (ptr1),y ; ; in = (in + 1) & 0x1F; ; .dbg line, "dbg.c", 733 iny lda (sp),y clc adc #$01 and #$1F sta (sp),y ; ; if (cur >= mem) { ; .dbg line, "dbg.c", 734 ldy #$46 jsr pushwysp ldy #$49 jsr ldaxysp jsr tosicmp bcc L025E ; ; if (cur == mem || offs == 12) { ; .dbg line, "dbg.c", 735 ldy #$46 jsr pushwysp ldy #$49 jsr ldaxysp jsr tosicmp beq L026F ldy #$01 lda (sp),y bne L026E dey lda (sp),y cmp #$0C bne L026E ; ; return adr [(in - lines - 1) & 0x1F]; ; .dbg line, "dbg.c", 737 L026F: ldy #$02 ldx #$00 lda (sp),y jsr pushax ldy #$47 lda (sp),y jsr tossubax sec sbc #$01 ldx #$00 and #$1F jsr aslax1 clc adc #$03 bcc L0276 inx clc L0276: adc sp tay txa adc sp+1 tax tya ldy #$01 jsr ldaxidx jmp L0257 ; ; ++offs; ; .dbg line, "dbg.c", 742 L026E: ldy #$00 ldx #$00 lda #$01 jsr addeqysp ; ; break; ; .dbg line, "dbg.c", 743 jmp L0256 ; ; } ; .dbg line, "dbg.c", 748 L0257: ldy #$48 jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ UpdateAsm (void) ; --------------------------------------------------------------- .segment "CODE" .proc _UpdateAsm: near .segment "CODE" ; ; unsigned char width = AsmFrame.fd_width; ; .dbg line, "dbg.c", 758 ldy #$2A jsr subysp lda _AsmFrame+8 jsr pusha ; ; unsigned char x = AsmFrame.fd_x1 + 1; ; .dbg line, "dbg.c", 759 lda _AsmFrame+4 clc adc #$01 jsr pusha ; ; unsigned m = AsmBack (AsmAddr, 2); ; .dbg line, "dbg.c", 760 jsr decsp3 lda _AsmAddr ldx _AsmAddr+1 ldy #$01 sta (sp),y iny txa sta (sp),y tya ldy #$00 sta (sp),y jsr _AsmBack jsr pushax ; ; for (y = AsmFrame.fd_y1+1; y < AsmFrame.fd_y2; ++y) { ; .dbg line, "dbg.c", 762 lda _AsmFrame+5 clc adc #$01 ldy #$04 L0523: sta (sp),y ldx #$00 lda (sp),y jsr pushax lda _AsmFrame+7 jsr tosicmp jcs L0282 ; ; len = DbgDisAsm (m, buf, width); ; .dbg line, "dbg.c", 763 jsr decsp4 ldy #$05 jsr ldaxysp ldy #$02 sta (sp),y iny txa sta (sp),y lda #$0A jsr leaasp ldy #$00 sta (sp),y iny txa sta (sp),y ldy #$07 lda (sp),y jsr _DbgDisAsm ldy #$05 sta (sp),y ; ; if (m == brk_pc) { ; .dbg line, "dbg.c", 764 ldy #$03 jsr pushwysp lda _brk_pc ldx _brk_pc+1 jsr tosicmp bne L028F ; ; buf [4] = '-'; ; .dbg line, "dbg.c", 765 lda #$2D ldy #$0A sta (sp),y ; ; buf [5] = '>'; ; .dbg line, "dbg.c", 766 lda #$3E iny sta (sp),y ; ; if (DbgIsBreak (m)) { ; .dbg line, "dbg.c", 768 L028F: ldy #$03 jsr pushwysp jsr _DbgIsBreak stx tmp1 ora tmp1 beq L0297 ; ; buf [5] = '*'; ; .dbg line, "dbg.c", 769 lda #$2A ldy #$0B sta (sp),y ; ; if (m == AsmAddr) { ; .dbg line, "dbg.c", 771 L0297: ldy #$03 jsr pushwysp lda _AsmAddr ldx _AsmAddr+1 jsr tosicmp bne L029D ; ; revers (1); ; .dbg line, "dbg.c", 772 lda #$01 jsr _revers ; ; cputsxy (1, y, buf); ; .dbg line, "dbg.c", 773 jsr decsp2 lda #$01 tay sta (sp),y ldy #$06 lda (sp),y ldy #$00 sta (sp),y lda #$08 jsr leaasp jsr _cputsxy ; ; revers (0); ; .dbg line, "dbg.c", 774 lda #$00 jsr _revers ; ; } else { ; .dbg line, "dbg.c", 775 jmp L02A7 ; ; cputsxy (1, y, buf); ; .dbg line, "dbg.c", 776 L029D: jsr decsp2 lda #$01 tay sta (sp),y ldy #$06 lda (sp),y ldy #$00 sta (sp),y lda #$08 jsr leaasp jsr _cputsxy ; ; m += len; ; .dbg line, "dbg.c", 778 L02A7: ldy #$05 ldx #$00 lda (sp),y ldy #$00 jsr addeqysp ; ; for (y = AsmFrame.fd_y1+1; y < AsmFrame.fd_y2; ++y) { ; .dbg line, "dbg.c", 762 ldy #$04 clc lda #$01 adc (sp),y jmp L0523 ; ; return m; ; .dbg line, "dbg.c", 780 L0282: ldy #$01 jsr ldaxysp ; ; } ; .dbg line, "dbg.c", 781 ldy #$2E jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ AsmArg16 (void) ; --------------------------------------------------------------- .segment "CODE" .proc _AsmArg16: near .segment "CODE" ; ; return *(unsigned*)(AsmAddr+1); ; .dbg line, "dbg.c", 788 lda _AsmAddr ldx _AsmAddr+1 clc adc #$01 bcc L02B2 inx L02B2: ldy #$01 jmp ldaxidx .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ AsmFollow (void) ; --------------------------------------------------------------- .segment "CODE" .proc _AsmFollow: near .segment "CODE" ; ; switch (*(unsigned char*) AsmAddr) { ; .dbg line, "dbg.c", 796 lda _AsmAddr ldx _AsmAddr+1 ldy #$00 sta ptr1 stx ptr1+1 lda (ptr1),y ; ; } ; .dbg line, "dbg.c", 826 cmp #$10 beq L02C2 cmp #$20 beq L02B8 cmp #$30 beq L02C2 cmp #$40 beq L02DF cmp #$4C beq L02B8 cmp #$50 beq L02C2 cmp #$60 beq L02D7 cmp #$6C beq L02BE cmp #$70 beq L02C2 cmp #$90 beq L02C2 cmp #$B0 beq L02C2 cmp #$D0 beq L02C2 cmp #$F0 beq L02C2 rts ; ; AsmAddr = AsmArg16 (); ; .dbg line, "dbg.c", 800 L02B8: jsr _AsmArg16 ; ; break; ; .dbg line, "dbg.c", 801 jmp L0525 ; ; AsmAddr = *(unsigned*)AsmArg16 (); ; .dbg line, "dbg.c", 804 L02BE: jsr _AsmArg16 ; ; break; ; .dbg line, "dbg.c", 805 jmp L0527 ; ; AsmAddr = AsmAddr + 2 + *(signed char*)(AsmAddr+1); ; .dbg line, "dbg.c", 815 L02C2: lda _AsmAddr ldx _AsmAddr+1 clc adc #$02 bcc L02D3 inx L02D3: jsr pushax lda _AsmAddr ldx _AsmAddr+1 clc adc #$01 bcc L02D5 inx L02D5: ldy #$00 jsr ldaidx jsr tosaddax ; ; break; ; .dbg line, "dbg.c", 816 jmp L0525 ; ; AsmAddr = (*(unsigned*) (DbgSP + 0x101) + 1); ; .dbg line, "dbg.c", 819 L02D7: ldx #$00 lda _DbgSP clc adc #$01 bcc L02DC inx L02DC: inx iny jsr ldaxidx clc adc #$01 bcc L0525 inx ; ; break; ; .dbg line, "dbg.c", 820 jmp L0525 ; ; AsmAddr = *(unsigned*) (DbgSP + 0x102); ; .dbg line, "dbg.c", 823 L02DF: ldx #$00 lda _DbgSP clc adc #$02 bcc L02E3 inx L02E3: inx L0527: ldy #$01 jsr ldaxidx L0525: sta _AsmAddr stx _AsmAddr+1 ; ; } ; .dbg line, "dbg.c", 827 rts .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ AsmHome (void) ; --------------------------------------------------------------- .segment "CODE" .proc _AsmHome: near .segment "CODE" ; ; AsmAddr = brk_pc; ; .dbg line, "dbg.c", 834 lda _brk_pc ldx _brk_pc+1 sta _AsmAddr stx _AsmAddr+1 ; ; } ; .dbg line, "dbg.c", 835 rts .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ InitAsm (void) ; --------------------------------------------------------------- .segment "CODE" .proc _InitAsm: near .segment "CODE" ; ; AsmHome (); ; .dbg line, "dbg.c", 842 jsr _AsmHome ; ; UpdateAsm (); ; .dbg line, "dbg.c", 843 jmp _UpdateAsm .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ UpdateReg (void) ; --------------------------------------------------------------- .segment "CODE" .proc _UpdateReg: near .segment "CODE" ; ; unsigned char x1 = RegFrame.fd_x1 + 5; ; .dbg line, "dbg.c", 925 lda _RegFrame+4 clc adc #$05 jsr pusha ; ; unsigned char x2 = x1 + 2; ; .dbg line, "dbg.c", 926 ldy #$00 lda (sp),y clc adc #$02 jsr pusha ; ; unsigned char y = RegFrame.fd_y1; ; .dbg line, "dbg.c", 927 lda _RegFrame+5 jsr pusha ; ; gotoxy (x1, ++y); cputhex16 (brk_pc); ; .dbg line, "dbg.c", 930 ldy #$02 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _brk_pc ldx _brk_pc+1 jsr _cputhex16 ; ; gotoxy (x2, ++y); cputhex8 (brk_sr); ; .dbg line, "dbg.c", 931 ldy #$01 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _brk_sr jsr _cputhex8 ; ; gotoxy (x2, ++y); cputhex8 (brk_a); ; .dbg line, "dbg.c", 932 ldy #$01 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _brk_a jsr _cputhex8 ; ; gotoxy (x2, ++y); cputhex8 (brk_x); ; .dbg line, "dbg.c", 933 ldy #$01 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _brk_x jsr _cputhex8 ; ; gotoxy (x2, ++y); cputhex8 (brk_y); ; .dbg line, "dbg.c", 934 ldy #$01 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _brk_y jsr _cputhex8 ; ; gotoxy (x2, ++y); cputhex8 (DbgSP); ; .dbg line, "dbg.c", 935 ldy #$01 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _DbgSP jsr _cputhex8 ; ; gotoxy (x1, ++y); cputhex16 (DbgCS); ; .dbg line, "dbg.c", 936 ldy #$02 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _DbgCS ldx _DbgCS+1 jsr _cputhex16 ; ; gotoxy (x1, ++y); cputhex16 (DbgHI); ; .dbg line, "dbg.c", 937 ldy #$02 lda (sp),y jsr pusha ldy #$01 clc tya adc (sp),y sta (sp),y jsr _gotoxy lda _DbgHI ldx _DbgHI+1 jsr _cputhex16 ; ; return 0; ; .dbg line, "dbg.c", 940 ldx #$00 txa ; ; } ; .dbg line, "dbg.c", 941 jmp incsp3 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ InitReg (void) ; --------------------------------------------------------------- .segment "CODE" .proc _InitReg: near .segment "CODE" ; ; UpdateReg (); ; .dbg line, "dbg.c", 948 jmp _UpdateReg .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ UpdateStack (void) ; --------------------------------------------------------------- .segment "CODE" .proc _UpdateStack: near .segment "CODE" ; ; unsigned char mem = StackAddr; ; .dbg line, "dbg.c", 970 lda _StackAddr jsr pusha ; ; unsigned char x1 = StackFrame.fd_x1 + 1; ; .dbg line, "dbg.c", 971 lda _StackFrame+4 clc adc #$01 jsr pusha ; ; unsigned char x2 = x1 + 6; ; .dbg line, "dbg.c", 972 ldy #$00 lda (sp),y clc adc #$06 jsr pusha ; ; for (y = StackFrame.fd_y2-1; y > StackFrame.fd_y1; --y) { ; .dbg line, "dbg.c", 975 jsr decsp1 lda _StackFrame+7 sec sbc #$01 ldy #$00 L0528: sta (sp),y ldx #$00 lda (sp),y jsr pushax lda _StackFrame+5 jsr tosicmp bcc L035D beq L035D ; ; gotoxy (x1, y); ; .dbg line, "dbg.c", 976 ldy #$02 lda (sp),y jsr pusha ldy #$01 lda (sp),y jsr _gotoxy ; ; cputhex8 (mem); ; .dbg line, "dbg.c", 977 ldy #$03 lda (sp),y jsr _cputhex8 ; ; gotoxy (x2, y); ; .dbg line, "dbg.c", 978 ldy #$01 lda (sp),y jsr pusha ldy #$01 lda (sp),y jsr _gotoxy ; ; cputhex8 (* (unsigned char*) (mem + 0x100)); ; .dbg line, "dbg.c", 979 ldy #$03 lda (sp),y ldx #$01 ldy #$00 sta ptr1 stx ptr1+1 lda (ptr1),y jsr _cputhex8 ; ; ++mem; ; .dbg line, "dbg.c", 980 ldy #$03 clc lda #$01 adc (sp),y sta (sp),y ; ; for (y = StackFrame.fd_y2-1; y > StackFrame.fd_y1; --y) { ; .dbg line, "dbg.c", 975 ldy #$00 sec lda (sp),y sbc #$01 jmp L0528 ; ; return mem; ; .dbg line, "dbg.c", 982 L035D: ldy #$03 ldx #$00 lda (sp),y ; ; } ; .dbg line, "dbg.c", 983 jmp incsp4 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ StackHome (void) ; --------------------------------------------------------------- .segment "CODE" .proc _StackHome: near .segment "CODE" ; ; StackAddr = DbgSP + 1; ; .dbg line, "dbg.c", 990 lda _DbgSP clc adc #$01 sta _StackAddr ; ; } ; .dbg line, "dbg.c", 991 rts .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ InitStack (void) ; --------------------------------------------------------------- .segment "CODE" .proc _InitStack: near .segment "CODE" ; ; StackHome (); ; .dbg line, "dbg.c", 998 jsr _StackHome ; ; UpdateStack (); ; .dbg line, "dbg.c", 999 jmp _UpdateStack .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ UpdateCStack (void) ; --------------------------------------------------------------- .segment "CODE" .proc _UpdateCStack: near .segment "CODE" ; ; unsigned mem = CStackAddr; ; .dbg line, "dbg.c", 1062 lda _CStackAddr ldx _CStackAddr+1 jsr pushax ; ; unsigned char x = CStackFrame.fd_x1 + 5; ; .dbg line, "dbg.c", 1063 lda _CStackFrame+4 clc adc #$05 jsr pusha ; ; for (y = CStackFrame.fd_y2-1; y > CStackFrame.fd_y1; --y) { ; .dbg line, "dbg.c", 1066 jsr decsp1 lda _CStackFrame+7 sec sbc #$01 ldy #$00 L0529: sta (sp),y ldx #$00 lda (sp),y jsr pushax lda _CStackFrame+5 jsr tosicmp bcc L039F beq L039F ; ; gotoxy (x, y); ; .dbg line, "dbg.c", 1067 ldy #$01 lda (sp),y jsr pusha ldy #$01 lda (sp),y jsr _gotoxy ; ; cputhex16 (* (unsigned*)mem); ; .dbg line, "dbg.c", 1068 ldy #$03 jsr ldaxysp ldy #$01 jsr ldaxidx jsr _cputhex16 ; ; mem += 2; ; .dbg line, "dbg.c", 1069 ldy #$02 ldx #$00 tya jsr addeqysp ; ; for (y = CStackFrame.fd_y2-1; y > CStackFrame.fd_y1; --y) { ; .dbg line, "dbg.c", 1066 ldy #$00 sec lda (sp),y sbc #$01 jmp L0529 ; ; cputsxy (CStackFrame.fd_x1+1, CStackFrame.fd_y2-1, "->"); ; .dbg line, "dbg.c", 1071 L039F: jsr decsp2 lda _CStackFrame+4 clc adc #$01 ldy #$01 sta (sp),y lda _CStackFrame+7 sec sbc #$01 dey sta (sp),y lda #<(L0001+603) ldx #>(L0001+603) jsr _cputsxy ; ; return mem; ; .dbg line, "dbg.c", 1072 ldy #$03 jsr ldaxysp ; ; } ; .dbg line, "dbg.c", 1073 jmp incsp4 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ CStackHome (void) ; --------------------------------------------------------------- .segment "CODE" .proc _CStackHome: near .segment "CODE" ; ; CStackAddr = DbgCS; ; .dbg line, "dbg.c", 1080 lda _DbgCS ldx _DbgCS+1 sta _CStackAddr stx _CStackAddr+1 ; ; } ; .dbg line, "dbg.c", 1081 rts .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ InitCStack (void) ; --------------------------------------------------------------- .segment "CODE" .proc _InitCStack: near .segment "CODE" ; ; CStackHome (); ; .dbg line, "dbg.c", 1088 jsr _CStackHome ; ; UpdateCStack (); ; .dbg line, "dbg.c", 1089 jmp _UpdateCStack .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ UpdateDump (void) ; --------------------------------------------------------------- .segment "CODE" .proc _UpdateDump: near .segment "CODE" ; ; unsigned mem = DumpAddr; ; .dbg line, "dbg.c", 1154 ldy #$29 jsr subysp lda _DumpAddr ldx _DumpAddr+1 jsr pushax ; ; unsigned char x = DumpFrame.fd_x1 + 1; ; .dbg line, "dbg.c", 1155 lda _DumpFrame+4 clc adc #$01 jsr pusha ; ; unsigned char* p = (unsigned char*) mem; ; .dbg line, "dbg.c", 1156 ldy #$04 jsr pushwysp ; ; for (y = DumpFrame.fd_y1+1; y < DumpFrame.fd_y2; ++y) { ; .dbg line, "dbg.c", 1158 lda _DumpFrame+5 clc adc #$01 ldy #$05 L052A: sta (sp),y ldx #$00 lda (sp),y jsr pushax lda _DumpFrame+7 jsr tosicmp bcs L03E7 ; ; cputsxy (x, y, DbgMemDump (mem, Buf, DUMP_BYTES)); ; .dbg line, "dbg.c", 1159 jsr decsp2 ldy #$04 lda (sp),y ldy #$01 sta (sp),y ldy #$07 lda (sp),y ldy #$00 sta (sp),y jsr decsp5 ldy #$0B jsr ldaxysp ldy #$03 sta (sp),y iny txa sta (sp),y lda #$0D jsr leaasp ldy #$01 sta (sp),y iny txa sta (sp),y lda #$08 ldy #$00 sta (sp),y jsr _DbgMemDump jsr _cputsxy ; ; mem += DUMP_BYTES; ; .dbg line, "dbg.c", 1160 ldy #$03 ldx #$00 lda #$08 jsr addeqysp ; ; for (y = DumpFrame.fd_y1+1; y < DumpFrame.fd_y2; ++y) { ; .dbg line, "dbg.c", 1158 ldy #$05 clc lda #$01 adc (sp),y jmp L052A ; ; return mem; ; .dbg line, "dbg.c", 1162 L03E7: ldy #$04 jsr ldaxysp ; ; } ; .dbg line, "dbg.c", 1163 ldy #$2E jmp addysp .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DumpHome (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DumpHome: near .segment "CODE" ; ; DumpAddr = 0; ; .dbg line, "dbg.c", 1170 lda #$00 sta _DumpAddr sta _DumpAddr+1 ; ; } ; .dbg line, "dbg.c", 1171 rts .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ GetArg16 (void) ; --------------------------------------------------------------- .segment "CODE" .proc _GetArg16: near .segment "CODE" ; ; return *(unsigned*)(brk_pc+1); ; .dbg line, "dbg.c", 1265 lda _brk_pc ldx _brk_pc+1 clc adc #$01 bcc L0432 inx L0432: ldy #$01 jmp ldaxidx .dbg line .endproc ; --------------------------------------------------------------- ; unsigned int __near__ GetStack16 (unsigned char) ; --------------------------------------------------------------- .segment "CODE" .proc _GetStack16: near .segment "CODE" ; ; return *(unsigned*)(DbgSP+Offs+0x101); ; .dbg line, "dbg.c", 1273 ldx #$00 ldy #$00 lda (sp),y clc adc _DbgSP bcc L052B inx L052B: clc adc #$01 bcc L0436 inx L0436: inx iny jsr ldaxidx ; ; } ; .dbg line, "dbg.c", 1274 jmp incsp1 .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ SetRTSBreak (void) ; --------------------------------------------------------------- .segment "CODE" .proc _SetRTSBreak: near .segment "CODE" ; ; DbgSetTmpBreak (GetStack16 (0) + 1); ; .dbg line, "dbg.c", 1281 lda #$00 jsr pusha jsr _GetStack16 clc adc #$01 bcc L043B inx L043B: jsr pushax jmp _DbgSetTmpBreak .dbg line .endproc ; --------------------------------------------------------------- ; void __near__ DbgEntry (void) ; --------------------------------------------------------------- .segment "CODE" .proc _DbgEntry: near .segment "DATA" L04A6: .byte $01 .segment "CODE" ; ; if (FirstTime) { ; .dbg line, "dbg.c", 1442 jsr decsp2 lda L04A6 beq L04A8 ; ; FirstTime = 0; ; .dbg line, "dbg.c", 1443 lda #$00 sta L04A6 ; ; RedrawStatic (WIN_ASM); ; .dbg line, "dbg.c", 1446 jsr pusha jsr _RedrawStatic ; ; InitAsm (); ; .dbg line, "dbg.c", 1447 jsr _InitAsm ; ; InitReg (); ; .dbg line, "dbg.c", 1448 jsr _InitReg ; ; InitStack (); ; .dbg line, "dbg.c", 1449 jsr _InitStack ; ; InitCStack (); ; .dbg line, "dbg.c", 1450 jsr _InitCStack ; ; UpdateDump (); ; .dbg line, "dbg.c", 1451 jsr _UpdateDump ; ; AsmHome (); ; .dbg line, "dbg.c", 1457 L04A8: jsr _AsmHome ; ; UpdateReg (); /* Must update this (static later) */ ; .dbg line, "dbg.c", 1458 jsr _UpdateReg ; ; StackHome (); ; .dbg line, "dbg.c", 1459 jsr _StackHome ; ; CStackHome (); ; .dbg line, "dbg.c", 1460 jsr _CStackHome ; ; done = 0; ; .dbg line, "dbg.c", 1463 lda #$00 L052D: ldy #$00 sta (sp),y ; ; while (!done) { ; .dbg line, "dbg.c", 1464 L04B9: ldy #$00 lda (sp),y jne incsp2 ; ; c = Frames [ActiveFrame]->fd_func (); ; .dbg line, "dbg.c", 1465 lda _ActiveFrame ldx _ActiveFrame+1 jsr aslax1 clc adc #<(_Frames) tay txa adc #>(_Frames) tax tya ldy #$01 jsr ldaxidx ldy #$0C jsr ldaxidx jsr callax ldy #$01 sta (sp),y ; ; switch (c) { ; .dbg line, "dbg.c", 1466 lda (sp),y ; ; } ; .dbg line, "dbg.c", 1546 jeq L04FB cmp #$0D jeq L04F1 cmp #$20 jeq L04E7 cmp #$31 beq L04C3 cmp #$32 beq L04C3 cmp #$33 beq L04C3 cmp #$34 beq L04C3 cmp #$35 beq L04C3 cmp #$3F beq L04D1 cmp #$43 jeq L04FB cmp #$48 beq L04DD cmp #$51 jeq L050B cmp #$52 jeq L0507 cmp #$53 jeq L0501 cmp #$55 beq L04D6 cmp #$85 beq L04D1 cmp #$86 beq L04D6 cmp #$88 beq L04E7 cmp #$8A beq L04DD cmp #$8C beq L04F1 jmp L04B9 ; ; ActivateFrame (c - '1', 0); ; .dbg line, "dbg.c", 1473 L04C3: jsr decsp3 ldy #$04 ldx #$00 lda (sp),y sec sbc #$31 bcs L04CE dex L04CE: ldy #$01 sta (sp),y iny txa sta (sp),y lda #$00 tay sta (sp),y jsr _ActivateFrame ; ; break; ; .dbg line, "dbg.c", 1474 jmp L04B9 ; ; HelpHandler (); ; .dbg line, "dbg.c", 1480 L04D1: jsr _HelpHandler ; ; break; ; .dbg line, "dbg.c", 1481 jmp L04B9 ; ; SetRTSBreak (); ; .dbg line, "dbg.c", 1488 L04D6: jsr _SetRTSBreak ; ; done = 1; ; .dbg line, "dbg.c", 1489 lda #$01 ; ; break; ; .dbg line, "dbg.c", 1490 jmp L052D ; ; if (AsmAddr != brk_pc) { ; .dbg line, "dbg.c", 1497 L04DD: lda _AsmAddr ldx _AsmAddr+1 jsr pushax lda _brk_pc ldx _brk_pc+1 jsr tosicmp jeq L04B9 ; ; DbgSetTmpBreak (AsmAddr); ; .dbg line, "dbg.c", 1498 lda _AsmAddr ldx _AsmAddr+1 jsr pushax jsr _DbgSetTmpBreak ; ; done = 1; ; .dbg line, "dbg.c", 1499 lda #$01 ; ; break; ; .dbg line, "dbg.c", 1501 jmp L052D ; ; SingleStep (1); ; .dbg line, "dbg.c", 1507 L04E7: tya jsr pusha jsr _SingleStep ; ; if (DbgTmpBreaksOk ()) { ; .dbg line, "dbg.c", 1508 jsr _DbgTmpBreaksOk tax jeq L04B9 ; ; done = 1; ; .dbg line, "dbg.c", 1510 lda #$01 ; ; break; ; .dbg line, "dbg.c", 1512 jmp L052D ; ; SingleStep (0); ; .dbg line, "dbg.c", 1518 L04F1: lda #$00 jsr pusha jsr _SingleStep ; ; if (DbgTmpBreaksOk ()) { ; .dbg line, "dbg.c", 1519 jsr _DbgTmpBreaksOk tax jeq L04B9 ; ; done = 1; ; .dbg line, "dbg.c", 1521 lda #$01 ; ; break; ; .dbg line, "dbg.c", 1523 jmp L052D ; ; done = 1; ; .dbg line, "dbg.c", 1527 L04FB: tya ; ; break; ; .dbg line, "dbg.c", 1528 jmp L052D ; ; brk_pc += DbgDisAsmLen (brk_pc); ; .dbg line, "dbg.c", 1532 L0501: lda _brk_pc ldx _brk_pc+1 jsr _DbgDisAsmLen clc adc _brk_pc sta _brk_pc txa adc _brk_pc+1 sta _brk_pc+1 ; ; InitAsm (); ; .dbg line, "dbg.c", 1533 jsr _InitAsm ; ; break; ; .dbg line, "dbg.c", 1534 jmp L04B9 ; ; Redraw (ActiveFrame); ; .dbg line, "dbg.c", 1538 L0507: lda _ActiveFrame jsr pusha jsr _Redraw ; ; break; ; .dbg line, "dbg.c", 1539 jmp L04B9 ; ; clrscr (); ; .dbg line, "dbg.c", 1543 L050B: jsr _clrscr ; ; exit (1); ; .dbg line, "dbg.c", 1544 ldx #$00 lda #$01 jsr _exit ; ; } ; .dbg line, "dbg.c", 1546 jmp L04B9 .dbg line .endproc