• Please review our updated Terms and Rules here
  • From now on we will require that a prefix is set for any items in the sales area. We have created regions and locations for this. We also require that you select a delivery option before posting your listing. This will hopefully help us streamline the things that get listed for sales here and help local people better advertise their items, especially for local only sales. New sales rules are also coming, so stay tuned.

Pacific Northwest Paper Tape Punch Service - and request

Covers: Oregon and Washington
Oddball question: are you, perchance, planning on open sourcing the models for that paper cutter? Definitely interested in the design, as I have a few other machines that could use paper tape cut to varying sizes.
 
Oddball question: are you, perchance, planning on open sourcing the models for that paper cutter? Definitely interested in the design, as I have a few other machines that could use paper tape cut to varying sizes.
Sure, that sounds like fun. I've got no formal documentation on it nor a build log but I will start posting details in this thread if that's ok with the forum. It will be critical for you to have a decent 3D printer if you want to get very far with this project.
 
Fortunately, I do. I have two Prusa Minis and a Prusa i3 MK3s MMU2S in tip-top condition. :D
 
There were 70s punched tapes that had (all-caps) title text at the head of them (I've seen examples of Pittman's Tiny BASIC like that)-- I don't know if that was just one off stuff by whoever was making the tape or whether some of the equipment (33ASR) had a way of doing it automatically?
Both, probably. I have a Numeridex paper tape punch which has a built in 8080 multibus system... one of the functions takes ASCII text in, and produces legibly punched characters (in all caps) on the papertape. (I still don't know how to give it a simple stream of bytes to punch... if anyone has a manual for a Numeridex LC6000ME, please let me know) But such a thing wouldn't be too terribly hard to program; just a lookup table matching every letter to five or so bytes to send out the serial port to an ASR33.

That's a really good question - all the printable characters at the time were in the lower 7 bits (this machine was manufactured in 1975), so while the machine does have an 8th bit I don't think it was used except maybe for parity?. And I didn't code parity. So both text and binary modes only takes advantage of the lower 7 bits (since the binary is just a character in an interpreted language like BASIC). I guess I could change that, but then I'd have to create a whole new font.

but then on the other hand if you were punching actual binary on it like a boot loader it would have to use that 8th bit. Now I need to go see how binary mode actually responds when I send it >127.
This is actually an interesting problem concerning the ASR33 -- the tape reader and punch are 8 bits, but the keyboard and typewheel only use 7 bits (and sometimes parity; it was an optional feature). So when I use a terminal program to pretend to be a teletype with my Nova computers, I have to set the terminal to 8N1 when sending the loader and the binary over, then switch it to 7N2 before I actually start the program so it'll display text correctly.
But yeah, for binaries you absolutely need that 8th bit. And it doesn't hurt to have another row for punching characters either : )

Oddball question: are you, perchance, planning on open sourcing the models for that paper cutter? Definitely interested in the design, as I have a few other machines that could use paper tape cut to varying sizes.
Sure, that sounds like fun. I've got no formal documentation on it nor a build log but I will start posting details in this thread if that's ok with the forum. It will be critical for you to have a decent 3D printer if you want to get very far with this project.
I too would be very interested... I've got papertape For Now, but having a reliable source from readily (and currently) available materials would be awesome!
 
Ok, to get started we should talk about the parts I bought. A lot of the design decisions were based, not surprisingly, on what I had in stock. Bearing choices, linear shafts, the aluminum base, were all stock materials.

Let's get right to it.

Most important is the blades. I originally tried to do it with standard utility knife blades, but that ended up tearing the paper after a remarkably short time, so spinning blades were the better option. Specifically these (fabric cutter blades):

1685245472807.png
(representation only, not actual blade below)



To spin these blades I first tried a small brushed motor, but it just didn't have the torque necessary. So I went to a BLDC outrunner which, at basically the same diameter and half the length, has far more torque.

1685245523157.png

Of course the downside to BLDC is you need a driver, and that is a remarkably deep subject, but for our purposes a little off the shelf driver will do. This one comes with a speed potentiometer

1685245568115.png

For some weird reason I spun my own stepper driver board with an ESP32 (Wemos D1 Mini) and one of these (or similar) little off the shelf stepper drivers, but you can just get any stepper driver mechanism that will allow you to vary the feed rate.

1685245645977.png


Now, for the bad news. You might need a lathe to complete this project. Almost all of the parts you can make with standard tools, but there is one that will likely require some imagination.

The paper reels, after they are cut, need to be removable from the machine all rolled up on their axles.

1685245953602.png

That means the whole axle assembly needs to be quick-release. So there's a little lever that holds the shaft in place

tLHUdLufOdN0RRDUdUwYfrGpNJW18uidCCsXzwYNI-DpevqBSQJUjjXezCyr9oxzOUYwvTWfUtf4OlDscXjfEVNkr65YD8UVq5VnjApJ_x2AKx7_8bgoruQb6dPnwOi_9qvhUiNubqCfdbjV-CqSYvkcaboHcXPaBPu9Fwy5Dbc5QxwDPaePLh1gGYvS6N5P7BfX3_eVySOWQ9CoGqScunSLgG8Own5XeMnDjzra_N-4TgCI0CCyvQBjfVoT_WMJ3tsoGbPxlmSTEBLswqFM_ywPxnQqiLKZiqhedXUbfRn2k0um-W1RxKMkZQMrpFN8cY9CydRYpC-ACNH0oVVKiSOmOoECrxkl7Sb-HRDhoDbFIObt1cShKaX3m4_KLVaGpFWVIbwKCW-C4r6s5jGyMcP6ejGEfsxf42F-qJ21bfn7OZgFdzIYfrCmd7zqKQiwx_Klpl1a8pq9Ydjn_A32_Eg6stGVeUHZAIU2Ek8OE6Y1t1-6C96dDTp0Oqmzvj4csoAwio4lyKQ9rA-hVkNfmjrN1wBi826U_yY713BrmKbRPN6oRq32Tl06F_SLb-5xDSDdYiD106vOA2kzvPlhh5RjC4cmQpt5-q58wbaeMf8OsyWbVSScaj2xE5ZcIMI9XwQrhXt20Mb1QHOwwYNqrohykkOqE9V_qrEh0Ap65Qna0KWLuqtwFUaDMeuQn65OtTBAFWisRlKuG08BvLl6MW8EvI_LTSxMdral79J7aFGihmOqOitj9noqnDnZDMvNu0K0q5j1zYaaQPYEr24MNwYymbhwgjHIinB3MHdavZKNn9kLUzecnt9HiABVNTuRUzcV01CfVqT2u4nV7bm9_oL0o17vCDuOMaz0O7CnmYQXaoQ8cLTHRETpX0vsisbi5hk5rt7nSo_oUY8IQkYK551bTsGVQl4WoIRfLAKkAB9ErurSlw=w872-h1163-s-no

xbF27MV5lhtKpJpY9ThjEVHfYWOK5i3vwju9bgInogPKHq_8qSHuAhOb_izr-8sUb6z5p4S8h6hQHj3LOQkO_zraIUhgqQmPJa-vLHctW1eX3xY9YDOf9bI2pS8C-u4bKFdseCxKrBRTGz8Y72LBd2-s71HN7WgFmkd_Ga2w6xi7Um7q4cBKQ6aTY1WXCQT_4yIcU8llBYzCDYt_JVaq39CixsZCxl1YhMLSt7gB5ifi5GiHTA54cSTZv1-6JKK1YheMEcPiFkP-ML164TVCtnnHNFblKB4xCRDzYSSSsMtwBexc_xZl8Io68DuVNYoUnupHKXy7xEIWR_GOMT_qHy75NXdJUDLBmE_MUCsVy88XxjSD_Eo1T588j2b3OhcqEIuHqHWwahtrew9IeyhzLVOVIuE29jhNEzFSu9H6l2yp1J_aC5nw1SG-lfGSlPIHon01QgzefqKUisMmpVfFIGVqxTwv60vsubq3RGt_YIJRQHU2MlcjkGK5o6eEPiYDz5XZf5JqbzQ_afXIrylRpl5OE_7hUxU7_v9cMp2h6uvLyjWzQNPD2SA-48XGjVoUHVPFbQgPaPCly-YT5SjMjbXRIfkjWfxwIGT8bm6VXgyf0TDfkFp5pI5N16G6v2F4lKvaXB63lmMD1ix7ecPKaY_TLjA2oN7qviFu5dHc3iwB0bugu6pUan9ZWLk3DCOIAZp4PtxIeT5Nlyg1bzsH9Uw6JfzGARWGrZzIf78_lAXbr0oFcypLRfbQPihuFmd_M24_JWyGx_N36ZM2aCfX9DB4LG64SoZNnvX7Ztk1oJriUEKxqcfKNZIxMgnJrtwSUGBtRd32C_3N112EcBLaW5fIYk66BXoNTkpYW3Qn-cr5TPgkYTpsJu2tzJIkISxK0vhLv4HQZsPLT1IJwgH6AUB1lPmgjEBv3RBERhZ44E5eaMLbYA=w872-h1163-s-no

1XRROxTzYxy841YlcZlsrPSJlrWUZZDOyTQgKSquQcB29ERucergM8gU3c5J-7VFTL56b17YNOuebBx6Nbf0XB_FB37Opo8N3VSBTVkoeKsE_oHl07LvLQPXskIfYrYdOy7Efz1EKEvjJuQFW5dsfBC8xLzTqgVF2U8CGJ11fqWtzqBYnoT_jJiVC7aWPvGMhXCd7o8Fz7MA1n4J2-egO-EWyF0UkRHDUurT1gPdFrPSYxLhlEd6rjYD2vEy-jDGpLILGs1HKoOeB5Jsn-DRmw8IRNFvWqR8283HVJmTH70UOTwjxZdX5CWfAdPpirScjJcmDITzbTqMOxTrq34gjpYr7uE8G8Xl61ycEUEp9DC-rLh6OVw_lzpqcFl7LrWPIod1iJfRw0-IHxhBsAuTFxmckf_412LqAKFmp-kFN0wAAnFA9ivbSJFqWSz4wKzhl66IVN2-gm1_1veDQO0L7EwSmQnxgxTweQP822qFCItHj5EIrg4aui8v6jgessyY6xbS6PGxd_vxHHWqHrtzPsRe32N6Eg9JR0l9Zhp4NqQrCHy8VuUamTHMsb_YfmnRqgRk06IQ-UCQ0HHAKpCTVcNKEAROD1hMZQFgb12LM4FSqVlPRnzqa5rkLNaYiel0gMt4D61GKsxGpsxmezF4e-r41keChUmUqeE6p5qmYwAd0LWIu8-dhPJd4l9_TZIWvSRYvE68g2r4Qlu-avVvkOMptEYjEOM2E87aZoHjIAsIiavAyI4EstaDIKXSoh2LujJwGyFG0OMQcF2OBDS3iyaiXvTKf1Cvu3EtJl5Zzxau63CQxH6Fy2_0TsISiL9g_ew0bxgXOnVGZHgBolZVGYuvBj0rDxNG21LpP0uecsxHhu4aa-qUC9Ljjv5V4fb1rPU1VB8Ys3uI6hVHVRD5o97M_p0-jGNqpwUIgUnSWdP0XFuiNQ=w872-h1163-s-no

That whole assembly is held into the stepper by a little coupler thingie that involves, I think, old bowden tube from a 3D printer :)
-8nJa2TFQbxUDBp0CIOFCLaEClRqtn9OO15jQCDTb5KduyDdNvQ91HZz-l4lETtyBZTJ5OP2bacISrHjTckP2kPkAo5wW9AWPqjyiMLV84kr54_i7JFOg57zMHGmZ2fHeMiDDYv5lnqI2huG88tHtxRXIG_AH0vEoLTPiIRa3b6boUUesXqP5WnkN2y5AXXxTEdKgn6WXuTYc-FiatbIO2Sh5H2GynkPP6TS7FeMd2tspwlfFNX13ej_rzE-UW0wPkzjnecXaX_sd7N3lrIlFdyzsRoy7bWirlZxV6Tc8HroepAYOk94dIZ-G72aGBtpGyCrxefGnhM6qssWlEIl_jAXLCRs9QovfhDhVADbZdqBRjPeefnPRzcavxUoldatpv-HPo6_IhlRHZxQsjERBLFdzs9snmi62d7MJm2l45RQ_181azFANfgCuOUPzSkXN3DLx28w-wMK9bxUdIUTu74LcneEBEYZ6kN15u4j9LNAqA1-3Ve1bljRv6E3lhiyB_IXuvljTFii9K6T_luIadGE_tVAWTdncCKEIORmz_iN5XbfIfuBp7vhawL9IOuuxVxyTVGQbHycmV1nPevbK-Dm_1ZM8ukLSq-_YOYiG2gmKGnC5aPyL91IXpMxCnHS056tuBhwy2b5MdF_3uDtA9SsrrCo2CZVPcnh8sIpUAnUWRbYh7OZQZ9S3oE6oRW3in_2tAUmpTKzgnmWzeOZH6KaQG_Pnvxm65dDY3yKhwA_WJUA4niWpKCeyya_IHVbF2zKWLr0FrqixG4tPsf52woy3j5_WQk2h9ZQbJWX-qaKCQ6A3O1kp7ua5Fz2vJVkaRbiQrmpWoWR-pQogh21m-weN6xZOerzBrUzCDM8MqxRnX-Ph7IPbedHO8jLinm7YniUdotZivdYYZ1xDs4nKUwL2kzwq2kfJhv3pygtRZTETxBc_g=w872-h1163-s-no

