IBM 1130 Cold start card

18 views
Skip to first unread message

Carlos Abramo

unread,
Jul 11, 2025, 10:42:16 AMJul 11
to ibm...@googlegroups.com
WhatsApp Image 2025-07-11 at 08.17.34_5b566d27.jpg

Claudio Vincenzi - GMail

unread,
Jul 11, 2025, 11:40:10 AMJul 11
to ibm...@googlegroups.com
This is so cool !!!

Claudio Vincenzi

Em sex., 11 de jul. de 2025 11:42, Carlos Abramo <carlos...@gmail.com> escreveu:
WhatsApp Image 2025-07-11 at 08.17.34_5b566d27.jpg

--
IBM1130 discord channel: https://discord.gg/nrFEMt48mE
---
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ibm1130/CALu7j1MfgQMhLpnWxR5jqm%3D_N%3Dbd7L0n98VZGm8Rfi9%2Bef3RRQ%40mail.gmail.com.

Joseph Ambrose

unread,
Jul 11, 2025, 1:45:25 PMJul 11
to ibm...@googlegroups.com
I have vivid memories of duplicating that cold start card on an 029 keypunch....... what a racket it made ! I cane across a template in a book somewhere that allowed me to read the instructions on the card........ if I could only remember where i saw it. 


Joseph Ambrose

unread,
Jul 11, 2025, 2:02:55 PMJul 11
to ibm...@googlegroups.com

I have vivid memories of duplicating that cold start card on an 029 keypunch....... what a racket it made ! I cane across a template in a book somewhere that allowed me to read the instructions on the card........ if I could only remember where i saw it. 

On Fri, Jul 11, 2025 at 11:40 AM Claudio Vincenzi - GMail <c.vin...@gmail.com> wrote:

John Pierce

unread,
Jul 11, 2025, 4:41:17 PMJul 11
to ibm...@googlegroups.com
On Fri, Jul 11, 2025 at 10:45 AM Joseph Ambrose <joeambr...@gmail.com> wrote:
I have vivid memories of duplicating that cold start card on an 029 keypunch....... what a racket it made ! I cane across a template in a book somewhere that allowed me to read the instructions on the card........ if I could only remember where i saw it. 


they were a lot easier to duplicate in a 1442 reader/punch

as far as reading them....    the 1130 instructions have a 5 bit, 3 bit, 8 bit pattern, where the top 5 bits are the op code, the 3 bits are L/I plus index 0,1,2,3, and the 8 bits are often a signed offset (+127 to -128).   On the boot card, the top 5 rows are the 5 bit instruction op code, and the remaining  7 bits are the 8 bit offset w/o the sign bit.    There's plenty of instruction set listings for IBM 1130 online to decode the instructions.


Joseph Ambrose

unread,
Jul 11, 2025, 8:32:00 PMJul 11
to ibm...@googlegroups.com
I found the assembler listing for the cold start code in the IBM 1130 folder on Bitsavers


--
IBM1130 discord channel: https://discord.gg/nrFEMt48mE
---
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.
Message has been deleted

br...@quarterbyte.com

unread,
Jul 11, 2025, 9:37:27 PMJul 11
to ibm...@googlegroups.com
it's also in the DMS source code that you can get at ibm1130.org/downloads.
What's intriguing is the handwritten remark "WAIT REMOVED" on this cold start card.
I tried to convert the card image to hex using my "cardscan" program and it didn't work (yet) and I have not compared this card to the original -- but I'm intrigued.
Original cold start listing here -- but not sure about "wait removed"

ASM1130 CROSS ASSEMBLER V1.06 -- V2M12 -- Wed Sep 04 14:40:06 2002

