Announcement

Collapse

Forum etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


"PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

Killer Poke and how to check for it

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Killer Poke and how to check for it

    The killer poke is a side effect of a workaround to increase draw speed on older model Commodore PETs. To summarize the problem, on early PETs an undocumented pin register was set low to disable waiting for the beam to return to the top left before accessing video memory. As Commodore made hardware changes for different models or to reduce cost the circuitry around the pin was redesigned. When the same register was changed on later models it caused a voltage drop on the flyback signal to the CRT. This could cause permanent hardware damage to the PET. If you want more in depth information about the killer poke, you should check out the 6502 page on the subject here: http://www.6502.org/users/andre/peti...oke/index.html .

    When I first got my PET 4032 I had started researching it as much as I could. I found info on the killer poke early and immediately became hesitant to run any software I found on it. I did want to try some games so I set about to find a way to check for the poke. The first program I wanted to try was Lunar Lander so I loaded it over a datasette with a cassette to 3.5mm audio adapter. I thought I could just look through the code to see if it was there. Ha. That was naive. After watching `LIST` scroll for a while I knew I would need to do this on a modern PC. After finding a couple useful programs for working with TAPs and PRG files I have a workflow that allows program files to be searched for `59458` which is the killer poke register address.

    This primarily covers BASIC programs for now. If you have a machine language program you want to check you may be able to just use a hex editor on the extracted PRG file and search for `E810`. I have somewhat tested this but I don't have a program at this time that is known to have a killer poke I can't know what a match would look like for sure.

    The programs you will need are:
    Programs that you may want
    TAPClean and Bless have versions for all three major OSes. droiD64 is a jar so is also multiplatform. BasEdit is windows only and uses it's own UI design but works fine under wine-1.6.2 on Ubuntu 16.04. I'm open to suggestions for BASIC editors that are cross platform.

    This procedure will convert a TAP or D64 file into a PRG file and open it to search for the poke address.

    1-TAP
    : Run TAPClean from the command line on your TAP file with the following parameters "tapclean -20 -no64eof -noaddpause -o file.tap -doprg" it will generate a folder with the PRG files from the TAP
    1-D64: Run the droiD64 jar file. It's an Orthodox File Manager like Star/Midnight Commander. On one side open your D64 file. On the other side navigate to where you want to save the PRG file. Then select the PRG from the disk and click copy at the bottom.
    2: Start up BasEdit and open the PRG file. If the program is short look for a line with "SYS". That means you have a machine language program.
    3-BASIC: Hit F3 to search the file. Type in, yeah no paste, "59458" to look for killer pokes
    3-MACHINE: Same disclaimer as before, I don't have a known killer machine program so I cannot guarantee the that is is correct. Open the PRG file with the hex editor and search for `E842`.

    This should be all you need to check for a killer poke in a program you want run on your real pet.

    Other notes:
    `POKE 59468` is used to set the case of the letters. It looks similar to `95458` but is fine.

    #2
    If you test any files doing this I would appreciate it if you would respond to this thread with the name of the program you tested, whether it has the poke, the MD5 checksum of the TAP/D64 and PRG file you extracted, and whether it was BASIC or machine so others in the future can refer to the following list. If the file is available to download you can include the URL and I'll link it here as well to build a PET library. I'm going to start off the list by testing all the programs from Tezza's download page.

    The hope with this list is that someone can just md5 hash their files to avoid needing to go through the procedure themselves.

    Here is how Windows users can calculate a checksum: https://support.microsoft.com/en-us/...ues-for-a-file. MacOS users can use `md5`, and Linux users can use `md5sum` from the command line.

    No Killer Poke
    Name Type Source PRG Notes
    aid2.tap Machine 9a37327eb2c391050ad1924666dad83b 2590088a07d11e43974d8b30b32c7d98
    ambush.tap BASIC 623130e91894ed2daa383dd90c691daa 4d5a2aea6a38f378532b2dfbc72cbb52
    blackjack.tap BASIC 69b26de6a0c1a7b86118cf1bcdf9e166 52e971585dcff2d07a5150d7bca89b57
    checkers.tap BASIC a70b258bd256034ad4bab975b44014d8 16f5ad156c4aed569bb342377f5c24cc
    chessTM.tap BASIC 1b74c2e4feaf523aabbfff6a4e04d496 c7991718e54b5da13395e2aa9969b60c
    diamond-hunt-II.tap BASIC ce503ec7ef6d160424de62b94c86d198 9b609a0c09a90fb820cd4805dfb71e22
    dog-star-adventure.tap BASIC 4526e20786d1331ef50a6792afaf92e0 eae3dea38236acfbd548a121c6322284
    everest.tap BASIC d3e0513da2a7dd475715af863568b290 69ae0c06490b9e8f48e5e9761c0a7e10
    fire!.tap BASIC 10200f96525c8098a4951f84da460193 a6885249c6ad998ce9a54a09577f2a0d
    gammon.tap BASIC 4d82676af354176c0fbacba313783ddc f11413286ad191ea748f4918e2e675e4
    journey-to-atlantis.tap BASIC 8952f160f13057187aa8c2455053ed01 518e9bb52f151cc3ce1994c48881b8f3
    lunar-lander.tap BASIC 72e7a4657aa732dfd0d66f870ac237ac c18c8cd0926479d5b26a887bf009d938
    millipede.tap Machine 20449880e2ab8e95ffb978be4eb4ac0b fe45a508371429b73ae29dfc3812026c
    racer.tap BASIC cc5715a70580b67d66afabfd370e2bcb 927530e0053164e663331bfc24899b9a
    sheep.tap BASIC 36760d45a5cc2cacf17857cb153088af e624b2a6d579393c4134cc923f977e05
    space-invaders.tap Machine 31fc8feaa6fe0b50eb47fbbaa7a25630 cd3cebefee6ec8b356662bc32e86c8e8
    star-trek-6.8.tap FAIL f3fc69a0a1a98487657440a6c3ab3ce5 Fails in TAPClean and can't load in VICE
    supermon2-4.tap Machine 728edecf5cf79e886b5eb1a67d30592b c7a3bb70ae7569108bef23d24bb59075
    supermon-2-4-instructions.tap BASIC d3a00ef2b6b7fa248d4e6438694c517d b8e304c349969b60d1d16a69969d6d20
    tanks.tap BASIC ac3a0ac4a22fd4e16ff49cb160dda90f 364f80dbafb31a6ea846f65936f58c34 Fails in TAPClean at 99% integrity but runs fine after cleaned.

    Has Killer Poke
    Name Type Source PRG Notes
    spelunker.prg BASIC PRG Only 2b864bc7e9b2aa7c16295116478eb81a
    Last edited by AkBKukU; February 14, 2017, 08:52 PM.

    Comment


      #3
      Hmm, I just tried Space-Invaders.tap on my 4032 and it looked like it did actually collapse the screen (not immediately, but after it displayed the instructions for how to connect a speaker). Are you sure it doesn't have a killer poke?

      EDIT: I just found your video running the killer poke on the 4032 and the effect I'm getting from Space Invaders isn't quite the same (I got a short line in the middle of the screen then the display went completely off) so maybe it's crashing in a different way?

      EDIT 2: Yeah, I think it's crashing in a different way, I just tried the actual killer poke on my machine with the same results as in your video.
      Last edited by jmetal88; January 6, 2021, 05:33 AM.

      Comment

      Working...
      X