ibw6djGH7fsp-QluWkNVwcJILlmZ_KxEG4w0gbRtAZGVruc7OUPtTBTD0XlVW0kU1Ym3LL_c6J29dD41RMHm0X3dnpTKA9gw1uZl-v2VX6Wx9d2GwYaSqQL00mFDMKCoWLatbf7M414iTYim1z42MPuIjVUNH9fx52R1RcFmWCgoknvC8zgys01CwhdQU4dAT23cmRNlGioW7wiKCSjmV2yXk6emWkK9trC96gyMK8UWWaSoMjnNMZyImRPYg-0bOfSQReVrEpd88bywwAKt6R4tDG7SM64pYuXLLVmTg0Ox56cXhtTMHoQG3q0_ovIhyNUUPXe0d-EvaVp0pM3j7sf2A0GCHS3C1uKpPfM0KHdPoaIkTuMwfTc4I84QTsutoqdCPtjoAeOYTtKLwEP3Uhvekt_GnbwhnFxmjZ0z1bWMGPw-gwcn-9tv6t6T_AVKekKia70QIigQLdueaYXxk6Kx6MkNIOdvvsR8cqjJV1PMSt3RqBdzeKEI-151oOUL-4KnwTYRiIecuBWAXSErqGV8uR2zsi-mP4Bgk2xz0b-TwfuwviWW-UFO27jgJ2gZcQPE-QUL-ZJ2YXaioSc9KJLeY8Htd0P-BR4Tj7kECXAPZ_tII2khNibciwPIqopPjuB83DnsV7iAHMCM580IQ4Xsof8d3cP-yuNa8aSDhRoFymtvoF6WH-J6I-UVZpku0fZxdmFEYqabToz1DU33ul9rK7P44_6pBgTJwnPMmpESIGCbwePKBTVJXZAdFO1LRdHNZRYZmV0h_aS1loih15s8kOw3_CQwaOmOBfcK88mmviddIWLwMJIVIu8x8AFMQKWdaUAvpS8O9Ixc2pXU_3BhTJV8AsM1-zA13oTPqaQuGqc2NblVKaNu-WvMbhEjJMbr_HS2YuSxHbpZteyArmi0w4BQmZAAzhbDnF1unjetunoZiQ=w872-h1163-s-no