=== FILE ZCLDSTRT.ASM =========================================================
1130 MONITOR SYSTEM COLD START CARD.

                             2 | *************************************************** ZCS00020
                             3 | * STATUS - VERSION 2, MODIFICATION LEVEL 12       * ZCS00030
                             4 | *                                                 * ZCS00040
                             5 | *FUNCTION/OPERATION -                             * ZCS00050
                             6 | *   THIS PROGRAM IS USED BY THE 1130 MONITOR      * ZCS00060
                             7 | *   SYSTEM TO -                                   * ZCS00070
                             8 | *      * DETERMINE THE PHYSICAL DRIVE NUMBER OF   * ZCS00080
                             9 | *        LOGICAL DRIVE ZERO.                      * ZCS00090
                            10 | *      * READ IN THE COLD START PROGRAM FROM THE  * ZCS00100
                            11 | *        DISK AND THEN TRANSFER TO IT.            * ZCS00110
                            12 | *                                                 * ZCS00120
                            13 | *ENTRY POINT - CS000                              * ZCS00130
                            14 | *   THE PROGRAM IS ENTERED BY PRESSING THE PROGRAM* ZCS00140
                            15 | *   LOAD KEY.                                     * ZCS00150
                            16 | *                                                 * ZCS00160
                            17 | *INPUT -                                          * ZCS00170
                            18 | *   THE PHYSICAL DRIVE NUMBER OF LOGICAL DRIVE    * ZCS00180
                            19 | *   ZERO IS ENTERED THROUGH THE CONSOLE ENTRY     * ZCS00190
                            20 | *   SWITCHES.                                     * ZCS00200
                            21 | *                                                 * ZCS00210
                            22 | *OUTPUT -                                         * ZCS00220
                            23 | *   THE COLD START PROGRAM IS READ IN FROM THE    * ZCS00230
                            24 | *   DISK.                                         * ZCS00240
                            25 | *                                                 * ZCS00250
                            26 | *EXTERNAL REFERENCES - N/A                        * ZCS00260
                            27 | *                                                 * ZCS00270
                            28 | *EXITS -                                          * ZCS00280
                            29 | *   NORMAL -                                      * ZCS00290
                            30 | *      A BRANCH IS MADE TO THE FIRST WORD OF THE  * ZCS00300
                            31 | *      COLD START PROGRAM AFTER READING IT FROM   * ZCS00310
                            32 | *      THE DISK.                                  * ZCS00320
                            33 | *   ERROR - N/A                                   * ZCS00330
                            34 | *                                                 * ZCS00340
                            35 | *TABLES/WORK AREAS - N/A                          * ZCS00350
                            36 | *                                                 * ZCS00360
                            37 | *ATTRIBUTES - N/A                                 * ZCS00370
                            38 | *                                                 * ZCS00380
                            39 | *NOTES -                                          * ZCS00390
                            40 | *   * THIS PROGRAM COMES TO A WAIT AT CS110 IF    * ZCS00400
                            41 | *     EITHER THE DRIVE NUMBER ENTERED IN THE      * ZCS00410
                            42 | *     CONSOLE ENTRY SWITCHES IS INVALID, OR THE   * ZCS00420
                            43 | *     SPECIFIED DRIVE IS NOT YET READY.           * ZCS00430
                            44 | *   * THE PROGRAM WILL COME TO A WAIT AT CS150 IF * ZCS00440
                            45 | *     A DISK ERROR OCCURS WHILE READING IN THE    * ZCS00450
                            46 | *     COLD START PROGRAM.  THE USER CAN RETRY THE * ZCS00460
                            47 | *     OPERATION BY PRESSING THE START KEY.        * ZCS00470
                            48 | *                                                 * ZCS00480
                            49 | *************************************************** ZCS00490
                            50 |       ABS                                           ZCS00500
0000                        51 |       ORG     0                                     ZCS00510
                            52 | *                                                   ZCS00520
                            53 | * SET UP THE SECOND WORD OF THE BIT SWITCH IOCC.    ZCS00530
                            54 | *                                                   ZCS00540
0000 c80a                   55 | CS000 LDD     CS030     ACC = /E800, EXT = /E800    ZCS00550
0001 18c2                   56 |       RTE     2         ACC = /3A00, EXT = /3A00    ZCS00560
0002 d008                   57 |       STO     CS030     STORE IN BIT SWITCH IOCC.   ZCS00570
0003 c019                   58 | CS009 LD      CS038     BUILD AREA CODE        2-11 ZCS00575
0004 8007                   59 |       A       CS035     *FOR PHY DR 10         2-11 ZCS00580
0005 d017                   60 |       STO     CS038     SAVE IN DR CODE TABLE  2-11 ZCS00585
0006 c033                   61 | CS190 LD      CS130     BUILD 1ST WORD OF      2-11 ZCS00590
0007 100a                   62 |       SLA     10        * STO  L  *****  INSTR 2-11 ZCS00595
0008 d031                   63 |       STO     CS130     *AND PUT IN PLACE      2-11 ZCS00600
0009 7015                   64 | CS010 MDX     CS120     BR TO CONTINUE         2-11 ZCS00605
                            65 | *                                                 * ZCS00610
                            66 | * INITIALLY THE FOLLOWING TWO WORDS ARE THE IOCC  * ZCS00615
                            67 | * FOR READING THE BIT SWITCHES.                   * ZCS00620
                            68 | *                                                 * ZCS00625
000a 000c                   69 | CS020 DC      CS035     HARDWARE INTRPT ENTRY  2-11 ZCS00630
                            70 | *                                                 * ZCS00635
                            71 | * THE FOLLOWING TWO WORDS WILL EVENTUALLY BE A    * ZCS00640
                            72 | *     BOSC L  *-*       INSTRUCTION               * ZCS00645
                            73 | *                                                 * ZCS00650
000b e800                   74 | CS030 DC      /E800                            2-11 ZCS00655
                            75 | *                                                   ZCS00660
000c 0020                   76 | CS035 DC      /0020     CONSTANT OF /0020      2-11 ZCS00665
                            77 | *                                                   ZCS00670
000d 08f8                   78 |       XIO     CS190     SENSE DR W/RESET       2-11 ZCS00675
000e 4828                   79 |       BSC     Z+        SKIP IF NO ERROR       2-11 ZCS00680
000f 7035                   80 |       MDX     CS150     BR TO DISK ERROR WAIT  2-11 ZCS00685
0010 70fa                   81 |       MDX     CS030     RETRN TO MAINLINE LEVL 2-11 ZCS00690
                            82 | *                                                 * ZCS00700
