Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making RetroDebugger automatically stop at the beginning of the session #54

Open
4lph4-Ph4un opened this issue Jul 3, 2024 · 3 comments
Assignees
Labels
bug Something isn't working priority UX
Milestone

Comments

@4lph4-Ph4un
Copy link

Unfortunately this is really not a bug, but a mere question! I tried to look for an answer, but couldn't find anything clear elsewhere so here goes.

How does one make the RetroDebugger stop automatically on the breakpoints set in KickAssembler code (with the .break-directive)?
I build the code with symbols (-symbolfile-flag) and debuginfo (-debugdump-flag), and get the corresponding files.
I've tried to let the RetroDebugger know about these files by pointing them out to the Debugger when starting the debug-session. Below is an example of the kinds of flags I give to the debugger:

-symbols build/project.sym -debuginfo build/game.dbg -wait 3000 -autojmp -prg build/game.prg

What happens is, that the RetroDebugger starts up fine and even runs the assembled program without any issues, but the debugger won't stop at the breakpoint in the code.

Here's what the symbol/debug files look like in my project (the .sym-file has probably a lot of unnecessary cruft not useful for explaining this, but I'll throw it in none-the-less):

game.dbg:

<C64debugger version="1.0">
   <Sources values="INDEX,FILE">
      0,KickAss.jar:/include/autoinclude.asm
      1,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\src\project.asm
      2,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\pseudo.asm
      3,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\src\zeropage.asm
      4,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\assert_macros.asm
      5,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\src\data.asm
      6,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\assert_pseudo.asm
      7,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\src\config.asm
      8,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\macros.asm
      9,.\lib\sysutils\sysutils.asm
      10,.\lib\coreutils\coreutils.asm
      11,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\utils.asm
      12,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\src\main.asm
      13,D:\projects\programming\mos6502\kickassembler\kickasm-c64-tools\lib\coreutils\assert_funcs.asm
   </Sources>

   <Segment name="Default" dest="" values="START,END,FILE_IDX,LINE1,COL1,LINE2,COL2">
   </Segment>

   <Segment name="Zeropage" dest="" values="START,END,FILE_IDX,LINE1,COL1,LINE2,COL2">
   </Segment>

   <Segment name="Code" dest="" values="START,END,FILE_IDX,LINE1,COL1,LINE2,COL2">
      <Block name="Basic">
         $0801,$0802,0,56,2,56,6
         $0803,$0804,0,57,5,57,9
         $0805,$0805,0,58,5,58,9
         $0806,$0809,0,59,2,59,6
         $080a,$080a,0,60,2,60,6
         $080b,$080c,0,62,5,62,9
      </Block>
      <Block name="Main Begin">
         $0810,$0811,2,65,9,65,11
         $0812,$0814,2,66,9,66,11
         $0815,$0815,12,16,9,16,11
      </Block>
   </Segment>

   <Segment name="Data" dest="" values="START,END,FILE_IDX,LINE1,COL1,LINE2,COL2">
   </Segment>

   <Labels values="SEGMENT,ADDRESS,NAME,START,END,FILE_IDX,LINE1,COL1,LINE2,COL2">
      Default,$00ff,allOn,11,10,16,10,20
      Default,$ffffff00,allOff,11,11,16,11,21
      Default,$0001,bit0On,11,12,16,12,21
      Default,$0002,bit1On,11,13,16,13,21
      Default,$0004,bit2On,11,14,16,14,21
      Default,$0008,bit3On,11,15,16,15,21
      Default,$0010,bit4On,11,16,16,16,21
      Default,$0020,bit5On,11,17,16,17,21
      Default,$0040,bit6On,11,18,16,18,21
      Default,$0080,bit7On,11,19,16,19,21
      Default,$00fe,bit0Off,11,20,16,20,22
      Default,$00fd,bit1Off,11,21,16,21,22
      Default,$00fb,bit2Off,11,22,16,22,22
      Default,$00f7,bit3Off,11,23,16,23,22
      Default,$00ef,bit4Off,11,24,16,24,22
      Default,$00df,bit5Off,11,25,16,25,22
      Default,$00bf,bit6Off,11,26,16,26,22
      Default,$007f,bit7Off,11,27,16,27,22
      Default,$00f0,loNibbleOff,11,28,16,28,26
      Default,$ffffff0f,loNibbleOn,11,29,16,29,25
      Default,$ffffff0f,hiNibbleOff,11,30,16,30,26
      Default,$00f0,hiNibbleOn,11,31,16,31,25
      Default,$2000,test_ENSURE_ARG_NOT_NULL,4,11,1,11,25
      Default,$2000,test_ENSURE_ARG_BETWEEN,4,27,1,27,24
      Default,$2000,test_ENSURE_CMD_ARG,4,54,1,54,20
      Default,$2000,test_ENSURE_IMMEDIATE_CMD_ARG,4,85,1,85,30
      Default,$2000,test_ENSURE_NON_IMMEDIATE_CMD_ARG,4,115,1,115,34
      Default,$2000,test_STR_LP,4,145,1,145,12
      Default,$2000,test_bitsToBytes,13,11,1,11,17
      Default,$2000,test_bytesToBits,13,21,1,21,17
      Default,$2000,test_16BitNextArg,13,29,1,29,18
      Default,$2000,test_isPowerOfTwo,13,40,1,40,18
      Default,$2000,test_bit,6,11,1,11,9
      Default,$2000,test_mov,6,19,1,19,9
      Default,$2000,test_movx,6,37,1,37,10
      Default,$2000,test_movy,6,55,1,55,10
      Default,$2000,test_add,6,73,1,73,9
      Default,$2000,test_sub,6,91,1,91,9
      Default,$2000,test_adc,6,109,1,109,9
      Default,$2000,binary,6,111,9,111,15
      Default,$2000,ternary,6,141,9,141,16
      Default,$2000,test_sbc,6,175,1,175,9
      Default,$2000,binary,6,177,9,177,15
      Default,$2000,ternary,6,207,9,207,16
      Default,$2000,test_inc16,6,241,1,241,11
      Result,$2008,skip,2,331,1,331,5
      Expected,$2008,skip,6,249,9,249,13
      Default,$2000,test_dec16,6,258,1,258,11
      Result,$2008,skip,2,350,1,350,5
      Expected,$2008,skip,6,266,9,266,13
      Default,$2000,test_mov16,6,275,1,275,11
      Default,$2000,test_mov16x,6,306,1,306,12
      Default,$2000,test_mov16y,6,337,1,337,12
      Default,$2000,test_sta16xy,6,368,1,368,13
      Default,$2000,test_sta16yx,6,383,1,383,13
      Default,$2000,test_adc16,6,398,1,398,11
      Default,$2000,binary,6,400,9,400,15
      Default,$2000,ternary,6,435,9,435,16
      Default,$2000,test_sbc16,6,494,1,494,11
      Default,$2000,binary,6,496,9,496,15
      Default,$2000,ternary,6,531,9,531,16
      Default,$2000,test_asl,6,590,1,590,9
      Default,$2000,unary,6,592,9,592,14
      Default,$2000,binary,6,607,9,607,15
      Default,$2000,test_lsr,6,624,1,624,9
      Default,$2000,unary,6,626,9,626,14
      Default,$2000,binary,6,641,9,641,15
      Default,$2000,test_rol,6,658,1,658,9
      Default,$2000,unary,6,660,9,660,14
      Default,$2000,binary,6,675,9,675,15
      Default,$2000,test_ror,6,692,1,692,9
      Default,$2000,unary,6,694,9,694,14
      Default,$2000,binary,6,709,9,709,15
      Default,$2000,test_pla,6,726,1,726,9
      Default,$2000,test_nop,6,739,1,739,9
      Default,$2000,test_subInv,6,753,1,753,12
      Default,$2000,binary,6,755,9,755,15
      Default,$2000,ternary,6,789,9,789,16
      Default,$2000,test_dlt16,6,840,1,840,11
      Default,$2000,binary,6,842,9,842,15
      Default,$2000,ternary,6,890,9,890,16
      Default,$2000,swa,6,977,1,977,4
      Result,$200d,_tmp,2,715,9,715,11
      Expected,$200d,_tmp,6,986,17,986,19
      Default,$2000,swx,6,1005,1,1005,4
      Default,$2000,swy,6,1032,1,1032,4
      Default,$2000,pause,6,1060,1,1060,6
      Default,$002f,dataDirDefault,9,46,16,46,29
      Default,$0037,portDefault,9,47,16,47,26
      Default,$0000,dataDir,9,49,16,49,22
      Default,$0001,port,9,50,16,50,19
      Default,$0002,memBegin,9,59,16,59,23
      Default,$00ff,memEnd,9,60,16,60,21
      Default,$0100,memBegin,9,71,16,71,23
      Default,$01ff,memEnd,9,72,16,72,21
      Default,$0200,memBegin,9,81,16,81,23
      Default,$02ff,memEnd,9,82,16,82,21
      Default,$0300,memBegin,9,91,16,91,23
      Default,$03ff,memEnd,9,92,16,92,21
      Default,$0314,memBegin,9,100,24,100,31
      Default,$0333,memEnd,9,101,24,101,29
      Default,$2000,irq,9,103,17,103,20
      Default,$0314,lo,9,105,32,105,33
      Default,$0315,hi,9,106,32,106,33
      Default,$2000,BRK,9,108,17,108,20
      Default,$0316,lo,9,110,32,110,33
      Default,$0317,hi,9,111,32,111,33
      Default,$2000,nmi,9,113,17,113,20
      Default,$0318,lo,9,115,32,115,33
      Default,$0319,hi,9,116,32,116,33
      Default,$2000,OPEN,9,118,17,118,21
      Default,$031a,lo,9,120,32,120,33
      Default,$031b,hi,9,121,32,121,33
      Default,$2000,CLOSE,9,124,17,124,22
      Default,$031c,lo,9,126,32,126,33
      Default,$031d,hi,9,127,32,127,33
      Default,$2000,CHKIN,9,129,17,129,22
      Default,$031e,lo,9,131,32,131,33
      Default,$031f,hi,9,132,32,132,33
      Default,$2000,CHKOUT,9,134,17,134,23
      Default,$0320,lo,9,136,32,136,33
      Default,$0321,hi,9,137,32,137,33
      Default,$2000,CLRCHN,9,139,17,139,23
      Default,$0322,lo,9,141,32,141,33
      Default,$0323,hi,9,142,32,142,33
      Default,$2000,CHRIN,9,144,17,144,22
      Default,$0324,lo,9,146,32,146,33
      Default,$0325,hi,9,147,32,147,33
      Default,$2000,CHROUT,9,149,17,149,23
      Default,$0326,lo,9,151,32,151,33
      Default,$0327,hi,9,152,32,152,33
      Default,$2000,STOP,9,154,17,154,21
      Default,$0328,lo,9,156,32,156,33
      Default,$0329,hi,9,157,32,157,33
      Default,$2000,GETIN,9,159,17,159,22
      Default,$032a,lo,9,161,32,161,33
      Default,$032b,hi,9,162,32,162,33
      Default,$2000,CLALL,9,164,17,164,22
      Default,$032c,lo,9,166,32,166,33
      Default,$032d,hi,9,167,32,167,33
      Default,$2000,LOAD,9,169,17,169,21
      Default,$0330,lo,9,171,32,171,33
      Default,$0331,hi,9,172,32,172,33
      Default,$2000,SAVE,9,174,17,174,21
      Default,$0332,lo,9,176,32,176,33
      Default,$0333,hi,9,177,32,177,33
      Default,$0400,memBegin,9,182,16,182,23
      Default,$07ff,memEnd,9,183,16,183,21
      Default,$2000,unused,9,186,9,186,15
      Default,$0000,memBegin,9,187,24,187,31
      Default,$0000,memEnd,9,188,24,188,29
      Default,$2000,spritePointers,9,191,9,191,23
      Default,$0000,memBegin,9,192,24,192,31
      Default,$0000,memEnd,9,193,24,193,29
      Default,$0800,memBegin,9,199,16,199,23
      Default,$9fff,memEnd,9,200,16,200,21
      Default,$0800,unused,9,201,16,201,21
      Default,$0801,default,9,202,16,202,22
      Default,$8000,memBegin,9,206,16,206,23
      Default,$9fff,memEnd,9,207,16,207,21
      Default,$a000,memBegin,9,211,16,211,23
      Default,$bfff,memEnd,9,212,16,212,21
      Default,$a000,memBegin,9,216,16,216,23
      Default,$bfff,memEnd,9,217,16,217,21
      Default,$d000,memBegin,9,221,16,221,23
      Default,$dfff,memEnd,9,222,16,222,21
      Default,$d000,memBegin,9,226,16,226,23
      Default,$dfff,memEnd,9,227,16,227,21
      Default,$2000,masks,9,230,17,230,22
      Default,$0000,bank0,9,231,32,231,36
      Default,$0001,bank1,9,232,32,232,36
      Default,$0001,bank2,9,233,32,233,36
      Default,$0003,bank3,9,234,32,234,36
      Default,$0000,chrMem0,9,236,32,236,38
      Default,$0001,chrMem1,9,237,32,237,38
      Default,$0002,chrMem2,9,238,32,238,38
      Default,$0003,chrMem3,9,239,32,239,38
      Default,$0004,chrMem4,9,240,32,240,38
      Default,$0005,chrMem5,9,241,32,241,38
      Default,$0006,chrMem6,9,242,32,242,38
      Default,$0007,chrMem7,9,243,32,243,38
      Default,$0003,bm0,9,245,32,245,34
      Default,$0007,bm1,9,246,32,246,34
      Default,$000f,screenMem00,9,248,32,248,42
      Default,$001f,screenMem01,9,249,32,249,42
      Default,$002f,screenMem02,9,250,32,250,42
      Default,$003f,screenMem03,9,251,32,251,42
      Default,$004f,screenMem04,9,252,32,252,42
      Default,$005f,screenMem05,9,253,32,253,42
      Default,$006f,screenMem06,9,254,32,254,42
      Default,$007f,screenMem07,9,255,32,255,42
      Default,$008f,screenMem08,9,256,32,256,42
      Default,$009f,screenMem09,9,257,32,257,42
      Default,$00af,screenMem10,9,258,32,258,42
      Default,$00bf,screenMem11,9,259,32,259,42
      Default,$00cf,screenMem12,9,260,32,260,42
      Default,$00df,screenMem13,9,261,32,261,42
      Default,$00ef,screenMem14,9,262,32,262,42
      Default,$00ff,screenMem15,9,263,32,263,42
      Default,$d000,memBegin,9,267,24,267,31
      Default,$d3ff,memEnd,9,268,24,268,29
      Default,$d000,spr0XPos,9,274,24,274,31
      Default,$d001,spr0YPos,9,275,24,275,31
      Default,$d002,spr1XPos,9,276,24,276,31
      Default,$d003,spr1YPos,9,277,24,277,31
      Default,$d004,spr2XPos,9,278,24,278,31
      Default,$d005,spr2YPos,9,279,24,279,31
      Default,$d006,spr3XPos,9,280,24,280,31
      Default,$d007,spr3YPos,9,281,24,281,31
      Default,$d008,spr4XPos,9,282,24,282,31
      Default,$d009,spr4YPos,9,283,24,283,31
      Default,$d00a,spr5XPos,9,284,24,284,31
      Default,$d00b,spr5YPos,9,285,24,285,31
      Default,$d00c,spr6XPos,9,286,24,286,31
      Default,$d00d,spr6YPos,9,287,24,287,31
      Default,$d00e,spr7XPos,9,288,24,288,31
      Default,$d00f,spr7YPos,9,289,24,289,31
      Default,$d010,sprXMSB,9,291,24,291,30
      Default,$d011,ctrl1,9,293,24,293,28
      Default,$d012,rasterLine,9,294,24,294,33
      Default,$d015,sprEnabled,9,295,24,295,33
      Default,$d016,ctrl2,9,296,24,296,28
      Default,$d017,stretchVer,9,297,24,297,33
      Default,$d018,memCtrl,9,298,24,298,30
      Default,$d019,intrStatus,9,299,24,299,33
      Default,$d01a,intrCtrl,9,300,24,300,31
      Default,$d01c,sprColorMode,9,301,24,301,35
      Default,$d01d,stretchHor,9,302,24,302,33
      Default,$d01e,sprCollisions,9,303,24,303,36
      Default,$d01f,bgCollisions,9,304,24,304,35
      Default,$d020,border,9,305,24,305,29
      Default,$d021,bg0,9,306,24,306,26
      Default,$d022,bg1,9,307,24,307,26
      Default,$d023,bg2,9,308,24,308,26
      Default,$d024,bg3,9,309,24,309,26
      Default,$d025,sprXtraColor1,9,310,24,310,36
      Default,$d026,sprXtraColor2,9,311,24,311,36
      Default,$d027,spr0Color,9,312,24,312,32
      Default,$d028,spr1Color,9,313,24,313,32
      Default,$d029,spr2Color,9,314,24,314,32
      Default,$d02a,spr3Color,9,315,24,315,32
      Default,$d02b,spr4Color,9,316,24,316,32
      Default,$d02c,spr5Color,9,317,24,317,32
      Default,$d02d,spr6Color,9,318,24,318,32
      Default,$d02e,spr7Color,9,319,24,319,32
      Default,$dd00,bankSelect,9,321,24,321,33
      Default,$d400,memBegin,9,325,24,325,31
      Default,$e1ff,memEnd,9,326,24,326,29
      Default,$2000,voice1,9,328,17,328,23
      Default,$d400,memBegin,9,329,32,329,39
      Default,$d400,FreqLo,9,330,32,330,37
      Default,$d401,FreqHi,9,331,32,331,37
      Default,$d402,PulseLo,9,332,32,332,38
      Default,$d403,PulseHi,9,333,32,333,38
      Default,$d404,Ctrl,9,334,32,334,35
      Default,$d405,AD,9,335,32,335,33
      Default,$d406,SR,9,336,32,336,33
      Default,$2000,voice2,9,338,17,338,23
      Default,$d407,memBegin,9,339,32,339,39
      Default,$d407,FreqLo,9,340,32,340,37
      Default,$d408,FreqHi,9,341,32,341,37
      Default,$d409,PulseLo,9,342,32,342,38
      Default,$d40a,PulseHi,9,343,32,343,38
      Default,$d40b,Ctrl,9,344,32,344,35
      Default,$d40c,AD,9,345,32,345,33
      Default,$d40d,SR,9,346,32,346,33
      Default,$2000,voice3,9,348,17,348,23
      Default,$d40e,memBegin,9,349,32,349,39
      Default,$d40e,FreqLo,9,350,32,350,37
      Default,$d40f,FreqHi,9,351,32,351,37
      Default,$d410,PulseLo,9,352,32,352,38
      Default,$d411,PulseHi,9,353,32,353,38
      Default,$d412,Ctrl,9,354,32,354,35
      Default,$d413,AD,9,355,32,355,33
      Default,$d414,SR,9,356,32,356,33
      Default,$2000,filter,9,359,17,359,23
      Default,$d415,cutOffA,9,362,32,362,38
      Default,$d416,cutOffB,9,363,32,363,38
      Default,$d417,ctrl,9,364,32,364,35
      Default,$d418,mode,9,365,32,365,35
      Default,$d418,volumeCtrl,9,368,24,368,33
      Default,$d419,XValPaddle,9,370,24,370,33
      Default,$d41a,YValPaddle,9,371,24,371,33
      Default,$d41b,voice3WaveOut,9,373,24,373,36
      Default,$d41a,voice3ADSROut,9,374,24,374,36
      Default,$d800,memBegin,9,378,24,378,31
      Default,$dbe7,memEnd,9,379,24,379,29
      Default,$0080,offset,9,383,24,383,29
      Default,$2000,p1,9,385,17,385,19
      Default,$00ff,middle,9,386,32,386,37
      Default,$00fe,up,9,387,32,387,33
      Default,$00fd,down,9,388,32,388,35
      Default,$00fb,left,9,389,32,389,35
      Default,$00fa,upLeft,9,390,32,390,37
      Default,$00f9,downLeft,9,391,32,391,39
      Default,$00f7,right,9,392,32,392,36
      Default,$00f6,upRight,9,393,32,393,38
      Default,$00f5,downRight,9,394,32,394,40
      Default,$2000,p2,9,397,17,397,19
      Default,$007f,middle,9,398,32,398,37
      Default,$007e,up,9,399,32,399,33
      Default,$007d,down,9,400,32,400,35
      Default,$007b,left,9,401,32,401,35
      Default,$007a,upLeft,9,402,32,402,37
      Default,$0079,downLeft,9,403,32,403,39
      Default,$0077,right,9,404,32,404,36
      Default,$0076,upRight,9,405,32,405,38
      Default,$0075,downRight,9,406,32,406,40
      Default,$dc00,memBegin,9,411,24,411,31
      Default,$dcff,memEnd,9,412,24,412,29
      Default,$dc00,gamePort2,9,414,24,414,32
      Default,$dc01,gamePort1,9,415,24,415,32
      Default,$dc04,timerA,9,417,24,417,29
      Default,$dc06,timerB,9,418,24,418,29
      Default,$dc0d,intrCtrl,9,419,24,419,31
      Default,$dc0e,intrTimerACtrl,9,420,24,420,37
      Default,$dc0f,intrTimerBCtrl,9,421,24,421,37
      Default,$dd00,memBegin,9,425,24,425,31
      Default,$ddff,memEnd,9,426,24,426,29
      Default,$dd0d,intrCtrl,9,428,24,428,31
      Default,$dd0e,intrTimerACtrl,9,429,24,429,37
      Default,$dd0f,intrTimerBCtrl,9,430,24,430,37
      Default,$e000,memBegin,9,435,16,435,23
      Default,$ffff,memEnd,9,436,16,436,21
      Default,$fd30,memBegin,9,439,24,439,31
      Default,$fd50,memEnd,9,440,24,440,29
      Default,$ff5e,resetPAL_NTSC,9,443,16,443,28
      Default,$ea31,intrHandlerBegin,9,446,24,446,39
      Default,$ea81,intrHandlerEnd,9,447,24,447,37
      Default,$fe66,BRK,9,448,24,448,26
      Default,$fe47,nmi,9,449,24,449,26
      Default,$e500,IOBASE,9,451,24,451,29
      Default,$e505,SCREEN,9,452,24,452,29
      Default,$e50a,PLOT,9,453,24,453,27
      Default,$ea87,SCNKEY,9,454,24,454,29
      Default,$ed09,TALK,9,455,24,455,27
      Default,$ed0c,LISTEN,9,456,24,456,29
      Default,$edb9,SECOND,9,457,24,457,29
      Default,$edc7,TALKSA,9,458,24,458,29
      Default,$eddd,CIOUT,9,459,24,459,28
      Default,$edef,UNTALK,9,460,24,460,29
      Default,$edfe,UNLSN,9,461,24,461,28
      Default,$ee13,ACPTR,9,462,24,462,28
      Default,$f13e,GETIN,9,463,24,463,28
      Default,$f147,CHRIN,9,464,24,464,28
      Default,$f1ca,CHROUT,9,465,24,465,29
      Default,$f20e,CHKIN,9,466,24,466,28
      Default,$f250,CHKOUT,9,467,24,467,29
      Default,$f291,CLOSE,9,468,24,468,28
      Default,$f32f,CLALL,9,469,24,469,28
      Default,$f333,CLRCHN,9,470,24,470,29
      Default,$f34a,OPEN,9,471,24,471,27
      Default,$f4a5,LOAD,9,472,24,472,27
      Default,$f5ed,SAVE,9,473,24,473,27
      Default,$f6e4,SETTIM,9,474,24,474,29
      Default,$f69b,UDTIM,9,475,24,475,28
      Default,$f6dd,RDTIM,9,476,24,476,28
      Default,$f6ed,STOP,9,477,24,477,27
      Default,$fd15,RESTOR,9,478,24,478,29
      Default,$fd1a,VECTOR,9,479,24,479,29
      Default,$fd50,RAMTAS,9,480,24,480,29
      Default,$fda3,IOINIT,9,481,24,481,29
      Default,$fdf9,SETNAM,9,482,24,482,29
      Default,$fe00,SETLFS,9,483,24,483,29
      Default,$fe07,READST,9,484,24,484,29
      Default,$fe18,SETMSG,9,485,24,485,29
      Default,$fe21,SETTMO,9,486,24,486,29
      Default,$fe25,MEMTOP,9,487,24,487,29
      Default,$fe34,MEMBOT,9,488,24,488,29
      Default,$ff5b,CINT,9,489,24,489,27
      Default,$fce2,coldReset,9,493,24,493,32
      Default,$fe43,nmi,9,494,24,494,26
      Default,$ff48,interrupt,9,495,24,495,32
      Default,$ff81,CINT,9,499,24,499,27
      Default,$ff84,IOINIT,9,500,24,500,29
      Default,$ff87,RAMTAS,9,501,24,501,29
      Default,$ff8a,RESTOR,9,502,24,502,29
      Default,$ff8d,VECTOR,9,503,24,503,29
      Default,$ff90,SETMSG,9,504,24,504,29
      Default,$ff93,SECOND,9,505,24,505,29
      Default,$ff96,TALKSA,9,506,24,506,29
      Default,$ff99,MEMTOP,9,507,24,507,29
      Default,$ff9c,MEMBOT,9,508,24,508,29
      Default,$ff9f,SCNKEY,9,509,24,509,29
      Default,$ffa2,SETTMO,9,510,24,510,29
      Default,$ffa5,ACPTR,9,511,24,511,28
      Default,$ffa8,CIOUT,9,512,24,512,28
      Default,$ffab,UNTALK,9,513,24,513,29
      Default,$ffae,UNLSN,9,514,24,514,28
      Default,$ffb1,LISTEN,9,515,24,515,29
      Default,$ffb4,TALK,9,516,24,516,27
      Default,$ffb7,READST,9,517,24,517,29
      Default,$ffba,SETLFS,9,518,24,518,29
      Default,$ffbd,SETNAM,9,519,24,519,29
      Default,$ffc0,OPEN,9,520,24,520,27
      Default,$ffc3,CLOSE,9,521,24,521,28
      Default,$ffc6,CHKIN,9,522,24,522,28
      Default,$ffc9,CHKOUT,9,523,24,523,29
      Default,$ffcc,CLRCHN,9,524,24,524,29
      Default,$ffcf,CHRIN,9,525,24,525,28
      Default,$ffd2,CHROUT,9,526,24,526,29
      Default,$ffd5,LOAD,9,527,24,527,27
      Default,$ffd8,SAVE,9,528,24,528,27
      Default,$ffdb,SETTIM,9,529,24,529,29
      Default,$ffde,RDTIM,9,530,24,530,28
      Default,$ffe1,STOP,9,531,24,531,27
      Default,$ffe4,GETIN,9,532,24,532,28
      Default,$ffe7,CLALL,9,533,24,533,28
      Default,$ffea,UDTIM,9,534,24,534,28
      Default,$ffed,SCREEN,9,535,24,535,29
      Default,$fff0,PLOT,9,536,24,536,27
      Default,$fff3,IOBASE,9,537,24,537,29
      Default,$2000,nmi,9,541,17,541,20
      Default,$fe43,default,9,542,32,542,38
      Default,$fffa,lo,9,543,32,543,33
      Default,$fffb,hi,9,544,32,544,33
      Default,$2000,coldReset,9,546,17,546,26
      Default,$fce2,default,9,547,32,547,38
      Default,$fffc,lo,9,548,32,548,33
      Default,$fffd,hi,9,549,32,549,33
      Default,$2000,irq,9,551,17,551,20
      Default,$ff48,default,9,552,32,552,38
      Default,$fffe,lo,9,553,32,553,33
      Default,$ffff,hi,9,554,32,554,33
      Default,$e000,memBegin,9,560,16,560,23
      Default,$ffff,memEnd,9,561,16,561,21
      Default,$0032,maxFps,7,7,16,7,21
      Default,$0000,VicIIBankOffset,7,8,16,8,30
      Default,$0400,screenMemOffset,7,9,16,9,30
      Default,$2000,bitmapOffset,7,10,16,10,27
      Default,$0000,frameOffset,7,11,16,11,26
      Default,$0000,charMemOffset,7,12,16,12,28
      Default,$0002,zpBegin,7,14,16,14,22
      Default,$0810,mainCodeBegin,7,15,16,15,28
      Default,$2000,bitmapMemBegin,7,16,16,16,29
      Default,$0000,charMemBegin,7,17,16,17,27
      Code,$080b,upstartEnd,0,61,1,61,11
      Code,$0810,main,12,14,1,14,5
      Default,$ea31,default,9,104,32,104,38
      Default,$fe66,default,9,109,32,109,38
      Default,$fe47,default,9,114,32,114,38
      Default,$f34a,default,9,119,32,119,38
      Default,$f291,default,9,125,32,125,38
      Default,$f20e,default,9,130,32,130,38
      Default,$f250,default,9,135,32,135,38
      Default,$f333,default,9,140,32,140,38
      Default,$f147,default,9,145,32,145,38
      Default,$f1ca,default,9,150,32,150,38
      Default,$f6ed,default,9,155,32,155,38
      Default,$f13e,default,9,160,32,160,38
      Default,$f32f,default,9,165,32,165,38
      Default,$f4a5,default,9,170,32,170,38
      Default,$f5ed,default,9,175,32,175,38
   </Labels>

   <Breakpoints values="SEGMENT,ADDRESS,ARGUMENT">
      Code,$0810,
   </Breakpoints>

   <Watchpoints values="SEGMENT,ADDRESS1,ADDRESS2,ARGUMENT">
   </Watchpoints>

