From 27423c1fa57cd2fb3353268825ed3c19ea7fd3c9 Mon Sep 17 00:00:00 2001 From: Paul Kimpel Date: Wed, 4 May 2016 12:33:02 -0700 Subject: [PATCH] 1. Correct transcription error affecting ALGOLXEM and Mark-XVI/ALGOL in code generation for the SEARCH() intrinsic. 2. Enhance repo README file. --- Mark-XVI/SYMBOL/ALGOL.alg_m | 2 +- README.md | 34 +++++++++++++++++++++++++-- Unisys-Emode-Tools/xem/ALGOLXEM.alg_m | 2 +- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Mark-XVI/SYMBOL/ALGOL.alg_m b/Mark-XVI/SYMBOL/ALGOL.alg_m index 11d88c4..a76a897 100644 --- a/Mark-XVI/SYMBOL/ALGOL.alg_m +++ b/Mark-XVI/SYMBOL/ALGOL.alg_m @@ -4675,7 +4675,7 @@ L1: IF T2<23 THEN BEGIN IF ELCLASS!COMMA THEN ERRX(80) END 06062210 STEPIT; AEXP; EMITPAIR(28,COM); T1~1; 06073830 END; END; END; 06073840 GTI1~0; 06073845 - DO EMITO(DEL) UNTIL GTI1~GTI1-1=T1;% 06073850 + DO EMITO(DEL) UNTIL GTI1~GTI1+1=T1;% 06073850 IF ELCLASS!RTPAREN THEN ERR(104) ELSE STEPIT; 06073860 GO TO EXIT; 06073870 EXIT: END IMPFUN; 06074000 diff --git a/README.md b/README.md index 6689f7a..cc82820 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,32 @@ -# B5500-software -Common source code repository for emulators of the Burroughs B5500 computer system. +The **B5500-software** project maintains source code and software artifacts for the Burroughs B5500 computer system, a 1960s mainframe system designed for high-level languages, and specifically Algol 60. Many of the files haven been transcribed from listings or scans of listings. + +Contributions of new material and corrections to existing material are most welcome. Please submit a pull request. + +Files are organized in top-level directories by program or application and origin. Each top-level directory contains a `README.txt` file describing the contents and their provenance. + +Source code formats for the B5500 were based on 80-column punched cards and card images stored on disk and magnetic tape. For most languages, a range of columns on the card were reserved for "sequence numbers," which were used by a number of tools for locating lines in the program and merging symbolic patch files. These sequence numbers are a vital part of the source and must be maintained by all contributors. + +Source files should be prepared in Unisys "PWB format," named for the Programmers Workbench editor available with modern Unisys MCP systems. These are ordinary Windows text files, but padded with spaces to the full fixed-length record size used when storing records on disk. PWB understands sequence numbers and maintains the files with proper padding. There is also an Eclipse plug-in that offers much of the functionality of PWB. To obtain the plug-in, search for "MCP IDE for Eclipse" on the Unisys web site, http://www.unisys.com. + +File name extensions of the form `.*_m` denote PWB-format files. The following table shows the common extensions used with B5500 source files, the locations of text, sequence, and mark fields with in the record, and the full length to which records should be padded. The length does not include line delimiters. "Mark" fields are used to carry patchmark ("blame") information, but were not used on the B5500, and may be left blank: + +|File Kind |Ext | Text| Seq| Mark|Length| +|:----------|:-----|----:|----:|----:|-----:| +|ALGOL |.alg_m| 1-72|73-80|81-90| 90| +|BASIC |.bas_m| 5-72| 1-4|73-80| 80| +|COBOL |.cob_m| 7-72| 1-6|73-80| 80| +|DATA |.dat_m| all| n/a| n/a| variable| +|DCP |.dcp_m| 1-72|73-80|81-90| 90| +|ESPOL |.esp_m| 1-72|73-80|81-88| 88| +|FORTRAN |.for_m| 1-72|73-80|81-80| 80| +|JOB |.wfl_m| 1-80|83-90|91-90| 90| +|NDL |.ndl_m| 1-72|73-80|81-90| 90| +|PASCAL |.pas_m| 1-72|73-80|81-90| 90| +|SEQDATA |.sqd_m| 1-72|73-80|81-90| 80| +|TEXTDATA |.txt_m| 1-72|73-80|81-90| 90| +|XFORTRAN |.xfr_m| 1-72|73-80|81-80| 80| + + +The initial set of files for this repository were extracted from http://github.com/pkimpel/retro-b5500 in April 2016. + + diff --git a/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m b/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m index fca5fb7..c397ccf 100644 --- a/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m +++ b/Unisys-Emode-Tools/xem/ALGOLXEM.alg_m @@ -7868,7 +7868,7 @@ STATUS: 34840000 GTI1:= 0; 35135000=06073845= DO 35140000=06073850= EMITO(DEL) 35145000=06073850= - UNTIL GTI1:= GTI1-1 = T1; % 35150000=06073850= + UNTIL GTI1:= GTI1+1 = T1; % 35150000160502PK IF ELCLASS ^= RTPAREN THEN 35155000=06073860= ERR(104) 35160000=06073860= ELSE 35165000=06073860=