0011 4814                   83 | CS180 DC      /4814     USED TO BLD SEEK IOCC  2-11 ZCS00705
                            84 | *                                                 * ZCS00710
                            85 | * CS050 MUST BE ON EVEN ADDR. AND MUST IMMEDIATELY* ZCS00715
                            86 | * PRECEDE CS040.                                  * ZCS00720
                            87 | *                                                 * ZCS00725
0012 f026                   88 | CS050 DC      /F026     USED TO BLD LONG INSTR 2-11 ZCS00730
0013 2000                   89 | CS040 DC      @AC00     AREA CODE--PHY DR  0   2-11 ZCS00735
0014 8800                   90 |       DC      @AC01     AREA CODE--PHY DR  1   2-11 ZCS00740
0015 9000                   91 |       DC      @AC02     AREA CODE--PHY DR  2   2-11 ZCS00745
0016 9800                   92 |       DC      @AC03     AREA CODE--PHY DR  3   2-11 ZCS00750
0017 a000                   93 |       DC      @AC04     AREA CODE--PHY DR  4   2-11 ZCS00755
0018 b000                   94 |       DC      @AC05     AREA CODE--PHY DR  5   2-11 ZCS00760
0019 b800                   95 |       DC      @AC06     AREA CODE--PHY DR  6   2-11 ZCS00765
001a b810                   96 |       DC      @AC07     AREA CODE--PHY DR  7   2-11 ZCS00770
001b b820                   97 |       DC      @AC08     AREA CODE--PHY DR  8   2-11 ZCS00775
001c b830                   98 |       DC      @AC09     AREA CODE--PHY DR  9   2-11 ZCS00780
001d b820                   99 | CS038 DC      @AC10     AREA CODE--PHY DR 10   2-11 ZCS00785
                           100 | *                                                   ZCS00790
001e 3000                  101 | CS110 WAIT              INVAL DR NO OR DK NOT READY ZCS00830
001f 08ea                  102 | CS120 XIO     CS020     GET DR NO FROM BIT SWITCHES ZCS00840
0020 c0eb                  103 |       LD      CS035     LOAD DRIVE NUMBER      2-11 ZCS00850
0021 4828                  104 |       BSC     Z+        SKIP IF NOT NEGATIVE        ZCS00860
0022 70fb                  105 |       MDX     CS110     BR TO INVLD DR WAIT    2-11 ZCS00870
0023 9027                  106 |       S       CS171     SUB DECIMAL 10         2-11 ZCS00880
0024 4830                  107 |       BSC     Z-        SKIP IF LEGAL DRIVE NUMBER  ZCS00890
0025 70f8                  108 |       MDX     CS120-1   BR TO INVALID DRIVE WAIT    ZCS00900
                           109 | *                                                 * ZCS00905
                           110 | * CS060 MUST BE ON AN EVEN ADDRESS. CS060 AND     * ZCS00910
                           111 | * CS070 WILL BE THE SEEK IOCC. THE SEEK COUNT     * ZCS00915
                           112 | * IS 1.                                           * ZCS00920
0026 8001                  113 | CS060 A       CS121     SET UP TO              2-11 ZCS00925
0027 d000                  114 | CS070 STO     CS121     *FETCH AREA CODE       2-11 ZCS00930
0028 c0f4                  115 | CS121 LD      CS038     *   FOR SELECTED DRIVE 2-11 ZCS00935
0029 d0d9                  116 |       STO     CS009     SAVE AREA CODE         2-11 ZCS00940
                           117 | *                                                   ZCS00970
                           118 | * SET UP THE SENSE DEVICE IOCC.                     ZCS00980
                           119 | *                                                   ZCS00990
002a c01d                  120 |       LD      CS160     ACC = /7010            2-11 ZCS01000
002b 1804                  121 |       SRA     4         ACC = /0701            2-11 ZCS01010
002c e8d6                  122 |       OR      CS009     OR IN AREA CODE        2-11 ZCS01020
002d d0d9                  123 |       STO     CS190+1   STORE IN SENSE IOCC.        ZCS01030
                           124 | *                                                   ZCS01040
                           125 | *  4 INSTRUCTIONS MOVED AND MODIFIED           2-12 ZCS01050
                           126 | *                                                   ZCS01150
                           127 | * SET UP LONG BRANCH INSTRUCTIONS.                  ZCS01160
                           128 | *                                                   ZCS01170
002e c8e3                  129 |       LDD     CS050     ACC = /F026,EXT =/2000 2-11 ZCS01180
002f 18d3                  130 |       RTE     19        ACC = /C400,EXT =/1E04 2-11 ZCS01185
0030 d017                  131 |       STO     CS160     ST IN 1ST WD OF LD L **2-11 ZCS01190
0031 18c4                  132 |       RTE     4         ACC = /4C18,EXT =/01E0 2-11 ZCS01195
0032 d0d8                  133 |       STO     CS030     ST IN 1ST WD OF BOSC L 2-11 ZCS01200
0033 9016                  134 |       S       CS170     ACC = /4C18, EXT = /01E0    ZCS01210
0034 d815                  135 |       STD     CS170     ST IN BSC  L  *****,+- INST ZCS01220
                           136 | *                                                   ZCS01230
                           137 | * SET UP SECOND WORD OF SEEK IOCC.                  ZCS01240
                           138 | *                                                   ZCS01250