</C64debugger>

project.sym:

.namespace BitMasks {
  .label bit2Off=$fb
  .label hiNibbleOff=$ffffff0f
  .label bit1Off=$fd
  .label bit3Off=$f7
  .label bit4Off=$ef
  .label allOff=$ffffff00
  .label bit0Off=$fe
  .label allOn=$ff
  .label bit7Off=$7f
  .label bit5Off=$df
  .label bit6Off=$bf
  .label bit6On=$40
  .label bit7On=$80
  .label loNibbleOn=$ffffff0f
  .label hiNibbleOn=$f0
  .label bit0On=$1
  .label bit1On=$2
  .label bit2On=$4
  .label bit3On=$8
  .label bit4On=$10
  .label bit5On=$20
  .label loNibbleOff=$f0
}
.namespace AssertFuncs {
  .label test_16BitNextArg=$2000
  .label test_bitsToBytes=$2000
  .label test_isPowerOfTwo=$2000
  .label test_bytesToBits=$2000
}
.namespace Io {
  .label memBegin=$d000
  .label memEnd=$dfff
  .namespace ColorRam {
    .label memBegin=$d800
    .label memEnd=$dbe7
  }
  .namespace Cia1 {
    .label timerA=$dc04
    .label timerB=$dc06
    .label memBegin=$dc00
    .label memEnd=$dcff
    .label gamePort1=$dc01
    .label gamePort2=$dc00
    .label intrTimerACtrl=$dc0e
    .label intrTimerBCtrl=$dc0f
    .label intrCtrl=$dc0d
  }
  .namespace Cia2 {
    .label memBegin=$dd00
    .label memEnd=$ddff
    .label intrTimerACtrl=$dd0e
    .label intrTimerBCtrl=$dd0f
    .label intrCtrl=$dd0d
  }
  .namespace VicII {
    .label spr0XPos=$d000
    .label spr5XPos=$d00a
    .label sprXMSB=$d010
    .label memEnd=$d3ff
    .label spr7YPos=$d00f
    .label bg0=$d021
    .label spr2YPos=$d005
    .label bg2=$d023
    .label bg1=$d022
    .label ctrl2=$d016
    .label ctrl1=$d011
    .label intrCtrl=$d01a
    .label bg3=$d024
    .label spr6YPos=$d00d
    .label spr1YPos=$d003
    .label memBegin=$d000
    .label spr6Color=$d02d
    .label spr4XPos=$d008
    .label spr3Color=$d02a
    .label bgCollisions=$d01f
    .label spr3XPos=$d006
    .label sprXtraColor2=$d026
    .label spr0Color=$d027
    .label sprXtraColor1=$d025
    .label memCtrl=$d018
    .label sprColorMode=$d01c
    .label border=$d020
    .label spr0YPos=$d001
    .label spr5YPos=$d00b
    .label spr7XPos=$d00e
    .label spr7Color=$d02e
    .label masks=$2000 {
      .label screenMem12=$cf
      .label screenMem13=$df
      .label screenMem10=$af
      .label screenMem11=$bf
      .label bm0=$3
      .label screenMem14=$ef
      .label bm1=$7
      .label screenMem15=$ff
      .label chrMem3=$3
      .label screenMem01=$1f
      .label chrMem2=$2
      .label screenMem02=$2f
      .label chrMem1=$1
      .label chrMem0=$0
      .label screenMem00=$f
      .label bank2=$1
      .label chrMem7=$7
      .label screenMem05=$5f
      .label bank3=$3
      .label chrMem6=$6
      .label screenMem06=$6f
      .label bank0=$0
      .label chrMem5=$5
      .label screenMem03=$3f
      .label bank1=$1
      .label chrMem4=$4
      .label screenMem04=$4f
      .label screenMem09=$9f
      .label screenMem07=$7f
      .label screenMem08=$8f
    }
    .label spr2XPos=$d004
    .label spr4YPos=$d009
    .label spr4Color=$d02b
    .label spr1Color=$d028
    .label stretchVer=$d017
    .label sprEnabled=$d015
    .label rasterLine=$d012
    .label bankSelect=$dd00
    .label sprCollisions=$d01e
    .label spr6XPos=$d00c
    .label stretchHor=$d01d
    .label spr3YPos=$d007
    .label spr2Color=$d029
    .label spr1XPos=$d002
    .label intrStatus=$d019
    .label spr5Color=$d02c
  }
  .namespace CtrlPort {
    .label p1=$2000 {
      .label middle=$ff
      .label left=$fb
      .label downLeft=$f9
      .label upLeft=$fa
      .label downRight=$f5
      .label up=$fe
      .label right=$f7
      .label down=$fd
      .label upRight=$f6
    }
    .label p2=$2000 {
      .label middle=$7f
      .label left=$7b
      .label downLeft=$79
      .label upLeft=$7a
      .label downRight=$75
      .label up=$7e
      .label right=$77
      .label down=$7d
      .label upRight=$76
    }
    .label offset=$80
  }
  .namespace Sid {
    .label filter=$2000 {
      .label mode=$d418
      .label ctrl=$d417
      .label cutOffA=$d415
      .label cutOffB=$d416
    }
    .label YValPaddle=$d41a
    .label memBegin=$d400
    .label memEnd=$e1ff
    .label voice1=$2000 {
      .label FreqHi=$d401
      .label FreqLo=$d400
      .label memBegin=$d400
      .label AD=$d405
      .label PulseHi=$d403
      .label Ctrl=$d404
      .label PulseLo=$d402
      .label SR=$d406
    }
    .label voice3=$2000 {
      .label FreqHi=$d40f
      .label FreqLo=$d40e
      .label memBegin=$d40e
      .label AD=$d413
      .label PulseHi=$d411
      .label Ctrl=$d412
      .label PulseLo=$d410
      .label SR=$d414
    }
    .label voice2=$2000 {
      .label FreqHi=$d408
      .label FreqLo=$d407
      .label memBegin=$d407
      .label AD=$d40c
      .label PulseHi=$d40a
      .label Ctrl=$d40b
      .label PulseLo=$d409
      .label SR=$d40d
    }
    .label voice3WaveOut=$d41b
    .label voice3ADSROut=$d41a
    .label volumeCtrl=$d418
    .label XValPaddle=$d419
  }
}
.namespace Config {
  .label charMemOffset=$0
  .label charMemBegin=$0
  .label screenMemOffset=$400
  .label VicIIBankOffset=$0
  .label bitmapOffset=$2000
  .label frameOffset=$0
  .label mainCodeBegin=$810
  .label bitmapMemBegin=$2000
  .label maxFps=$32
  .label zpBegin=$2
}
.namespace KernalRom {
  .namespace Routines {
    .label SETLFS=$fe00
    .label intrHandlerEnd=$ea81
    .label PLOT=$e50a
    .label UDTIM=$f69b
    .label LOAD=$f4a5
    .label CHKOUT=$f250
    .label MEMBOT=$fe34
    .label intrHandlerBegin=$ea31
    .label CLRCHN=$f333
    .label SETMSG=$fe18
    .label nmi=$fe47
    .label TALK=$ed09
    .label CLOSE=$f291
    .label GETIN=$f13e
    .label SCREEN=$e505
    .label RESTOR=$fd15
    .label CIOUT=$eddd
    .label LISTEN=$ed0c
    .label SAVE=$f5ed
    .label ACPTR=$ee13
    .label CHRIN=$f147
    .label SETTIM=$f6e4
    .label SETTMO=$fe21
    .label RDTIM=$f6dd
    .label STOP=$f6ed
    .label CLALL=$f32f
    .label RAMTAS=$fd50
    .label SETNAM=$fdf9
    .label OPEN=$f34a
    .label VECTOR=$fd1a
    .label READST=$fe07
    .label CHROUT=$f1ca
    .label CINT=$ff5b
    .label TALKSA=$edc7
    .label MEMTOP=$fe25
    .label SCNKEY=$ea87
    .label CHKIN=$f20e
    .label BRK=$fe66
    .label SECOND=$edb9
    .label UNTALK=$edef
    .label IOINIT=$fda3
    .label UNLSN=$edfe
    .label IOBASE=$e500
  }
  .namespace Services {
    .label interrupt=$ff48
    .label coldReset=$fce2
    .label nmi=$fe43
  }
  .label memBegin=$e000
  .label resetPAL_NTSC=$ff5e
  .label memEnd=$ffff
  .namespace VectorDefaultTable {
    .label memBegin=$fd30
    .label memEnd=$fd50
  }
  .namespace Func {
    .label SETLFS=$ffba
    .label UDTIM=$ffea
    .label PLOT=$fff0
    .label LOAD=$ffd5
    .label CHKOUT=$ffc9
    .label MEMBOT=$ff9c
    .label CLRCHN=$ffcc
    .label SETMSG=$ff90
    .label TALK=$ffb4
    .label CLOSE=$ffc3
    .label GETIN=$ffe4
    .label SCREEN=$ffed
    .label RESTOR=$ff8a
    .label CIOUT=$ffa8
    .label LISTEN=$ffb1
    .label SAVE=$ffd8
    .label ACPTR=$ffa5
    .label CHRIN=$ffcf
    .label SETTIM=$ffdb
    .label SETTMO=$ffa2
    .label RDTIM=$ffde
    .label STOP=$ffe1
    .label CLALL=$ffe7
    .label RAMTAS=$ff87
    .label SETNAM=$ffbd
    .label VECTOR=$ff8d
    .label READST=$ffb7
    .label OPEN=$ffc0
    .label CHROUT=$ffd2
    .label CINT=$ff81
    .label TALKSA=$ff96
    .label MEMTOP=$ff99
    .label SCNKEY=$ff9f
    .label CHKIN=$ffc6
    .label SECOND=$ff93
    .label IOINIT=$ff84
    .label UNTALK=$ffab
    .label UNLSN=$ffae
    .label IOBASE=$fff3
  }
  .namespace Vectors {
    .label coldReset=$2000 {
      .label hi=$fffd
      .label default=$fce2
      .label lo=$fffc
    }
    .label irq=$2000 {
      .label hi=$ffff
      .label default=$ff48
      .label lo=$fffe
    }
    .label nmi=$2000 {
      .label hi=$fffb
      .label default=$fe43
      .label lo=$fffa
    }
  }
}
.namespace Data {
}
.namespace DefaultScreenMemory {
  .label memBegin=$400
  .label memEnd=$7ff
  .label unused=$2000 {
    .label memBegin=$0
    .label memEnd=$0
  }
  .label spritePointers=$2000 {
    .label memBegin=$0
    .label memEnd=$0
  }
}
.namespace Proc {
  .label portDefault=$37
  .label port=$1
  .label dataDir=$0
  .label dataDirDefault=$2f
}
.namespace Page3 {
  .label memBegin=$300
  .label memEnd=$3ff
  .namespace Vectors {
    .label CHRIN=$2000 {
      .label hi=$325
      .label default=$f147
      .label lo=$324
    }
    .label memEnd=$333
    .label STOP=$2000 {
      .label hi=$329
      .label default=$f6ed
      .label lo=$328
    }
    .label LOAD=$2000 {
      .label hi=$331
      .label default=$f4a5
      .label lo=$330
    }
    .label CHKOUT=$2000 {
      .label hi=$321
      .label default=$f250
      .label lo=$320
    }
    .label irq=$2000 {
      .label hi=$315
      .label default=$ea31
      .label lo=$314
    }
    .label CLRCHN=$2000 {
      .label hi=$323
      .label default=$f333
      .label lo=$322
    }
    .label nmi=$2000 {
      .label hi=$319
      .label default=$fe47
      .label lo=$318
    }
    .label CLOSE=$2000 {
      .label hi=$31d
      .label default=$f291
      .label lo=$31c
    }
    .label CLALL=$2000 {
      .label hi=$32d
      .label default=$f32f
      .label lo=$32c
    }
    .label OPEN=$2000 {
      .label hi=$31b
      .label default=$f34a
      .label lo=$31a
    }
    .label CHROUT=$2000 {
      .label hi=$327
      .label default=$f1ca
      .label lo=$326
    }
    .label GETIN=$2000 {
      .label hi=$32b
      .label default=$f13e
      .label lo=$32a
    }
    .label memBegin=$314
    .label CHKIN=$2000 {
      .label hi=$31f
      .label default=$f20e
      .label lo=$31e
    }
    .label BRK=$2000 {
      .label hi=$317
      .label default=$fe66
      .label lo=$316
    }
    .label SAVE=$2000 {
      .label hi=$333
      .label default=$f5ed
      .label lo=$332
    }
  }
}
.namespace AssertPseudo {
  .label test_ror=$2000 {
    .label binary=$2000
    .label unary=$2000
  }
  .label test_rol=$2000 {
    .label binary=$2000
    .label unary=$2000
  }
  .label test_nop=$2000
  .label test_bit=$2000
  .label test_sbc16=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label test_mov=$2000
  .label test_inc16=$2000
  .label test_mov16y=$2000
  .label test_mov16x=$2000
  .label test_sta16xy=$2000
  .label test_pla=$2000
  .label test_movx=$2000
  .label swy=$2000
  .label swx=$2000
  .label test_movy=$2000
  .label test_adc=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label test_mov16=$2000
  .label test_add=$2000
  .label test_sta16yx=$2000
  .label test_asl=$2000 {
    .label binary=$2000
    .label unary=$2000
  }
  .label test_sbc=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label pause=$2000
  .label test_subInv=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label test_dec16=$2000
  .label test_lsr=$2000 {
    .label binary=$2000
    .label unary=$2000
  }
  .label test_dlt16=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label test_sub=$2000
  .label test_adc16=$2000 {
    .label binary=$2000
    .label ternary=$2000
  }
  .label swa=$2000
}
.namespace AssertMacros {
  .label test_ENSURE_ARG_NOT_NULL=$2000
  .label test_ENSURE_NON_IMMEDIATE_CMD_ARG=$2000
  .label test_STR_LP=$2000
  .label test_ENSURE_CMD_ARG=$2000
  .label test_ENSURE_IMMEDIATE_CMD_ARG=$2000
  .label test_ENSURE_ARG_BETWEEN=$2000
}
.namespace Page0 {
  .label memBegin=$2
  .label memEnd=$ff
}
.namespace Page1 {
  .label memBegin=$100
  .label memEnd=$1ff
}
.namespace ZP {
}
.namespace Page2 {
  .label memBegin=$200
  .label memEnd=$2ff
}
.namespace CartRomLo {
  .label memBegin=$8000
  .label memEnd=$9fff
}
.namespace BasicArea {
  .label default=$801
  .label memBegin=$800
  .label memEnd=$9fff
  .label unused=$800
}
.namespace CartRomHi2 {
  .label memBegin=$e000
  .label memEnd=$ffff
}
.namespace CartRomHi1 {
  .label memBegin=$a000
  .label memEnd=$bfff
}
.namespace Main {
  .label main=$810
}
.namespace BasicRom {
  .label memBegin=$a000
  .label memEnd=$bfff
}
.namespace CharRom {
  .label memBegin=$d000
  .label memEnd=$dfff
}

