@@ -33,6 +33,7 @@ import (
3333 "github.com/jetsetilly/gopher2600/hardware/memory/memorymap"
3434 "github.com/jetsetilly/gopher2600/hardware/riot/input"
3535 "github.com/jetsetilly/gopher2600/linter"
36+ "github.com/jetsetilly/gopher2600/logger"
3637 "github.com/jetsetilly/gopher2600/patch"
3738 "github.com/jetsetilly/gopher2600/symbols"
3839)
@@ -91,7 +92,7 @@ func (dbg *Debugger) tokeniseCommand(cmd string, scribe bool, echo bool) (*comma
9192 // print normalised input if this is command from an interactive source
9293 // and not an auto-command
9394 if echo {
94- dbg .printLine (terminal .StyleInput , tokens .String ())
95+ dbg .printLine (terminal .StyleEcho , tokens .String ())
9596 }
9697
9798 // test to see if command is allowed when recording/playing a script
@@ -306,7 +307,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
306307 s .WriteString ("\n \n " )
307308 }
308309
309- dbg .printInstrument ( s )
310+ dbg .printLine ( terminal . StyleInstrument , s . String () )
310311 } else {
311312 dbg .printLine (terminal .StyleFeedback , "cartridge has no static data areas" )
312313 }
@@ -316,7 +317,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
316317 case "REGISTERS" :
317318 // !!TODO: poke/peek cartridge registers
318319 if bus := dbg .VCS .Mem .Cart .GetRegistersBus (); bus != nil {
319- dbg .printInstrument ( bus .GetRegisters ())
320+ dbg .printLine ( terminal . StyleInstrument , bus .GetRegisters (). String ())
320321 } else {
321322 dbg .printLine (terminal .StyleFeedback , "cartridge has no registers" )
322323 }
@@ -346,7 +347,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
346347 s .WriteString ("\n \n " )
347348 }
348349
349- dbg .printInstrument ( s )
350+ dbg .printLine ( terminal . StyleInstrument , s . String () )
350351 } else {
351352 dbg .printLine (terminal .StyleFeedback , "cartridge has no RAM" )
352353 }
@@ -355,7 +356,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
355356 }
356357 }
357358 } else {
358- dbg .printInstrument ( dbg .VCS .Mem .Cart )
359+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .Mem .Cart . String () )
359360 }
360361
361362 case cmdPatch :
@@ -745,7 +746,8 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
745746 }
746747 s .WriteString (dbg .Disasm .GetField (disassembly .FldActualNotes , dbg .lastResult ))
747748
748- if dbg .VCS .CPU .LastResult .Final {
749+ // change terminal output style depending on condition of last CPU result
750+ if dbg .lastResult .Result .Final {
749751 dbg .printLine (terminal .StyleCPUStep , s .String ())
750752 } else {
751753 dbg .printLine (terminal .StyleVideoStep , s .String ())
@@ -798,7 +800,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
798800 if hasMapped {
799801 dbg .printLine (terminal .StyleInstrument , "%s" , s .String ())
800802 } else {
801- dbg .printLine (terminal .StyleInstrument , fmt .Sprintf ("%v is not a mappable address" , address ))
803+ dbg .printLine (terminal .StyleFeedback , fmt .Sprintf ("%v is not a mappable address" , address ))
802804 }
803805
804806 } else {
@@ -849,7 +851,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
849851 // already caught by command line ValidateTokens()
850852 }
851853 } else {
852- dbg .printInstrument ( dbg .VCS .CPU )
854+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .CPU . String () )
853855 }
854856
855857 case cmdPeek :
@@ -910,16 +912,16 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
910912 }
911913
912914 case cmdRAM :
913- dbg .printInstrument ( dbg .VCS .Mem .RAM )
915+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .Mem .RAM . String () )
914916
915917 case cmdTimer :
916- dbg .printInstrument ( dbg .VCS .RIOT .Timer )
918+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .RIOT .Timer . String () )
917919
918920 case cmdTIA :
919- dbg .printInstrument ( dbg .VCS .TIA )
921+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA . String () )
920922
921923 case cmdAudio :
922- dbg .printInstrument ( dbg .VCS .TIA .Audio )
924+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Audio . String () )
923925
924926 case cmdTV :
925927 option , ok := tokens .Get ()
@@ -947,7 +949,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
947949 // already caught by command line ValidateTokens()
948950 }
949951 } else {
950- dbg .printInstrument ( dbg .tv )
952+ dbg .printLine ( terminal . StyleInstrument , dbg .tv . String () )
951953 }
952954
953955 // information about the machine (sprites, playfield)
@@ -964,14 +966,14 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
964966
965967 switch plyr {
966968 case 0 :
967- dbg .printInstrument ( dbg .VCS .TIA .Video .Player0 )
969+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Player0 . String () )
968970
969971 case 1 :
970- dbg .printInstrument ( dbg .VCS .TIA .Video .Player1 )
972+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Player1 . String () )
971973
972974 default :
973- dbg .printInstrument ( dbg .VCS .TIA .Video .Player0 )
974- dbg .printInstrument ( dbg .VCS .TIA .Video .Player1 )
975+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Player0 . String () )
976+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Player1 . String () )
975977 }
976978
977979 case cmdMissile :
@@ -987,21 +989,21 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
987989
988990 switch miss {
989991 case 0 :
990- dbg .printInstrument ( dbg .VCS .TIA .Video .Missile0 )
992+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Missile0 . String () )
991993
992994 case 1 :
993- dbg .printInstrument ( dbg .VCS .TIA .Video .Missile1 )
995+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Missile1 . String () )
994996
995997 default :
996- dbg .printInstrument ( dbg .VCS .TIA .Video .Missile0 )
997- dbg .printInstrument ( dbg .VCS .TIA .Video .Missile1 )
998+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Missile0 . String () )
999+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Missile1 . String () )
9981000 }
9991001
10001002 case cmdBall :
1001- dbg .printInstrument ( dbg .VCS .TIA .Video .Ball )
1003+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Ball . String () )
10021004
10031005 case cmdPlayfield :
1004- dbg .printInstrument ( dbg .VCS .TIA .Video .Playfield )
1006+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .TIA .Video .Playfield . String () )
10051007
10061008 case cmdDisplay :
10071009 var err error
@@ -1125,7 +1127,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
11251127 case cmdPanel :
11261128 mode , ok := tokens .Get ()
11271129 if ! ok {
1128- dbg .printInstrument ( dbg .VCS .Panel )
1130+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .Panel . String () )
11291131 return false , nil
11301132 }
11311133
@@ -1173,7 +1175,7 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
11731175 dbg .VCS .Panel .Handle (input .PanelReset , false )
11741176 }
11751177 }
1176- dbg .printInstrument ( dbg .VCS .Panel )
1178+ dbg .printLine ( terminal . StyleInstrument , dbg .VCS .Panel . String () )
11771179
11781180 case cmdJoystick :
11791181 var err error
@@ -1432,6 +1434,22 @@ func (dbg *Debugger) processTokens(tokens *commandline.Tokens) (bool, error) {
14321434 dbg .Disasm .Prefs .FxxxMirror .Set (! v )
14331435 }
14341436 }
1437+
1438+ case cmdLog :
1439+ option , ok := tokens .Get ()
1440+ if ok {
1441+ switch option {
1442+ case "CLEAR" :
1443+ logger .Clear ()
1444+ }
1445+ } else {
1446+ s := & strings.Builder {}
1447+ if logger .Write (s ) {
1448+ dbg .printLine (terminal .StyleLog , s .String ())
1449+ } else {
1450+ dbg .printLine (terminal .StyleFeedback , "log is empty" )
1451+ }
1452+ }
14351453 }
14361454
14371455 return false , nil
0 commit comments