0035 90db                  139 |       S       CS180     ACC = /0404, EXT = /01E0    ZCS01260
0036 e8cc                  140 |       OR      CS009     OR IN AREA CODE        2-11 ZCS01270
0037 d0ef                  141 |       STO     CS070     STORE IN SEEK IOCC.         ZCS01300
                           142 | *                                                   ZCS01390
                           143 | * SET UP WORD COUNT FOR DISK READ OPERATION, AND    ZCS01400
                           144 | * STORE IT WHERE THE COLD START PROGRAM WILL BE     ZCS01410
                           145 | * READ INTO CORE.                                   ZCS01420
                           146 | *                                                   ZCS01430
0038 c016                  147 |       LD      CS210     ACC = /A0C0, EXT = /01E0    ZCS01440
0039 1807                  148 |       SRA     7         ACC = /0141, EXT = /01E0    ZCS01450
                           149 | *                                                   ZCS01460
                           150 | * AT THIS POINT IN EXECUTION, THE FOLLOWING TWO     ZCS01470
                           151 | * WORD ARE A ...STO  L  CLDST... INSTRUCTION.       ZCS01480
                           152 | *                                                   ZCS01490
003a 0035                  153 | CS130 DC      /0035     STORE WORD COUNT       2-11 ZCS01500
003b 00d0                  154 |       DC      CS220     *FOR DISK READ.             ZCS01510
                           155 | *                                                   ZCS01520
                           156 | * SET UP SECOND WORD OF READ IOCC.                  ZCS01530
                           157 | *                                                   ZCS01540
003c c008                  158 |       LD      CS150     ACC = /3000, EXT = /01E0    ZCS01550
003d 1803                  159 |       SRA     3         ACC = /0600  EXT = /01E0    ZCS01560
003e e8c4                  160 |       OR      CS009     OR IN AREA CODE        2-11 ZCS01570
003f d00f                  161 |       STO     CS210     STORE IN READ IOCC.         ZCS01580
                           162 | *                                                   ZCS01590
                           163 | * SEEK ONE CYLINDER TOWARD HOME                     ZCS01600
                           164 | *                                                   ZCS01610
                           165 | *                                                   ZCS01620
                           166 | *                                                   ZCS01630
0040 080d                  167 | CS140 XIO     CS200     READ SECTOR 0          2-12 ZCS01640
                           168 | *                                              2-12 ZCS01641
                           169 | * IF DRIVE N IS ATTACHED & READY, THE ACC WILL 2-12 ZCS01642
                           170 | * HAVE BIT 3 ON.  IF NOT ATTACHED AND READY,   2-12 ZCS01643
                           171 | * THE ACC WILL HAVE BIT 3 OFF.                 2-12 ZCS01644
                           172 | *                                              2-12 ZCS01645
0041 08c4                  173 |       XIO     CS190     SENSE DISK W/RESET     2-12 ZCS01646
0042 1003                  174 |       SLA     3         DISK BUSY BIT TO SIGN  2-12 ZCS01647
0043 4810                  175 |       BSC     -         SKIP IF DISK READY     2-12 ZCS01648
0044 70d9                  176 |       MDX     CS110     BR TO INVALID DR WAIT  2-12 ZCS01649
0045 3000                  177 | CS150 DC      /3000     WAIT FOR INTERRUPT.         ZCS01650
                           178 | *                                                   ZCS01660
0046 08df                  179 |       XIO     CS060     INITIATE THE SEEK      2-12 ZCS01670
0047 3000                  180 |       WAIT              WAIT FOR INTERRUPT.         ZCS01680
                           181 | *                                                   ZCS01690
                           182 | * AT THIS POINT IN EXECUTION, THE FOLLOWING TWO     ZCS01700
                           183 | * WORDS ARE A ...LD   L  CLDST+1... INSTRUCTION.    ZCS01710
                           184 | *                                                   ZCS01720
0048 7010                  185 | CS160 DC      /7010     LOAD SECTOR ADDRESS    2-11 ZCS01730
0049 00d1                  186 |       DC      CS220+1   *OF SECTOR JUST READ.       ZCS01740
                           187 | *                                                   ZCS01750
                           188 | * AT THIS POINT IN EXECUTION, THE FOLLOWING TWO     ZCS01760
                           189 | * WORDS ARE A ...BSC  L  $ZEND,+-... INSTRUCTION.   ZCS01770
                           190 | *                                                   ZCS01780
004a 0028                  191 | CS170 DC      /0028     BR TO THE COLD START PROG   ZCS01790
004b 000a                  192 | CS171 DC      /000A     *IF IT HAS BEEN READ   2-11 ZCS01800
004c 70f3                  193 |       MDX     CS140     GO TRY SEEK AGAIN.          ZCS01810
                           194 | *                                                   ZCS01820
004e                       195 |       BSS  E  0         ASSURE EVEN BOUNDARY        ZCS01860
004e 00d0                  196 | CS200 DC      CS220     READ                        ZCS01870
004f a0c0                  197 | CS210 DC      /A0C0     *IOCC.                      ZCS01880
                           198 | *                                                   ZCS01890