That's the part that would require a Lathe, though I think you could do it purely native 3D printed with some heat-set inserts.

More to come...
 

Attachments

  • 1685245933343.png
    1685245933343.png
    1.4 MB · Views: 5
I too went down the rabbit-hole of tape-appropriate fonts, and if anyone's interested, the results are a hacky collection of python scripts here:
AHHH this is fantastic! Serendipity, maybe because of this thread-- I've been doing some similar stuff (but not yet as extensive!). I can't wait to check out your projects. I'm doing a short online session for the Typographics conference next week with some of my own stuff and I'll be delighted to speak to your work as well. I also ported Kare's Chicago (an all time favorite) to punch tape.
 
Last edited:
AHHH this is fantastic! Serendipity, maybe because of this thread-- I've been doing some similar stuff (but not yet as extensive!). I can't wait to check out your projects. I'm doing a short online session for the Typographics conference next week with some of my own stuff and I'll be delighted to speak to your work as well. I also ported Kare's Chicago (an all time favorite) to punch tape.
Here is my font.h as well if it will help you, though font creation was graph paper and a pencil :)

int letters[ 95 ][ 5 ] =
{
{ 0, 0, 191, 0, 0 }, // ! g
{ 0, 0, 0, 0, 0 }, // " // this will fail your "not mapped" test
{ 80, 248, 80, 248, 80 }, // # g
{ 0, 0, 0, 0, 0 }, // $
{ 0, 0, 0, 0, 0 }, // %
{ 0, 0, 0, 0, 0 }, // &
{ 0, 0, 14, 0, 0 }, // ' g
{ 0, 56, 68, 130, 0 }, // ( g
{ 0, 130, 68, 56, 0 }, // ) g
{ 0, 0, 0, 0, 0 }, // * 10
{ 0, 16, 56, 16, 0 }, // + g
{ 0, 128, 96, 0, 0 }, // , g
{ 0, 16, 16, 16, 0 }, // - g
{ 0, 192, 192, 0, 0 }, // . g
{ 0, 192, 56, 6, 0 }, // / g
{ 124, 162, 146, 138, 124 }, // 0 GOOD
{ 0, 132, 254, 128, 0 }, // 1 GOOD
{ 132, 194, 162, 146, 140 }, // 2 GOOD
{ 68, 130, 146, 146, 108 }, // 3 GOOD
{ 48, 40, 36, 254, 32 }, // 4 GOOD
{ 78, 146, 146, 146, 98 }, // 5 GOOD
{ 124, 146, 146, 146, 100 }, // 6 GOOD
{ 2, 226, 18, 10, 6 }, // 7 GOOD
{ 108, 146, 146, 146, 108 }, // 8 GOOD
{ 12, 146, 146, 146, 124 }, // 9 GOOD
{ 0, 0, 40, 0, 0 }, // : g
{ 0, 64, 40, 0, 0 }, // ; g
{ 8, 20, 34, 33, 0 }, // <
{ 0, 20, 20, 20, 0 }, // =
{ 0, 33, 34, 20, 8 }, // >
{ 2, 5, 89, 1, 2 }, // ?
{ 0, 0, 0, 0, 0 }, // @

{ 248, 20, 18, 20, 248 }, // A GOOD
{ 254, 146, 146, 146, 108 }, // B GOOD
{ 124, 130, 130, 130, 68 }, // C GOOD
{ 254, 130, 130, 130, 124 }, // D GOOD
{ 254, 146, 146, 146, 130 }, // E GOOD
{ 254, 18, 18, 18, 2 }, // F GOOD
{ 124, 130, 130, 146, 116 }, // G GOOD
{ 254, 16, 16, 16, 254 }, // H GOOD 40
{ 130, 130, 254, 130, 130 }, // I GOOD
{ 66, 130, 130, 126, 2 }, // J GOOD
{ 254, 16, 40, 68, 130 }, // K GOOD
{ 254, 128, 128, 128, 128 }, // L GOOD
{ 254, 12, 24, 12, 254 }, // M GOOD
{ 254, 8, 16, 32, 254 }, // N GOOD
{ 254, 130, 130, 130, 254 }, // O GOOD
{ 254, 18, 18, 18, 12 }, // P GOOD
{ 124, 130, 162, 66, 188 }, // Q GOOD
{ 254, 18, 50, 82, 140 }, // R GOOD 50
{ 140, 146, 146, 146, 98 }, // S GOOD
{ 2, 2, 254, 2, 2 }, // T GOOD
{ 126, 128, 128, 128, 126 }, // U GOOD
{ 14, 56, 224, 56, 14 }, // V GOOD
{ 62, 224, 56, 224, 62 }, // W GOOD
{ 198, 40, 16, 40, 198 }, // X GOOD
{ 6, 8, 240, 8, 6 }, // Y GOOD
{ 194, 162, 146, 138, 134 }, // Z GOOD 59

{ 0, 127, 65, 65, 0 }, // [ 60
{ 0, 0, 0, 0, 0 }, // \
{ 0, 65, 65, 127, 0 }, // ]
{ 0, 0, 0, 0, 0 }, // ^
{ 0, 0, 0, 0, 0 }, // _,
{ 0, 0, 0, 0, 0 }, // `
{ 0, 0, 0, 0, 0 }, // no frickin' clue!!
{ 64, 168, 168, 168, 112 }, // a
{ 252, 144, 144, 144, 96 }, // b GOOD
{ 112, 136, 136, 136, 136 }, // c GOOD
{ 96, 144, 144, 160, 252 }, // d GOOD
{ 112, 168, 168, 168, 48 }, // e GOOD
{ 32, 248, 36, 36, 0 }, // f GOOD
{ 24, 164, 164, 168, 124 }, // g GOOD
{ 252, 32, 16, 16, 224 }, // h GOOD
{ 0, 0, 244, 0, 0 }, // i GOOD
{ 0, 128, 116, 0, 0 }, // j GOOD
{ 252, 32, 80, 136, 0 }, // k GOOD
{ 0, 0, 124, 128, 0 }, // l GOOD
{ 240, 16, 224, 16, 224 }, // m GOOD
{ 248, 16, 8, 8, 240 }, // n GOOD
{ 112, 136, 136, 136, 112 }, // o GOOD 80
{ 252, 36, 36, 24, 0 }, // p GOOD
{ 24, 36, 36, 24, 252 }, // q GOOD
{ 0, 252, 16, 8, 16 }, // r GOOD
{ 144, 168, 168, 72, 0 }, // s GOOD
{ 0, 8, 124, 136, 0 }, // t GOOD
{ 120, 128, 128, 128, 120 }, // u GOOD
{ 56, 64, 128, 64, 56 }, // v GOOD
{ 56, 192, 56, 192, 56 }, // w GOOD
{ 136, 80, 32, 80, 136 }, // x GOOD
{ 140, 80, 32, 16, 12 }, // y GOOD 90
{ 136, 200, 168, 152, 136 }, // z GOOD
{ 0, 0, 0, 0, 0 }, // {
{ 0, 0, 0, 0, 0 }, // |
{ 0, 0, 0, 0, 0 }, // }
{ 0, 0, 0, 0, 0 }, // ~,
 
To @DougM and anyone else watching this thread: Someone popped up on ebay divesting of a whole bunch of 1" paper tape, in bulk at a good price. A good opportunity if you need some:
 
Sweet! ordered a box.

Also, a bit of forward movement on the punch - I've been ignoring it for quite a while because I didn't really like the button based control panel I made for it, but lately I've been working with a new touch panel TFT for another project and I think it will be perfect for the controls for this machine. I'll post the build log here if I manage to make enough time to get to it.

On the other hand, and to date, I have yet to get a request for any punched tape, so I think this project is definitely an academic pursuit.
 
On the other hand, and to date, I have yet to get a request for any punched tape, so I think this project is definitely an academic pursuit.

Lol but aww. As extremely cool as punch tape is as a medium, it is so unwieldy and niche and there are usually ways around it, it rarely makes sense to work directly with for actual data. (My own "side hustle" born of a similar personal need is programming 1702A EPROMs-- I put up eprom-hut.com hoping to be helpful to anyone who needed but it's fair to say that, too, is an essentially academic pursuit. ) But it's cool that you're doing it and I'll be interested to see how your punch project progresses, if it does.
 
Ok, there's a bug in my code. Can you believe it?

Also, ironically, I'm not sure whether the bug is in my punch code or my reader code. And, because I coded both the punch and the reader I know they are matched, but I have no way of knowing if the way I punch paper tape is accurate with the readers of the time.

Which leads me to 2 questions

The first is CR/LF. Does anyone know definitively whether paper tape at the time represented a newline with CR, CRLF or LF?

The second is known good paper content - does anyone have an original bit of paper tape where you are sure about the bits and would be willing to test against one I generate (I'll mail it to you, you line up the holes)?

Thanks,
 
The first is CR/LF. Does anyone know definitively whether paper tape at the time represented a newline with CR, CRLF or LF?
I think this depends on the platform and software/firmware you were using to read/write the tape?

The Altair 680 tapes that used the Motorola S-record format in ASCII used CRLF between lines, and used even-parity bits. I believe Pittman's Tiny BASIC program used only LF, no parity, and they also used the S-record text format. I dumped some old BASIC tapes once that used 0DFFFF0AFF to separate text lines for some reason. TENET 210 (a mainframe) BASIC programs used CRLF. Some tapes for some uses of course were just raw binary with no line endings at all.

Anyway, I think if you want to standardize your output, you'd need to figure out what machines/loaders either real or hypothetical you want to be "targeting". Maybe it makes sense to focus on the sort of thing that would printout on an ASR 33 Teletype in the manner you'd expect? I guess that might be CRLF but I don't have that machine and someone who does could verify.

The second is known good paper content - does anyone have an original bit of paper tape where you are sure about the bits and would be willing to test against one I generate (I'll mail it to you, you line up the holes)?

I have a punch that works well and I'm totally happy to punch and mail you some reasonably-sized sample file you send me, if that would help.
 
Last edited:
I have a punch that works well and I'm totally happy to punch and mail you some reasonably-sized sample file you send me, if that would help.
That would be wonderful. It really doesn't matter what it is, so how about the following (just some period-appropriate basic code)

C ADVENTURES
IMPLICIT INTEGER(A-Z)
REAL RAN
COMMON RTEXT,LLINE
DIMENSION IOBJ(300),ICHAIN(100),IPLACE(100)
1 ,IFIXED(100),COND(300),PROP(100),ABB(300),LLINE(1000,22)
2 ,LTEXT(300),STEXT(300),KEY(300),DEFAULT(300),TRAVEL(1000)
3 ,TK(25),KTAB(1000),ATAB(1000),BTEXT(200),DSEEN(10)
4 ,DLOC(10),ODLOC(10),DTRAV(20),RTEXT(100),JSPKT(100)
5 ,IPLT(100),IFIXT(100)

C READ THE PARAMETERS

IF(SETUP.NE.0) GOTO 1
SETUP=1
KEYS=1
LAMP=2
GRATE=3
ROD=5
BIRD=7
NUGGET=10
SNAKE=11
FOOD=19
WATER=20
AXE=21
DATA(JSPKT(I),I=1,16)/24,29,0,31,0,31,38,38,42,42,43,46,77,71
1 ,73,75/
DATA(IPLT(I),I=1,20)/3,3,8,10,11,14,13,9,15,18,19,17,27,28,29
1 ,30,0,0,3,3/
DATA(IFIXT(I),I=1,20)/0,0,1,0,0,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0/
DATA(DTRAV(I),I=1,15)/36,28,19,30,62,60,41,27,17,15,19,28,36
1 ,300,300/
DO 1001 I=1,300
STEXT(I)=0
IF(I.LE.200) BTEXT(I)=0
IF(I.LE.100)RTEXT(I)=0
1001 LTEXT(I)=0

I'll pm you my address.
 
@bzotto received! Thank you so much. I checked both my reader and my punch and the are spot on for the 0x01 to 0xFF tape you sent me. That means my problem is a buffering problem, not a punch problem.

The interesting thing is the hole spacing is surprisingly different across the whole tape, about 0.45". I guess that shouldn't be too surprising considering that it doesn't matter and it was the 70's but I wasn't expecting it.

The whole tape, note that it aligned at FF on the far right

1701041936410.png

the high end
1701042006129.png

the low end
1701042095844.png

Thanks so much for sending the tapes!!
 
The interesting thing is the hole spacing is surprisingly different across the whole tape, about 0.45". I guess that shouldn't be too surprising considering that it doesn't matter and it was the 70's but I wasn't expecting it.
Glad they made it intact! I’m also intrigued by the hole spacing— my punch is a high speed GNT model from the 80s (probably) or later and I expect it to be pretty precise. Its reader is optical but the tape feed is still done with a rotating mechanical sprocket so presumably it can read tapes that are 0.1” o.c. holes +/- a small margin.

I guess the difference is just a wash if your punch is outputting to spec. I haven’t seen this comparison done before for any punches so maybe they’re all a wee bit different to each other but close enough for the feed mechanisms to be mutually compatible.

Anyway happy Thanksgiving weekend—
 
Last edited:
Not to complicate your efforts further but you might consider eventually sending one of your tapes to someone with a functioning Teletype model 33 as a final cross check– those use an entirely mechanical reader as I understand it, so the spacing really would matter. Given their popularity in the computer tape era maybe that would make for a useful de facto acceptance standard?

(I’m not assuming my punch is any more or less “accurate” than yours or any other of course, just that in light of the unexpected inconsistency it might be useful to have another data point.)
 
Not to complicate your efforts further but you might consider eventually sending one of your tapes to someone with a functioning Teletype model 33 as a final cross check– those use an entirely mechanical reader as I understand it, so the spacing really would matter. Given their popularity in the computer tape era maybe that would make for a useful de facto acceptance standard?

(I’m not assuming my punch is any more or less “accurate” than yours or any other of course, just that in light of the unexpected inconsistency it might be useful to have another data point.)
So if my math is correct mine is about 0.0035" off per row as yours. So that's not great, but probably close enough considering that each row is 0.1. I'm happy to print up 0x01 --> 0x0F tape on real paper tape and can send both yours and mine to someone who has the teletype model 33...

If only we knew someone... :)
 
Last edited:
Back
Top