Any tips or tricks? Apologies in advance, if this was not the right forum for asking this kind of question!

@slajerek
Copy link
Owner

slajerek commented Jul 4, 2024

This is a duplicate/regression. The problem should be solved in most recent version by remembering last used segment.

In your code you have
<Segment name="Default" dest="" values="START,END,FILE_IDX,LINE1,COL1,LINE2,COL2"> </Segment>

that means Default segment is empty.

Anyway, the remaining issue is to provide -segment command line to select startup segment, but I hope last patch version should at least remember last used segment, please check if that works for you.

@slajerek slajerek added bug Something isn't working priority UX labels Jul 4, 2024
@4lph4-Ph4un
Copy link
Author

After testing it doesn't seem to automatically hit that. To further elaborate, the segments in the project I tried to get to work are defined as such:

/*------------------------------------------------------------------------------------------------
 * General C64 Utils
 *
 * A project for testing general utilities.
 *
/*------------------------------------------------------------------------------------------------
 * VARIABLES & GENERAL MACROS
 *-----------------------------------------------------------------------------------------------*/


#import "coreutils.asm"
#import "sysutils.asm"
#import "config.asm"

.file [name="game.prg", segments="Zeropage, Upstart, Code, Data"]

/*------------------------------------------------------------------------------------------------
 * ZEROPAGE
 *-----------------------------------------------------------------------------------------------*/
        .segment Zeropage [start=Config.zpBegin, min=Page0.memBegin, max=Page0.memEnd]
#import "zeropage.asm"

/*------------------------------------------------------------------------------------------------
 * BASIC
 *-----------------------------------------------------------------------------------------------*/
        .segment Upstart []
:BasicUpstart2(Config.mainCodeBegin)

/*------------------------------------------------------------------------------------------------
 * MAIN
 *-----------------------------------------------------------------------------------------------*/
        .segment Code []
#import "main.asm"

/*------------------------------------------------------------------------------------------------
 * DATA
 *-----------------------------------------------------------------------------------------------*/
        .segment Data []                    
#import "data.asm"

@slajerek
Copy link
Owner

slajerek commented Jul 10, 2024

Ok, I've checked the code and the Segment is not restored after RetroDebugger is restarted, I'll fix that.

However, the segment should be re-activated upon PRG reload. Thus, the selected Segment will stay still selected after PRG reload. Thus as a workaround, you can launch RetroDebugger, select the appropriate Segment, and ensure RetroDebugger remains running. Subsequently, compile your code and execute RetroDebugger with the -pass command line argument. This approach will attach new PRG to the already running RetroDebugger instance, thereby reactivating the correct and selected Segment.

@slajerek slajerek added this to the v0.64.68 milestone Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working priority UX
Projects
None yet
Development

No branches or pull requests

2 participants