00d0                       199 | CS220 EQU     /00D0     COLD START PROG CORE ADDR.  ZCS01900
                           200 | *                                                   ZCS01910
                           201 | * DISK DRIVE AREA CODES. DR 0 TO 10                 ZCS01920
                           202 | *                                                   ZCS01930
2000                       203 | @AC00 EQU     /2000                            2-11 ZCS01940
8800                       204 | @AC01 EQU     /8800                            2-11 ZCS01950
9000                       205 | @AC02 EQU     /9000                            2-11 ZCS01960
9800                       206 | @AC03 EQU     /9800                            2-11 ZCS01970
a000                       207 | @AC04 EQU     /A000                            2-11 ZCS01980
b000                       208 | @AC05 EQU     /B000                            2-11 ZCS01990
b800                       209 | @AC06 EQU     /B800                            2-11 ZCS02000
b810                       210 | @AC07 EQU     /B810                            2-11 ZCS02010
b820                       211 | @AC08 EQU     /B820                            2-11 ZCS02020
b830                       212 | @AC09 EQU     /B830                            2-11 ZCS02030
b820                       213 | @AC10 EQU     /B820                            2-11 ZCS02040
0050                       214 |       END     CS000                                 ZCS02050

There were no errors in this assembly

Program transfer address = 0000


br...@quarterbyte.com

unread,
Jul 12, 2025, 2:35:42 AMJul 12
to ibm...@googlegroups.com
Oh! This is not the standard DMS V2M12 cold start card, which looks like the image below. First column at least is different
Nor is it the APL IPL card.
So -- that's interesting. What is it then?

standard DMS cold start:
image.png

Paul Anagnostopoulos

unread,
Jul 12, 2025, 11:51:19 PMJul 12
to IBM1130
I thought people might get a kick out of the listing for a 2-card cold start program that runs on my fictitious IBM 1130 model 7. I can post the Functional Characteristics for it if anyone is interested. The assembler is an extended version of the 1130 macro assembler.

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        1
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

                             2   *-----------------------------------------------------------------------
                             3   *
                             4   *        OS/1130 Operating System  |  IBM 1130 model 7
                             5   *
                             6   *
                             7   * Component:      IPL Programs
                             8   * Module:         Bootstrap loader
                             9   *
                            10   * Description:    This module is a simple 2-card bootstrap loader for
                            11   *                 the IPL feature of the 1130. It can bootstrap a
                            12   *                 program punched in 72-column 1800 format, which
                            13   *                 punches each word in two columns.
                            14   *
                            15   *                 The program is loaded starting at address 7168 (7K).
                            16   *                 Any number of cards can be loaded. The end of the
                            17   *                 deck is indicated by the sequence number 9999.
                            18   *
                            19   *                 Control is given to the program by an indirect branch
                            20   *                 through location 7168.
                            21   *
                            22   * Notes:          The first card of this loader is an 1130 IPL card,
                            23   *                 so there can be no 1 bits in positions 5--7 of the
                            24   *                 words, and bits 8 & 9 must be the same. The second
                            25   *                 card is in 72-column 1800 format.
                            26   *
                            27   * Author:         Paul C. Anagnostopoulos
                            28   * Created:        6 April 2011
                            29   *
                            30   *-----------------------------------------------------------------------

                            32            list        push,nogenerated
                            33            osprog      
                            34            sslowmem    
                            35            devcode      
                            36            iofunc      
                            37            dev1442      
                            38            dev2501      
                            39            bootitem    
                            40            list        pop

                            42            abs          

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        2
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

0000                0000    43            org         0x0000            We start execution here.

                            45   * We must build any words with 1 bits in positions 5--7 or with
                            46   * bits 8 and 9 different.

0000 C02D           002E    48            ld          packld            Build pack loop load instruction,
0001 1008                   49            sla         8
0002 D02B           002E    50            st          packld
0003 C02D           0031    51            ld          packor            and or instruction.
0004 1008                   52            sla         8
0005 D02B           0031    53            st          packor
0006 7006           000D    54            jmp         init2             Continue after interrupt vector.

                            56            assert      (* <= lm$int0)
0008                0008    57            org         lm$int0
0008 003E           003E    58            dc          colint            Address of column interrupt handler.

0009 0048           0048    60   colct    dc          72                Number of columns with data.
0009                0009    61            org         *-1
0009 0024           0024    62            dc          72/2
000A 0000 1703      0000    63   sense1   iocc        0,dev@1442,iof@dsw,c1@rset0+c1@rset4
000B                000B    64            org         *-1
000B B818           B818    65            dc          (dev@1442 .< 14 + iof@dsw .< 11 + 0b11 .< 3)

                            67            assert      (* <= lm$int4)
000C                000C    68            org         lm$int4
000C 002B           002B    69            dc          compint           Address of operation complete handler.

                    000D    71   init2    equ         *
000D C025           0033    72            ld          packst            Build pack loop store instruction.
000E 1008                   73            sla         8
000F D023           0033    74            st          packst
0010 C0F8           0009    75            ld          colct             Build column count.
0011 1001                   76            sla         1
0012 D0F6           0009    77            st          colct
0013 C0F7           000B    78            ld          sense1+1          Build 1442 sense IOCC,
0014 1803                   79            sra         3
0015 D0F5           000B    80            st          sense1+1
0016 8038           004F    81            a           sense2+1          and 2501 sense IOCC,
0017 D037           004F    82            st          sense2+1
0018 C030           0049    83            ld          start1+1          and 1442 start IOCC,

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        3
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

