Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Darkly)
  • No Skin
Collapse

Chebucto Regional Softball Club

  1. Home
  2. Uncategorized
  3. tandy put their sound chip on the 1A interrupt?
A forum for discussing and organizing recreational softball and baseball games and leagues in the greater Halifax area.

tandy put their sound chip on the 1A interrupt?

Scheduled Pinned Locked Moved Uncategorized
325 Posts 1 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Foone🏳️‍⚧️F Foone🏳️‍⚧️

    Anyway it seems it doesn't have a VideoDetect function, it's a DriverDetect function, since it's used for sound too.

    First it goes through the video drivers in the following order:
    VGA, TGA, EGA, HGA, HERC, and CGA.
    Then it goes into the audio drivers:

    stdsnd, adlib, covox, gblast, ibmg, sblast, tandy.

    Foone🏳️‍⚧️F This user is from outside of this forum
    Foone🏳️‍⚧️F This user is from outside of this forum
    Foone🏳️‍⚧️
    wrote on last edited by
    #199

    stdsnd is pc speaker,
    adlib is adlib, covox is the speech thing, gblast is game blaster, most likely, ibmg is... I'm not sure. The PS-1 Audio card?

    sblash is soundblaster and tandy is tandy 3-voice

    Foone🏳️‍⚧️F 1 Reply Last reply
    0
    • Foone🏳️‍⚧️F Foone🏳️‍⚧️

      stdsnd is pc speaker,
      adlib is adlib, covox is the speech thing, gblast is game blaster, most likely, ibmg is... I'm not sure. The PS-1 Audio card?

      sblash is soundblaster and tandy is tandy 3-voice

      Foone🏳️‍⚧️F This user is from outside of this forum
      Foone🏳️‍⚧️F This user is from outside of this forum
      Foone🏳️‍⚧️
      wrote on last edited by
      #200

      I'm an idiot, this isn't a driver check... it's an argv check!

      you can pass "ega" or "vga" or whatever to carmen.exe to select those types.

      Foone🏳️‍⚧️F 1 Reply Last reply
      0
      • Foone🏳️‍⚧️F Foone🏳️‍⚧️

        I'm an idiot, this isn't a driver check... it's an argv check!

        you can pass "ega" or "vga" or whatever to carmen.exe to select those types.

        Foone🏳️‍⚧️F This user is from outside of this forum
        Foone🏳️‍⚧️F This user is from outside of this forum
        Foone🏳️‍⚧️
        wrote on last edited by
        #201

        the other argument you can pass is ROSTER=$FILENAME

        This lets you reset which file it uses for the list of registered players, setting it to something other than the default ACME.DAT

        Not mentioned in the manual, but I can see how that might be useful for schools and such

        Foone🏳️‍⚧️F 1 Reply Last reply
        0
        • Foone🏳️‍⚧️F Foone🏳️‍⚧️

          the other argument you can pass is ROSTER=$FILENAME

          This lets you reset which file it uses for the list of registered players, setting it to something other than the default ACME.DAT

          Not mentioned in the manual, but I can see how that might be useful for schools and such

          Foone🏳️‍⚧️F This user is from outside of this forum
          Foone🏳️‍⚧️F This user is from outside of this forum
          Foone🏳️‍⚧️
          wrote on last edited by
          #202

          I would say "especially if they're on a network!" but... this program is from 1990. Not many schools had networks in '90.

          Foone🏳️‍⚧️F 1 Reply Last reply
          0
          • Foone🏳️‍⚧️F Foone🏳️‍⚧️

            I would say "especially if they're on a network!" but... this program is from 1990. Not many schools had networks in '90.

            Foone🏳️‍⚧️F This user is from outside of this forum
            Foone🏳️‍⚧️F This user is from outside of this forum
            Foone🏳️‍⚧️
            wrote on last edited by
            #203

            looks like GameBlaster (GBLAST) has extra options, so you can do like GBLAST260 to set the IO addr

            Foone🏳️‍⚧️F 1 Reply Last reply
            0
            • Foone🏳️‍⚧️F Foone🏳️‍⚧️

              looks like GameBlaster (GBLAST) has extra options, so you can do like GBLAST260 to set the IO addr

              Foone🏳️‍⚧️F This user is from outside of this forum
              Foone🏳️‍⚧️F This user is from outside of this forum
              Foone🏳️‍⚧️
              wrote on last edited by
              #204

              stdsnd can also be written as stdsnd! which does something different. What? I have no idea.

              Foone🏳️‍⚧️F 1 Reply Last reply
              0
              • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                stdsnd can also be written as stdsnd! which does something different. What? I have no idea.

                Foone🏳️‍⚧️F This user is from outside of this forum
                Foone🏳️‍⚧️F This user is from outside of this forum
                Foone🏳️‍⚧️
                wrote on last edited by
                #205

                ugh. I pulled the thread to try and remap the memory to avoid ghidra disassembling it wrong, and it keeps getting worse. this is a mess.

                Foone🏳️‍⚧️F 1 Reply Last reply
                0
                • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                  ugh. I pulled the thread to try and remap the memory to avoid ghidra disassembling it wrong, and it keeps getting worse. this is a mess.

                  Foone🏳️‍⚧️F This user is from outside of this forum
                  Foone🏳️‍⚧️F This user is from outside of this forum
                  Foone🏳️‍⚧️
                  wrote on last edited by
                  #206

                  okay I reverted back to my old mapping, then created a new memory mapping: I made up some bytes at 2000:xxxx where it incorrectly thinks it's going, and set up a JMP $CORRECT_ADDRESS there by editing the bytes, then telling Ghidra it's a thunk.

                  Foone🏳️‍⚧️F 1 Reply Last reply
                  0
                  • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                    okay I reverted back to my old mapping, then created a new memory mapping: I made up some bytes at 2000:xxxx where it incorrectly thinks it's going, and set up a JMP $CORRECT_ADDRESS there by editing the bytes, then telling Ghidra it's a thunk.

                    Foone🏳️‍⚧️F This user is from outside of this forum
                    Foone🏳️‍⚧️F This user is from outside of this forum
                    Foone🏳️‍⚧️
                    wrote on last edited by
                    #207

                    this is deeply stupid but it appears to mostly work

                    Foone🏳️‍⚧️F 1 Reply Last reply
                    0
                    • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                      this is deeply stupid but it appears to mostly work

                      Foone🏳️‍⚧️F This user is from outside of this forum
                      Foone🏳️‍⚧️F This user is from outside of this forum
                      Foone🏳️‍⚧️
                      wrote on last edited by
                      #208

                      THE MEMORY ADDRESSES ARE OVERLAPPING AGAIN

                      Foone🏳️‍⚧️F 1 Reply Last reply
                      0
                      • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                        THE MEMORY ADDRESSES ARE OVERLAPPING AGAIN

                        Foone🏳️‍⚧️F This user is from outside of this forum
                        Foone🏳️‍⚧️F This user is from outside of this forum
                        Foone🏳️‍⚧️
                        wrote on last edited by
                        #209

                        this isn't supposed to be possible but apparently it is

                        Foone🏳️‍⚧️F 1 Reply Last reply
                        0
                        • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                          this isn't supposed to be possible but apparently it is

                          Foone🏳️‍⚧️F This user is from outside of this forum
                          Foone🏳️‍⚧️F This user is from outside of this forum
                          Foone🏳️‍⚧️
                          wrote on last edited by
                          #210

                          so the program has three main code segments, as it has approximately 111kb of code
                          The problem is that ghidra gets confused when the relative addresses are too big.

                          Foone🏳️‍⚧️F 1 Reply Last reply
                          0
                          • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                            so the program has three main code segments, as it has approximately 111kb of code
                            The problem is that ghidra gets confused when the relative addresses are too big.

                            Foone🏳️‍⚧️F This user is from outside of this forum
                            Foone🏳️‍⚧️F This user is from outside of this forum
                            Foone🏳️‍⚧️
                            wrote on last edited by
                            #211

                            so the first one is at 1000:0000 and the second was at 1fb7:0009. I moved it to 5000:7000, and the second segment seems to be working fine now.

                            the problem is that I was only able to do that because the segment is only 82a7h long. the first segment, the 1000:0000 one, is FB79 long. So I can't just move it so it's in the middle of a segment, since it'll end up spanning into the next 64k chunk, which is where ghidra fucks up

                            Foone🏳️‍⚧️F 1 Reply Last reply
                            0
                            • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                              so the first one is at 1000:0000 and the second was at 1fb7:0009. I moved it to 5000:7000, and the second segment seems to be working fine now.

                              the problem is that I was only able to do that because the segment is only 82a7h long. the first segment, the 1000:0000 one, is FB79 long. So I can't just move it so it's in the middle of a segment, since it'll end up spanning into the next 64k chunk, which is where ghidra fucks up

                              Foone🏳️‍⚧️F This user is from outside of this forum
                              Foone🏳️‍⚧️F This user is from outside of this forum
                              Foone🏳️‍⚧️
                              wrote on last edited by
                              #212

                              I guess I could test it anyway. Move it to 9000:8000 and see what breaks. (like everything)

                              Foone🏳️‍⚧️F 1 Reply Last reply
                              0
                              • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                I guess I could test it anyway. Move it to 9000:8000 and see what breaks. (like everything)

                                Foone🏳️‍⚧️F This user is from outside of this forum
                                Foone🏳️‍⚧️F This user is from outside of this forum
                                Foone🏳️‍⚧️
                                wrote on last edited by
                                #213

                                9000:8006 9a d7 05 b7 1f CALLF SUB_2000_0147

                                Hey ghidra I can read the machine code. That's CALL FAR 1fb7:05d7, not CALL FAR 2000:0147! WHY ARE YOU CONFUSED BY THIS?

                                Foone🏳️‍⚧️F 1 Reply Last reply
                                0
                                • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                  9000:8006 9a d7 05 b7 1f CALLF SUB_2000_0147

                                  Hey ghidra I can read the machine code. That's CALL FAR 1fb7:05d7, not CALL FAR 2000:0147! WHY ARE YOU CONFUSED BY THIS?

                                  Foone🏳️‍⚧️F This user is from outside of this forum
                                  Foone🏳️‍⚧️F This user is from outside of this forum
                                  Foone🏳️‍⚧️
                                  wrote on last edited by
                                  #214

                                  well, if nothing else, I think this has caused it to stop thinking there's jumps into the middle of functions.
                                  so now I can just manually thunk every cross-segment call, by creating the 2000:0000 segment that ghidra is imagining exists

                                  Foone🏳️‍⚧️F 1 Reply Last reply
                                  0
                                  • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                    well, if nothing else, I think this has caused it to stop thinking there's jumps into the middle of functions.
                                    so now I can just manually thunk every cross-segment call, by creating the 2000:0000 segment that ghidra is imagining exists

                                    Foone🏳️‍⚧️F This user is from outside of this forum
                                    Foone🏳️‍⚧️F This user is from outside of this forum
                                    Foone🏳️‍⚧️
                                    wrote on last edited by
                                    #215

                                    I'll have to write some code to find all the CALL 2000:xxxxs and set up matching thunks

                                    Foone🏳️‍⚧️F 1 Reply Last reply
                                    0
                                    • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                      I'll have to write some code to find all the CALL 2000:xxxxs and set up matching thunks

                                      Foone🏳️‍⚧️F This user is from outside of this forum
                                      Foone🏳️‍⚧️F This user is from outside of this forum
                                      Foone🏳️‍⚧️
                                      wrote on last edited by
                                      #216

                                      I have discovered the bellhop island of stability

                                      Foone🏳️‍⚧️F 1 Reply Last reply
                                      0
                                      • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                        I have discovered the bellhop island of stability

                                        Foone🏳️‍⚧️F This user is from outside of this forum
                                        Foone🏳️‍⚧️F This user is from outside of this forum
                                        Foone🏳️‍⚧️
                                        wrote on last edited by
                                        #217

                                        I was extracting the portraits of the people you talk to, and it turns out they're number 1-36. naturally I checked all 256 possible options.

                                        but it turns out every thing above 37 either:
                                        1. crashes
                                        2. shows nothing
                                        3. shows pixel gibberish.

                                        EXCEPT 238. 238 renders a bellhop perfectly, just like 5 does

                                        Foone🏳️‍⚧️F 1 Reply Last reply
                                        0
                                        • Foone🏳️‍⚧️F Foone🏳️‍⚧️

                                          I was extracting the portraits of the people you talk to, and it turns out they're number 1-36. naturally I checked all 256 possible options.

                                          but it turns out every thing above 37 either:
                                          1. crashes
                                          2. shows nothing
                                          3. shows pixel gibberish.

                                          EXCEPT 238. 238 renders a bellhop perfectly, just like 5 does

                                          Foone🏳️‍⚧️F This user is from outside of this forum
                                          Foone🏳️‍⚧️F This user is from outside of this forum
                                          Foone🏳️‍⚧️
                                          wrote on last edited by
                                          #218

                                          All 36 people you can talk to in Where in the World is Carmen Sandiego? (enhanced, DOS, 1990)

                                          Link Preview Image
                                          Foone🏳️‍⚧️F 1 Reply Last reply
                                          0

                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • 1
                                          • 2
                                          • 8
                                          • 9
                                          • 10
                                          • 11
                                          • 12
                                          • 16
                                          • 17
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups