|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4064 (0xfe0)
Types: TextFile
Notes: Mikados_K
Names: »REDBAK.K«
└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS
└─⟦this⟧ »REDBAK.K«
;*************************************************************
;* PASCAL STANDARD ASSEMBLER PACKAGE. *
;* *
;* (C) 1980 DANSK DATA ELEKTRONIK APS. *
;*************************************************************
;
;*************************************************************
;* PROCEDURE NAME: REDBAK *
;*************************************************************
;
; CT 07-MAY-1980
;
;=============================================================
; DESCRIPTION:
; THIS PURCEDURE IS USED TO READ A SEQUENTIAL MIKADOS FILE
; BACKWARDS.
; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL
; SECTION 8.2 FOR DETAILS.
;
;-------------------------------------------------------------
; STACK CONTENTS ON ENTRY: I I
; I---------------I
; I RETURN ADR. I
; I---------------I
; I -> CONTENTS I
; I---------------I
; I -> FILEID I
; I---------------I
; I I
;-------------------------------------------------------------
; STACK CONTENTS ON EXIT: EMPTY
;=============================================================
SKIP
SYMB
OFFSET:EQU 8C ;THIS IS THE OFFSET FROM FILEID TO THE
; DATA CONTROL BLOCK
REDBAK::
;
;'SHUFFLE' THE STACK SO THAT IT MEETS THE NEED OF THE READB
;SUBROUTINE
;
POP B ;BC=RETURN ADDRESS
POP D ;DE->CONTENTS
POP H ;HL->FILEID
PUSH B
PUSH D
INX D ;DE->CONTENTS(1)
PUSH D
LXI B,OFFSET;COMPUTE THE ADDRESS OF THE
DAD B ; DATA CONTROL BLOCK
PUSH H ;HL->DCB
;THE STACK NOW LOOKS LIKE THIS:
; I I
; I---------------I
; I -> DCB I
; I---------------I
; I ->CONTENTS(1) I
; I---------------I
; I ->CONTENTS(0) I
; I---------------I
; I RETURN ADR. I
; I---------------I
; I I
;
;CLEAR THE END-OF-FILE FLAG (BIT 2 OF THE DFLAG FIELD OF THE
;DCB). IT MAY OF COURSE NOT HAVE BEEN SET, BUT NEVER MIND
;THAT!
;
LXI B,DFLAG
DAD B ;HL->DCB.DFLAG
MOV A,M ;A:=DCB.DFLAG
ANI 0FB ;CLEAR BIT 2
MOV M,A
;
;READ THE RECORD!
;
CALL READB
;
;REG. A NOW CONTAINS A POSSIBLE ERROR CODE
;REG. B CONTAINS THE LENGTH OF THE RECORD, WHICH SHOULD BE
; STORED IN CONTENTS(0)
;
STA IORSLT ;SET IORESULT
POP D ;DE->CONTENTS(0)
MOV A,B ;A:=LENGTH OF RECORD
STAX D ;CONTENTS(0):=LENGTH OF RECORD
RET
END
0x000…040 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x040…080 Line {l1=0x3e, l2=»;* PASCAL STANDARD ASSEMBLER PACKAGE. *«, l3=0x3e}
0x080…0c0 Line {l1=0x3e, l2=»;* *«, l3=0x3e}
0x0c0…100 Line {l1=0x3e, l2=»;* (C) 1980 DANSK DATA ELEKTRONIK APS. *«, l3=0x3e}
0x100…140 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x140…143 Line {l1=0x01, l2=»;«, l3=0x01}
0x143…183 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x183…1c3 Line {l1=0x3e, l2=»;* PROCEDURE NAME: REDBAK *«, l3=0x3e}
0x1c3…203 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x203…206 Line {l1=0x01, l2=»;«, l3=0x01}
0x206…218 Line {l1=0x10, l2=»; CT 07-MAY-1980«, l3=0x10}
0x218…21b Line {l1=0x01, l2=»;«, l3=0x01}
0x21b…25b Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x25b…26b Line {l1=0x0e, l2=»; DESCRIPTION:«, l3=0x0e}
0x26b…2a7 Line {l1=0x3a, l2=»; THIS PURCEDURE IS USED TO READ A SEQUENTIAL MIKADOS FILE«, l3=0x3a}
0x2a7…2b5 Line {l1=0x0c, l2=»; BACKWARDS.«, l3=0x0c}
0x2b5…2f5 Line {l1=0x3e, l2=»; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL«, l3=0x3e}
0x2f5…311 Line {l1=0x1a, l2=»; SECTION 8.2 FOR DETAILS.«, l3=0x1a}
0x311…314 Line {l1=0x01, l2=»;«, l3=0x01}
0x314…354 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x354…386 Line {l1=0x30, l2=»; STACK CONTENTS ON ENTRY: I I«, l3=0x30}
0x386…3b8 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x3b8…3ea Line {l1=0x30, l2=»; I RETURN ADR. I«, l3=0x30}
0x3ea…41c Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x41c…44e Line {l1=0x30, l2=»; I -> CONTENTS I«, l3=0x30}
0x44e…480 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x480…4b2 Line {l1=0x30, l2=»; I -> FILEID I«, l3=0x30}
0x4b2…4e4 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x4e4…516 Line {l1=0x30, l2=»; I I«, l3=0x30}
0x516…556 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x556…57c Line {l1=0x24, l2=»; STACK CONTENTS ON EXIT: EMPTY«, l3=0x24}
0x57c…5bc Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x5bc…5bf Line {l1=0x01, l2=» «, l3=0x01}
0x5bf…5cc Line {l1=0x0b, l2=» SKIP«, l3=0x0b}
0x5cc…5d9 Line {l1=0x0b, l2=» SYMB«, l3=0x0b}
0x5d9…5e2 Line {l1=0x07, l2=» «, l3=0x07}
0x5e2…621 Line {l1=0x3d, l2=»OFFSET:EQU 8C ;THIS IS THE OFFSET FROM FILEID TO THE«, l3=0x3d}
0x621…654 Line {l1=0x31, l2=» ; DATA CONTROL BLOCK«, l3=0x31}
0x654…657 Line {l1=0x01, l2=» «, l3=0x01}
0x657…661 Line {l1=0x08, l2=»REDBAK::«, l3=0x08}
0x661…664 Line {l1=0x01, l2=» «, l3=0x01}
0x664…667 Line {l1=0x01, l2=»;«, l3=0x01}
0x667…6a4 Line {l1=0x3b, l2=»;'SHUFFLE' THE STACK SO THAT IT MEETS THE NEED OF THE READB«, l3=0x3b}
0x6a4…6b1 Line {l1=0x0b, l2=»;SUBROUTINE«, l3=0x0b}
0x6b1…6b4 Line {l1=0x01, l2=»;«, l3=0x01}
0x6b4…6df Line {l1=0x29, l2=» POP B ;BC=RETURN ADDRESS«, l3=0x29}
0x6df…705 Line {l1=0x24, l2=» POP D ;DE->CONTENTS«, l3=0x24}
0x705…729 Line {l1=0x22, l2=» POP H ;HL->FILEID«, l3=0x22}
0x729…73b Line {l1=0x10, l2=» PUSH B«, l3=0x10}
0x73b…74d Line {l1=0x10, l2=» PUSH D«, l3=0x10}
0x74d…776 Line {l1=0x27, l2=» INX D ;DE->CONTENTS(1)«, l3=0x27}
0x776…788 Line {l1=0x10, l2=» PUSH D«, l3=0x10}
0x788…7bc Line {l1=0x32, l2=» LXI B,OFFSET;COMPUTE THE ADDRESS OF THE«, l3=0x32}
0x7bc…7eb Line {l1=0x2d, l2=» DAD B ; DATA CONTROL BLOCK«, l3=0x2d}
0x7eb…80c Line {l1=0x1f, l2=» PUSH H ;HL->DCB«, l3=0x1f}
0x80c…844 Line {l1=0x36, l2=» ;THE STACK NOW LOOKS LIKE THIS:«, l3=0x36}
0x844…87e Line {l1=0x38, l2=» ; I I«, l3=0x38}
0x87e…8b8 Line {l1=0x38, l2=» ; I---------------I«, l3=0x38}
0x8b8…8f2 Line {l1=0x38, l2=» ; I -> DCB I«, l3=0x38}
0x8f2…92c Line {l1=0x38, l2=» ; I---------------I«, l3=0x38}
0x92c…966 Line {l1=0x38, l2=» ; I ->CONTENTS(1) I«, l3=0x38}
0x966…9a0 Line {l1=0x38, l2=» ; I---------------I«, l3=0x38}
0x9a0…9da Line {l1=0x38, l2=» ; I ->CONTENTS(0) I«, l3=0x38}
0x9da…a14 Line {l1=0x38, l2=» ; I---------------I«, l3=0x38}
0xa14…a4e Line {l1=0x38, l2=» ; I RETURN ADR. I«, l3=0x38}
0xa4e…a88 Line {l1=0x38, l2=» ; I---------------I«, l3=0x38}
0xa88…ac2 Line {l1=0x38, l2=» ; I I«, l3=0x38}
0xac2…ac5 Line {l1=0x01, l2=» «, l3=0x01}
0xac5…ac8 Line {l1=0x01, l2=»;«, l3=0x01}
0xac8…b06 Line {l1=0x3c, l2=»;CLEAR THE END-OF-FILE FLAG (BIT 2 OF THE DFLAG FIELD OF THE«, l3=0x3c}
0xb06…b41 Line {l1=0x39, l2=»;DCB). IT MAY OF COURSE NOT HAVE BEEN SET, BUT NEVER MIND«, l3=0x39}
0xb41…b49 Line {l1=0x06, l2=»;THAT!«, l3=0x06}
0xb49…b4c Line {l1=0x01, l2=»;«, l3=0x01}
0xb4c…b64 Line {l1=0x16, l2=» LXI B,DFLAG«, l3=0x16}
0xb64…b8b Line {l1=0x25, l2=» DAD B ;HL->DCB.DFLAG«, l3=0x25}
0xb8b…bb1 Line {l1=0x24, l2=» MOV A,M ;A:=DCB.DFLAG«, l3=0x24}
0xbb1…bd6 Line {l1=0x23, l2=» ANI 0FB ;CLEAR BIT 2«, l3=0x23}
0xbd6…bea Line {l1=0x12, l2=» MOV M,A«, l3=0x12}
0xbea…bf3 Line {l1=0x07, l2=» «, l3=0x07}
0xbf3…bf6 Line {l1=0x01, l2=»;«, l3=0x01}
0xbf6…c09 Line {l1=0x11, l2=»;READ THE RECORD!«, l3=0x11}
0xc09…c0c Line {l1=0x01, l2=»;«, l3=0x01}
0xc0c…c22 Line {l1=0x14, l2=» CALL READB«, l3=0x14}
0xc22…c25 Line {l1=0x01, l2=» «, l3=0x01}
0xc25…c28 Line {l1=0x01, l2=»;«, l3=0x01}
0xc28…c54 Line {l1=0x2a, l2=»;REG. A NOW CONTAINS A POSSIBLE ERROR CODE«, l3=0x2a}
0xc54…c90 Line {l1=0x3a, l2=»;REG. B CONTAINS THE LENGTH OF THE RECORD, WHICH SHOULD BE«, l3=0x3a}
0xc90…caf Line {l1=0x1d, l2=»; STORED IN CONTENTS(0)«, l3=0x1d}
0xcaf…cb2 Line {l1=0x01, l2=»;«, l3=0x01}
0xcb2…cd8 Line {l1=0x24, l2=» STA IORSLT ;SET IORESULT«, l3=0x24}
0xcd8…cdb Line {l1=0x01, l2=» «, l3=0x01}
0xcdb…d04 Line {l1=0x27, l2=» POP D ;DE->CONTENTS(0)«, l3=0x27}
0xd04…d31 Line {l1=0x2b, l2=» MOV A,B ;A:=LENGTH OF RECORD«, l3=0x2b}
0xd31…d68 Line {l1=0x35, l2=» STAX D ;CONTENTS(0):=LENGTH OF RECORD«, l3=0x35}
0xd68…d6b Line {l1=0x01, l2=» «, l3=0x01}
0xd6b…d77 Line {l1=0x0a, l2=» RET«, l3=0x0a}
0xd77…d7a Line {l1=0x01, l2=» «, l3=0x01}
0xd7a…d86 Line {l1=0x0a, l2=» END«, l3=0x0a}
0xd86…da0 00 00 00 00 00 05 03 08 04 ca 03 04 0a 02 f4 02 04 02 08 2a 02 04 0a 02 2f 04 ┆ * / ┆
0xda0…dc0 04 03 08 eb 21 03 04 0a 02 13 06 04 02 08 cd 02 05 0b 08 00 00 00 05 03 08 a7 c2 03 04 0a 02 fa ┆ ! ┆
0xdc0…de0 02 04 02 08 2a 02 04 0a 02 33 06 04 0a 08 11 02 00 19 7e 23 66 6f 22 0a 04 0a 02 0b 06 04 02 08 ┆ * 3 ü#fo" ┆
0xde0…e00 21 02 04 0a 02 13 06 04 13 08 01 13 00 09 36 00 23 36 00 23 36 00 23 36 01 3e 01 21 13 04 0a 02 ┆! 6 #6 #6 #6 > ! ┆
0xe00…e20 13 06 04 02 08 cd 02 05 0b 09 00 00 00 05 02 08 32 02 04 0a 02 0d 06 04 02 08 3a 02 04 0a 02 0d ┆ 2 : ┆
0xe20…e40 06 04 04 08 fe 2a ca 04 04 0a 02 fb 00 04 03 08 a7 ca 03 04 0a 02 9e 00 04 02 08 cd 02 04 0a 02 ┆ * ┆
0xe40…e60 13 03 04 02 08 21 02 04 0a 02 2c 05 04 02 08 c3 02 04 0a 02 fd 02 04 02 08 21 02 04 0a 02 43 06 ┆ ! , ! C ┆
0xe60…e80 04 02 08 11 02 04 0a 02 e0 04 04 04 08 06 0a cd 04 05 0b 0a 00 00 00 05 02 08 c2 02 04 0a 02 fb ┆ ┆
0xe80…ea0 00 04 02 08 2a 02 04 0a 02 4d 06 04 03 08 eb 21 03 04 0a 02 d9 04 04 02 08 cd 02 05 0b 0b 00 00 ┆ * M ! ┆
0xea0…ec0 00 05 03 08 23 3a 03 04 0a 02 4f 06 04 02 08 cd 02 05 0b 0c 00 00 00 05 02 08 01 02 04 0a 02 b3 ┆ #: O ┆
0xec0…ee0 04 04 07 08 11 2d 00 3e 02 2a 07 05 0b 06 00 00 00 05 02 08 cd 02 05 0b 0d 00 00 00 05 02 08 3a ┆ - > * :┆
0xee0…f00 02 04 0a 02 50 06 04 06 08 e6 5f fe 41 da 06 04 0a 02 fb 00 04 04 08 fe 5e d2 04 04 0a 02 fb 00 ┆ P _ A ^ ┆
0xf00…f20 04 02 08 11 02 04 0a 02 50 06 04 02 08 21 02 04 0a 02 0a 04 04 04 08 06 05 cd 04 05 0b 05 00 00 ┆ P ! ┆
0xf20…f40 00 05 02 08 11 02 04 0a 02 55 06 04 02 08 21 02 04 0a 02 53 04 04 04 08 06 0a cd 04 05 0b 05 00 ┆ U ! S ┆
0xf40…f60 00 00 05 02 08 11 02 04 0a 02 5f 06 04 02 08 21 02 04 0a 02 e9 03 04 04 08 06 0a cd 04 05 0b 05 ┆ _ ! ┆
0xf60…f80 00 00 00 05 02 08 01 02 04 0a 02 d1 03 04 06 08 3e 22 16 18 2a 06 05 0b 06 00 00 00 05 02 08 cd ┆ >" * ┆
0xf80…fa0 02 05 0b 07 00 00 00 05 03 08 04 ca 03 04 0a 02 f4 02 04 02 08 01 02 04 0a 02 f3 03 04 06 08 3e ┆ >┆
0xfa0…fc0 1c 16 17 2a 06 05 0b 06 00 00 00 05 02 08 cd 02 05 0b 07 00 00 00 05 03 08 04 ca 03 04 0a 02 f4 ┆ * ┆
0xfc0…fe0 02 04 02 08 01 02 04 0a 02 31 04 04 06 08 3e 2c 16 22 2a 06 05 0b 06 00 00 00 05 02 08 cd 02 63 ┆ 1 >, "* c┆