0019 1801                   84            sra         1
001A D02E           0049    85            st          start1+1
001B C02F           004B    86            ld          read1+1           and 1442 read IOCC,
001C 1008                   87            sla         8
001D D02D           004B    88            st          read1+1
001E C02E           004D    89            ld          start2+1          and 2501 start IOCC.
001F 1009                   90            sla         9
0020 D02C           004D    91            st          start2+1

0021 C003           0025    93            ld          addrst            Build store instruction.
0022 1008                   94            sla         8
0023 D001           0025    95            st          addrst
0024 782B           0050    96            ldea        80                Store column count in card buffer.
0025 D400 00C0      00C0    97   addrst   st       L  cardbuf
0025                0025    98            org         *-2
0025 00D4           00D4    99            dc          0x00D4            (Used to build store instruction.)
0027                0027   100            org         *+1
0027 D0DA           0002   101            st          xr2               Also store as program load address.

0028 081F           0048   103   read     xio         start1            Start both card readers.
0029 0822           004C   104            xio         start2
002A 3000                  105            wait        

                           107   * This is the operation complete interrupt handler for both card readers.

002B 0000                  109   compint  entry        
002C 1010                  110            clr                           Set column index to zero.
002D D0D3           0001   111            st          xr1

                    002E   113   pack     equ         *                 Packing loop:
002E C500 00C1      00C1   114   packld   ld       L1 cardbuf+1         Load next column from card buffer.
002E                002E   115            org         *-2
002E 00C5           00C5   116            dc          0x00C5            (Used to build load instruction.)
0030                0030   117            org         *+1
0030 1808                  118            sra         8
0031 ED00 00C2      00C2   119   packor   or       L1 cardbuf+2         OR in column after that one.
0031                0031   120            org         *-2
0031 00ED           00ED   121            dc          0x00ED            (Used to build or instruction.)
0033                0033   122            org         *+1
0033 D200           0000   123   packst   st        2 0                 Store in program being loaded.
0033                0033   124            org         *-1

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        4
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

0033 00D2           00D2   125            dc          0x00D2            (Used to build store instruction.)
0034 C0CD           0002   126            ld          xr2               Increment program load address.
0035 5001                  127            inc          
0036 D0CB           0002   128            st          xr2
0037 C0C9           0001   129            ld          xr1               Pick up column index,
0038 5002                  130            mda         2                 advance by 2,
0039 D0C7           0001   131            st          xr1               and save.
003A B0CE           0009   132            cmp         colct             Have we packed all columns?
003B 4838                  133            skp                           Yes.
003C 70F1           002E   134            jmp         pack              No, do another.

003D 7012           0050   136            jmp         next              Continue with next card ...

                           138   * This is the 1442 column interrupt handler.

003E 0000                  140   colint   entry        
003F 08CA           000A   141            xio         sense1            Reset the 1442.
0040 C009           004A   142            ld          read1             Increment the column read address.
0041 5001                  143            inc          
0042 D007           004A   144            st          read1
0043 0806           004A   145            xio         read1             Read the column.
0044 4878                  146            bosc        -Z+               Clear the interrupt.
0044                0044   147            org         *-1
0044 48F8           48F8   148            dc          0x48F8            (Harmless to have indirect bit on.)
0045 1000                  149            nop          
0046 3000                  150            wait                          Wait for next column.

0048 0000 1404      0000   152   start1   iocc        0,dev@1442,iof@ctl,c1@read
0049                0049   153            org         *-1
0049 2808           2808   154            dc          (dev@1442 .< 12 + iof@ctl .< 9 + c1@read .< 1)
004A 00C0 1200      00C0   155   read1    iocc        cardbuf,dev@1442,iof@rd
004B                004B   156            org         *-1
004B 0012           0012   157            dc          (dev@1442 .< 3 + iof@rd)
004C 00C0 4E00      00C0   158   start2   iocc        cardbuf,dev@2501,iof@ird
004D                004D   159            org         *-1
004D 0027           0027   160            dc          (dev@2501 .< 2 + iof@ird .> 1)
004E 0000 4F01      0000   161   sense2   iocc        0,dev@2501,iof@dsw,c2@reset
004F                004F   162            org         *-1
004F 3800           3800   163            dc          0x3800            (Added to sense1+1 to get word.)

                           165            assert      (* <= 80)

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        5
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

                           167   * This is the second card of the bootstrap loader, which is in 72-column
                           168   * 1800 format. All instructions are usable.

0050                0050   170            org         80

                    0050   172   next     equ         *                 ... Card read and packed.
0050 08B9           000A   173            xio         sense1            Reset both card readers.
0051 08FC           004E   174            xio         sense2
0052 4C40 0054      0054   175            bosc     L  *                 Clear the interrupt.

