*** empty log message ***
authorhachti <hachti>
Tue, 25 Apr 2006 22:13:45 +0000 (22:13 +0000)
committerhachti <hachti>
Tue, 25 Apr 2006 22:13:45 +0000 (22:13 +0000)
pc-tools/src-filters/tab.c
programs/mandelbrot/src/apfel3.f
programs/tools/src/binal.asm

index dcb64f71d3e3b1f554549723d60a601059002744..b8253a3996f3ad5ccd578d06ea225cb07dcac062 100644 (file)
@@ -1,20 +1,31 @@
 #include <stdio.h>
 
+/*
+ * This program does two things:
+ *
+ * - It converts <TAB> characters into backslashes '\'
+ * - It converts <lf> (10) line end characters to <cr> (13)
+ *
+ */
+
 #define INPUT_TAB 0x09
-    
-int main(int argc, char ** agrv){
-        char c;
-       while(read(0,&c,1)){
-           
-           switch(c){
-               case INPUT_TAB: printf("\\");
-                   break;
-               case '\n': printf("\r\n");
-                   break;
-               default : printf("%c",c);
-                   break;
-           }
+
+int main (int argc, char **agrv)
+{
+    char c;
+    while (read (0, &c, 1)) {
+       switch (c) {
+       case INPUT_TAB:
+           printf ("\\");
+           break;
+       case '\n':
+           printf ("\r\n");
+           break;
+       default:
+           printf ("%c", c);
+           break;
        }
-           
-}//main()
+    }
+    return 0;
+}                              //main()
 // Ende.
index 168a92602648e2c069278be2f2fbec0c1956d2ca..eb86d582b2ae063a5e5025bc943390707c5b7573 100644 (file)
@@ -94,10 +94,13 @@ C
 C
 CCCCCC PUNKT FERTIG
   410  NOUT=32
+C       IF (COUNT.GE.8) NOUT=46
+C       IF (COUNT.GE.23) NOUT=43
+C       IF (COUNT.EQ.MAXI) NOUT=64
        IF (COUNT.GE.8) NOUT=46
        IF (COUNT.GE.23) NOUT=43
        IF (COUNT.EQ.MAXI) NOUT=64
-C       NOUT=46
+
   411  CALL PCHAR(NOUT)
        GO TO 500
 C
@@ -129,13 +132,13 @@ C
 C
        CR      = 13 
        LF      = 10
-       WIDTH   = 70
+       WIDTH   = 68
        MAXI    = 60
        MAXVAL  = 2.0
-       LOWX    =-1.45
-       HIGHX   = 0.45
-       LOWY    =-1.00
-       HIGHY   = 1.00
+       LOWX    =-1.48
+       HIGHX   = 0.5
+       LOWY    =-1.2
+       HIGHY   = 1.2
        INIT    =  1
 C  
 CCCCCC SCHRITTWEITEN AUSRECHNEN
index 4022b1475c02b24d7c73327f4265914afccde058..ba26a32a97238817bad42488bf93e77c48f7670a 100644 (file)
@@ -1,12 +1,68 @@
-* BINARY PUNCH AND LOAD PROGRAM
+* BINAL - BINARY PUNCH AND LOAD PROGRAM (REV. 1.0)
 *
 *
-*  LOAD
-*  FIRST LOC TO A, LAST LOC TO B
-*  RUN IT.
+*  
+*
+*  BINAL - A PAL-AP DROP-IN REPLACEMENT.
+*
+*
+*
+*  AUTHOR
+*  PHILIPP HACHTMANN
+*
+*
+*  VERSION
+*  1.0 (24.04.2006) - INITIAL VERSION
+*
+*
+*
+*  STORAGE REQUIREMENT
+*  ONE SEGMENT
+*
+*
+*  FEATURES:
+*  NO 4/6/6 FORMAT, DIRECT BINARY DATA
+*  BLOCK CHECKSUMS
+*  LOAD AND GO CAPABLE
+*  SUPPORTS ONLY HIGH SPEED PAPER TAPE PUNCH
+*
+*
+*  USAGE
+*  FIRST LOAD THE OBJECT TAPE INTO ANY SECTOR 'XX000 IN MEMORY.
+*  TO PUNCH A SELF LOADING TAPE DO THE FOLLOWING:
+*  -PRESS MSTCLR
+*  -SET P TO 'XX000
+*  -IF LOAD AND GO IS DESIRED, PUT PROGRAM'S START ADDRESS INTO A
+*  -PRESS START
+*  -ENTER THE FIRST ADDRESS TO BE PUNCHED INTO A
+*  -PRESS START
+*  -ENTER THE LAST ADDRESS TO BE PUNCHED INTO A
+*  -PRESS START, BINAL PUNCHES YOUR SYSTEM TAPE
+*
+*  TO MAKE A BINAL SLST TAPE
+*  USE 'XX000 THAT AS FIRST LOCATION TO BE PUNCHED.
+*  THE LAST LOCATION TO BE PUNCHED IS 'XX577, THE REST OF THE SECTOR IS
+*  ALWAYS AND AUTOMATICALLY PUNCHED OUT.
+*
+*  LOADING SLST TAPES
+*  SIMPLY MOUNT THE GENERATED TAPE ON THE HIGH SPEED PAPER TAPE READER
+*  AND LOAD WITH THE STANDARD KEY-IN LOADER.
+*  THE CONTENTS OF THE TAPE GO TO WHERE THEY COME FROM. THE THIRD STAGE 
+*  LOADER GOES TO 'XX600. THIS LOCATION CAN BE ALTERED BY ENTERING AN 
+*  ADDRESS INTO A BEFORE STARTING THE KEY-IN LOADER.
+*  IT IS ALSO POSSIBLE TO ALTER THE THIRD-STAGE LOADER ADDRESS BEFORE
+*  PUNCHING BY DEPOSITING ANOTHER ADDRESS INTO 'XX600.
+*
+*  SPECIAL MODES OF OPERATION
+*  IT IS POSSIBLE TO COLLECT THE OUTPUT OF MULTIPLE RUNS OF BINAL INTO 
+*  ONE SYSTEM TAPE. THIS IS DONE BY SENSE SWITCH SETTINGS:
+*  SSW1 SET - DON'T PUNCH OUT SECOND AND THIRD STAGE LOADERS
+*  SSW2 SET - DON'T PUNCH OUT DATA
+*  SSW3 SET - DON'T PUNCH OUT END OF TAPE/GO BLOCK
+*  SSW4 SET - PUNCH ONLY A GO BLOCK
 *
 *  TAPE FORMAT:
-*  THE TAPE CONTAINS DATA BLOCKS.
+*  THE TAPE CONTAINS HIGE DATA BLOCKS.
 *  EVERY BLOCK IS PREPENDED WITH THE BLOCK START CHARACTER
 *  AND THE BLOCK TYPE BYTE.
 *  THEN FOLLOWS THE BLOCK DATA IN 16BIT BIG ENDIAN FORMAT.
 *       
 ************************************************************************
 *
-       SUBR    LSTART,BO3S     LOADER START IS GOOD TO KNOW
+       SUBR    LSTART,BO3S     BEGINNING OF THIRD STAGE LOADER
 *
        REL             RELOCATABLE MODE
        ORG     0
 *
-       STA     STRT    SAVE AUTO-START ADDRESS
+       STA     STRT    SAVE AUTO START LOCATION
        HLT             
        STA     ALOC    FIRST LOCATION TO PUNCH
        HLT
        STA     ELOC    LAST LOCATION TO PUNCH
 *
        OCP     '0002   START PUNCH (NOT NECESSARY ON MY H316)
+*      
+       SR1             SKIP IF SSW 1 RESET     
+       JMP     NOBO    NO BOOT CODE
        JST     PLDR    PUNCH OUT LEADER
        JST     PS2     PUNCH SECOND STAGE LOADER
        JST     PS3     PUNCH THIRD STAGE LOADER
+*
+NOBO   SS2             SKIP IF SSW 2 SET       
        JST     PDAT    PUNCH OUT DATA
-* 
-       LDA     STRT
+*      
+       LDA     STRT    START ADDRESS
+       SZE             SET?
+       JST     ABLK    MAKE ADRESS-BLOCK
+*      
+       SR3             SKIP IF SSW3 RESET
+       JMP     NOGO    NO GO/STOP BLOCK
+*      
+       LDA     STRT    
        SZE
-       JMP     AUTO    
+       JST     GBLK    MAKE GO BLOCK
+       LDA     STRT
+       SNZ
        JST     SBLK    MAKE STOP BLOCK
-       JMP     EOT
-AUTO   JST     ABLK    MAKE ADRESS-BLOCK
-       JST     GBLK    MAKE GO-BLOCK
-EOT    JST     PLDR    END OF JOB HAS COME.
+*
+NOGO   JST     PLDR    END OF TAPE HAS COME.
        HLT     
        JMP     *-1     NO ESCAPE
 *
+*
 **********************
 * PUNCH THE DESIRED DATA
 PDAT   DAC     **
@@ -81,12 +150,12 @@ PDAT       DAC     **
 LOOP   CRA             MAIN LOOP
        LDA     ELOC
        SUB     ALOC
-       AOA
-       STA     AVAL    DETERMINED AVAILABLE DATA
+       AOA             ONE IS MINIMUM
+       STA     AVAL    AVAILABLE NUMBER OF WORDS
        SNZ
        JMP*    PDAT    END OF DATA, WE ARE HAPPY, RETURN
 *
-* FIRST TRY TO ESABLISH A ZERO BLOCK
+* TRY TO MAKE A ZERO BLOCK
        LDA     ALOC
        JST     CZER    COUNT ZERO LOCATIONS - IF ANY
        CAS     ZMIN    COMPARE WITH MINIMUM FOR ZERO BLOCK