0054 C400 010E      010E   177            ld       L  cardbuf+1+77      Check the sequence number to see if
0056 EC00 010F      010F   178            or       L  cardbuf+1+78      it's 999.
0058 EC00 0110      0110   179            or       L  cardbuf+1+79
005A B00F           006A   180            cmp         holl9
005B 7002           005E   181            jmp         reset             No.
005C 7001           005E   182            jmp         reset             No.
005D 7009           0067   183            jmp         invoke            Yes, invoke the program.

005E 7861           00C0   185   reset    ldea        cardbuf           Reset 1442 read IOCC address.
005F D0EA           004A   186            st          read1

0060 7C00 1C00             188            ldimm       bootaddr          Reset XR2 to point to the program
0062 B09F           0002   189            cmp         xr2               load address if we just read the
0063 7001           0065   190            jmp         reset1            second card of the bootstrap loader.
0064 4838                  191            skp          
0065 5200                  192   reset1   ldxa      2 0

0066 70C1           0028   194            jmp         read              Read the next card.

                           196   * Invoke the loaded program by branching indirect through its first word.
                           197   * The accumulator is nonzero for the 1442, zero for the 2501.

0067 C0D6           003E   199   invoke   ld          colint            
0068 4C80 1C00      1C00   200            b        I  bootaddr

006A 0010                  202   holl9    dtext     H "9"

                           204            assert      (* <= 80+36)

                           206   * Position the card buffer so its address has bits 8 and 9 both on.


IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        6
2013/01/23 14:21                                                                                     iplboot.asm

Loc. Object code    Expr. Line   Statement

                    00C0   208   cardbuf  equ         0x00C0

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        7
2013/01/23 14:21                                       Macro Table                                   iplboot.asm

Library    Line   Name      Lines  Calls

osdev        32   bootitem      5      1
system      171   dev1442      21      1
system      223   dev2501      13      1
system       33   devcode      38      1
osuser      299   dstatmsg      5      1
system       84   iofunc       10      1
osdev       258   osprog       12      1
osdev       347   sslowmem     82      1
osdev       464   sysfail       6      1
general     147   using        15      1

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        8
2013/01/23 14:21                                       Symbol Table                                  iplboot.asm

Line        Symbol     Value   Attributes

  33.2      #i         0002    set
   0        $debug     0001    
   0        $verbose   0001    
  33.11     a          0003    set
  97        addrst     0025    
  39.1      bootaddr   1C00    
  37.17     c1@busy    000E    
  37.16     c1@check   0007    
  37.15     c1@cmplt   0004    
  37.13     c1@error   0002    
  37.6      c1@feed    0002    
  37.2      c1@ilswb   0002    
  37.1      c1@ilvl    0004    
  37.14     c1@last    0003    
  37.18     c1@nrdy    000F    
  37.12     c1@presp   0001    
  37.7      c1@punch   0001    
  37.5      c1@read    0004    
  37.11     c1@rresp   0000    
  37.9      c1@rset0   0001    
  37.8      c1@rset4   0002    
  37.4      c1@sel     0080    
  38.9      c2@busy    000E    
  38.8      c2@cmplt   0004    
  38.6      c2@error   0002    
  38.2      c2@ilswb   0003    
  38.1      c2@ilvl    0004    
  38.7      c2@last    0003    
  38.10     c2@nrdy    000F    
  38.4      c2@reset   0001    
 208        cardbuf    00C0    
  39.2      cciaddr    0000    
  60        colct      0009    
 140        colint     003E    entry
 109        compint    002B    entry
  35.6      dev@1132   0006    
  35.3      dev@1134   0003    
  35.10     dev@1231   0008    
  35.20     dev@1403   0015    
  35.2      dev@1442   0002    
  35.5      dev@1627   0005    

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                        9
2013/01/23 14:21                                       Symbol Table                                  iplboot.asm

Line        Symbol     Value   Attributes

  35.24     dev@2250   0019    
  35.11     dev@2501   0009    
  35.8      dev@bell   0007    
  35.7      dev@ces    0007    
  35.13     dev@clk    000B    
  35.1      dev@con    0001    
  35.4      dev@dk0    0004    
  35.16     dev@dk1    0011    
  35.30     dev@dk10   0004    
  35.17     dev@dk2    0012    
  35.18     dev@dk3    0013    
  35.19     dev@dk4    0014    
  35.21     dev@dk5    0016    
  35.26     dev@dk6    0000    
  35.27     dev@dk7    0001    
  35.28     dev@dk8    0002    
  35.29     dev@dk9    0003    
  35.22     dev@dkr    0017    
  35.12     dev@sca    000A    
  35.9      dev@stat   0007    
  35.15     dev@sys7   000C    
  35.23     dev@tape   0018    
  35.14     dev@timr   000B    
  35.32     dev@tp0    0000    
  35.33     dev@tp1    0001    
  35.34     dev@tp2    0002    
  35.35     dev@tp3    0003    
 202        holl9      006A    
  71        init2      000D    
 199        invoke     0067    
  36.4      iof@ctl    0004    
  36.7      iof@dsw    0007    
  36.3      iof@ilsw   0003    
  36.6      iof@ird    0006    
  36.5      iof@iwrt   0005    
  36.2      iof@rd     0002    
  36.1      iof@wrt    0001    
  34.45     lm$base    002A    block
  34.35     lm$boot    001B    block
  34.8      lm$clock   0005    block
  34.44     lm$core    0029    block

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                       10
2013/01/23 14:21                                       Symbol Table                                  iplboot.asm

Line        Symbol     Value   Attributes

  34.72     lm$cpblk   0061    block
  34.73     lm$cpfab   0062    block
  34.28     lm$dcbe1   0015    block
  34.29     lm$dcbe2   0016    block
  34.30     lm$dcbe3   0017    block
  34.31     lm$dcbe4   0018    block
  34.32     lm$dcbe5   0019    block
  34.23     lm$dcbv1   0010    block
  34.24     lm$dcbv2   0011    block
  34.25     lm$dcbv3   0012    block
  34.26     lm$dcbv4   0013    block
  34.27     lm$dcbv5   0014    block
  34.50     lm$dkdcb   0030    block
  34.37     lm$dktry   001C    block
  34.56     lm$dkvib   0040    block
  34.58     lm$dstat   004C    block
  34.63     lm$dstbl   0057    block
  34.61     lm$dstsp   0050    block
  34.67     lm$evec    005D    block
  34.75     lm$exit    006A    block
  34.46     lm$free    002B    block
  34.66     lm$imsec   005C    block
  34.12     lm$int0    0008    block
  34.13     lm$int1    0009    block
  34.14     lm$int2    000A    block
  34.15     lm$int3    000B    block
  34.16     lm$int4    000C    block
  34.17     lm$int5    000D    block
  34.34     lm$jmp0    001A    block
  34.3      lm$loc0    0000    block
  34.77     lm$noiss   006B    block, entry
  34.43     lm$osver   0028    block
  34.53     lm$ovsec   003C    block
  34.69     lm$ovtab   005F    block
  34.68     lm$ovvec   005E    block
  34.47     lm$pool    002C    block
  34.59     lm$ring    004E    block
  34.41     lm$scan    0020    block
  34.52     lm$sysdk   003B    block
  34.9      lm$timer   0006    block
  34.38     lm$tptry   001D    block

IBM 1130 Assembler E 1.1                           IPL Bootstrap Loader                                       11
2013/01/23 14:21                                       Symbol Table                                  iplboot.asm

Line        Symbol     Value   Attributes

  34.7      lm$tv      0004    block
  34.19     lm$tvad    000E    block
  34.20     lm$tvsz    000F    block
  34.70     lm$xcond   0060    block
  34.4      lm$xr1     0001    block
  34.5      lm$xr2     0002    block
  34.6      lm$xr3     0003    block
 172        next       0050    
 113        pack       002E    
 114        packld     002E    
 119        packor     0031    
 123        packst     0033    
 103        read       0028    
 155        read1      004A    
 185        reset      005E    
 192        reset1     0065    
  63        sense1     000A    
 161        sense2     004E    
  34.80     ss$fail    0000r   external, VCALLed
 152        start1     0048    
 158        start2     004C    
   0        xr1        0001    
   0        xr2        0002    
   0        xr3        0003    


Gabriel Zapata

unread,
Jul 13, 2025, 8:29:11 AMJul 13
to ibm...@googlegroups.com
It's incredible to see that wonderful card again...
Tks...





--
____________________________________________________
Gabriel Zapata

John P. Doty

unread,
Jul 13, 2025, 2:24:03 PMJul 13
to ibm...@googlegroups.com
Back in the day, I had a friend who made an 1130 "business card". It was
a card in IPL coding that printed his contact info on the console ツ

--
John Doty
j...@noqsi.com

Tom Watson

unread,
Jul 13, 2025, 9:08:55 PMJul 13
to ibm...@googlegroups.com
On the subject of "wait removed":

As I remember it (it was a while ago), the cold start card did a VERY
slow seek back to track zero. It was not the smooth buzz of a normal
seek, but rather a tick, tick, tick of the detent. I suspect that the
"wait removed" was to make the seek MUCH faster and things were
smoother. Of course this is my recollection, but your mileage may
vary. Boy that was a LONG time ago!

John Pierce

unread,
Jul 13, 2025, 10:06:14 PMJul 13
to ibm...@googlegroups.com
the way the 1130 disk works is, you need to know what track you are on to fast seek to zero, as you need to tell it to seek N tracks.     if you tell it to seek too far, it hammers into the hard stop, which is bad for the hardware.     the slow tick tick tick back is the 'safe' way of seeking to zero if you don't know where you are.

--
IBM1130 discord channel: https://discord.gg/nrFEMt48mE
---
You received this message because you are subscribed to the Google Groups "IBM1130" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ibm1130+u...@googlegroups.com.

Carl Claunch

unread,
Jul 17, 2025, 8:13:43 AMJul 17
to IBM1130
The disk drive controller logic in the 1130 will not move the arm if the Home switch is detected (at cylinder 0), thus you cannot hammer the arm trying to reverse past cylinder 0. 

The forward direction will hammer past the last cylinder if you request a longer movement than the number of cylinders remaining. 

No problem with issuing a maximum backwards seek regardless of the current arm position; no need to seek 1 and test repeatedly unless you are doing a diagnostic test to ensure that the home cylinder switch is working properly. 

Carl

Reply all
Reply to author
Forward
0 new messages