|
|
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: 2528 (0x9e0)
Types: TextFile
Notes: Mikados_K
Names: »COMPR80.K«
└─⟦670c0171b⟧ Bits:30005246 COMAL-80 version 1.3 (MIKADOS)
└─⟦this⟧ »COMPR80.K«
└─⟦6980b4520⟧ Bits:30003618 MIKADOS start diskette med DDE COMAL-80 version 1.5
└─⟦this⟧ »COMPR80.K«
0100 // COMPR80 - MH 791102, PNM 050980, DI 050182, DI 210182 0110 // COMAL80 VERSION 24.04.1982 0120 DIM DREVN$ OF 2 0130 INTEGER FLAG,FOREVER 0140 PRINT 0150 PRINT "COMPR80- Komprimering af een plade" 0160 PRINT "Programmet stoppes ved at trykke paa ESC" 0170 REPEAT 0180 FLAG,FOREVER:=0 0190 PRINT 0200 REPEAT 0210 INPUT "Indtast drevbetegnelse (P1, P2, .. ): ":DREVN$ 0220 UNTIL DREVN$>"P0" AND DREVN$<="P9" 0230 EXEC KOMP 0240 UNTIL FOREVER 0250 PROC KOMP 0260 PRINT " " 0270 PRINT "Aktuelt spor Sidste spor" 0280 PRINT " " 0290 CALL "SYSPROG:KOMPNM" 0300 PRINT "" 0310 PRINT " " 0320 IF FLAG<>0 THEN 0330 PRINT "Komprimeringen mislykkedes. Fejlkode ";FLAG 0340 STOP 0350 ELSE 0360 PRINT DREVN$;" er nu komprimeret" 0370 ENDIF 0380 ENDPROC KOMP
0x000…042 Line {l1=0x40, l2=»0100 // COMPR80 - MH 791102, PNM 050980, DI 050182, DI 210182«, l3=0x40}
0x042…066 Line {l1=0x22, l2=»0110 // COMAL80 VERSION 24.04.1982«, l3=0x22}
0x066…07c Line {l1=0x14, l2=»0120 DIM DREVN$ OF 2«, l3=0x14}
0x07c…097 Line {l1=0x19, l2=»0130 INTEGER FLAG,FOREVER«, l3=0x19}
0x097…0a4 Line {l1=0x0b, l2=»0140 PRINT «, l3=0x0b}
0x0a4…0d5 Line {l1=0x2f, l2=»0150 PRINT "COMPR80- Komprimering af een plade"«, l3=0x2f}
0x0d5…10c Line {l1=0x35, l2=»0160 PRINT "Programmet stoppes ved at trykke paa ESC"«, l3=0x35}
0x10c…11a Line {l1=0x0c, l2=»0170 REPEAT «, l3=0x0c}
0x11a…130 Line {l1=0x14, l2=»0180 FLAG,FOREVER:=0«, l3=0x14}
0x130…13d Line {l1=0x0b, l2=»0190 PRINT «, l3=0x0b}
0x13d…14b Line {l1=0x0c, l2=»0200 REPEAT «, l3=0x0c}
0x14b…187 Line {l1=0x3a, l2=»0210 INPUT "Indtast drevbetegnelse (P1, P2, .. ): ":DREVN$«, l3=0x3a}
0x187…1b0 Line {l1=0x27, l2=»0220 UNTIL DREVN$>"P0" AND DREVN$<="P9"«, l3=0x27}
0x1b0…1c0 Line {l1=0x0e, l2=»0230 EXEC KOMP«, l3=0x0e}
0x1c0…1d4 Line {l1=0x12, l2=»0240 UNTIL FOREVER«, l3=0x12}
0x1d4…1e4 Line {l1=0x0e, l2=»0250 PROC KOMP«, l3=0x0e}
0x1e4…1f4 Line {l1=0x0e, l2=»0260 PRINT " "«, l3=0x0e}
0x1f4…22d Line {l1=0x37, l2=»0270 PRINT "Aktuelt spor Sidste spor"«, l3=0x37}
0x22d…23d Line {l1=0x0e, l2=»0280 PRINT " "«, l3=0x0e}
0x23d…259 Line {l1=0x1a, l2=»0290 CALL "SYSPROG:KOMPNM"«, l3=0x1a}
0x259…268 Line {l1=0x0d, l2=»0300 PRINT ""«, l3=0x0d}
0x268…278 Line {l1=0x0e, l2=»0310 PRINT " "«, l3=0x0e}
0x278…28f Line {l1=0x15, l2=»0320 IF FLAG<>0 THEN «, l3=0x15}
0x28f…2c8 Line {l1=0x37, l2=»0330 PRINT "Komprimeringen mislykkedes. Fejlkode ";FLAG«, l3=0x37}
0x2c8…2d4 Line {l1=0x0a, l2=»0340 STOP «, l3=0x0a}
0x2d4…2e0 Line {l1=0x0a, l2=»0350 ELSE «, l3=0x0a}
0x2e0…308 Line {l1=0x26, l2=»0360 PRINT DREVN$;" er nu komprimeret"«, l3=0x26}
0x308…315 Line {l1=0x0b, l2=»0370 ENDIF «, l3=0x0b}
0x315…328 Line {l1=0x11, l2=»0380 ENDPROC KOMP«, l3=0x11}
0x328…340 00 00 4b 54 53 4e 20 20 20 20 20 20 20 20 20 3b 20 53 41 56 45 20 28 4e ┆ KTSN ; SAVE (N┆
0x340…360 45 57 29 23 1d 20 20 20 20 20 20 44 57 20 20 4b 54 53 49 20 20 20 20 20 20 20 20 20 3b 20 53 49 ┆EW)# DW KTSI ; SI┆
0x360…380 5a 45 1d 18 20 20 20 20 20 20 20 49 46 20 20 20 20 20 20 4e 4f 4e 2b 44 45 44 49 43 18 1d 20 20 ┆ZE IF NON+DEDIC ┆
0x380…3a0 20 20 20 20 44 57 20 20 4b 54 53 54 20 20 20 20 20 20 20 20 20 3b 20 53 54 4f 50 1d 0c 20 20 20 ┆ DW KTST ; STOP ┆
0x3a0…3c0 20 20 20 20 45 4e 44 49 46 0c 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ┆ ENDIF ┆
0x3c0…3e0 20 20 3b 18 05 4b 54 42 41 3a 05 14 20 20 20 20 20 20 20 49 46 20 20 20 20 20 20 43 4f 4d 4c 42 ┆ ; KTBA: IF COMLB┆
0x3e0…400 14 1e 20 20 20 20 20 20 20 4c 44 41 20 20 20 20 20 46 4f 52 42 54 20 20 20 3b 45 52 20 41 4c 54 ┆ LDA FORBT ;ER ALT┆
0x400…420 1e 20 20 20 20 20 20 20 20 43 50 49 20 20 20 20 20 27 7e 27 20 20 20 20 20 3b 46 4f 52 42 55 44 ┆ CPI 'ü' ;FORBUD┆
0x420…440 54 3f 20 23 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 46 45 33 37 20 20 20 20 3b 48 4f 50 20 ┆T? # JZ FE37 ;HOP ┆
0x440…460 48 56 49 53 20 4a 41 23 0c 20 20 20 20 20 20 20 45 4e 44 49 46 0c 40 20 20 20 20 20 20 20 43 41 ┆HVIS JA# ENDIF @ CA┆
0x460…480 4c 4c 20 20 20 20 43 4f 43 4c 52 20 20 20 3b 20 49 4e 44 48 4f 50 20 46 4f 52 20 53 5b 54 4e 49 ┆LL COCLR ; INDHOP FOR SÆTNI┆
0x480…4a0 4e 47 53 41 4e 41 4c 59 53 45 2c 20 46 4f 52 42 59 44 20 43 4f 4e 54 40 32 20 20 20 20 20 20 43 ┆NGSANALYSE, FORBYD CONT@2 C┆
0x4a0…4c0 41 4c 4c 20 53 41 54 4e 20 20 20 20 20 20 20 20 3b 20 53 59 4e 54 41 4b 53 41 4e 41 4c 59 53 45 ┆ALL SATN ; SYNTAKSANALYSE┆
0x4c0…4e0 20 4f 47 20 4b 4f 44 4e 49 4e 47 32 29 20 20 20 20 20 20 20 4a 4d 50 20 20 20 20 20 49 4e 53 54 ┆ OG KODNING2) JMP INST┆
0x4e0…500 20 20 20 20 3b 4c 41 47 52 49 4e 47 20 4f 47 20 46 5b 52 44 49 47 29 18 20 20 20 20 20 20 20 20 ┆ ;LAGRING OG FÆRDIG) ┆
0x500…520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 18 10 20 20 20 20 20 20 20 45 4e 44 20 4d 42 4d ┆ ; END MBM┆
0x520…540 41 4c 10 00 00 20 20 4d 4f 56 20 20 20 20 20 48 2c 4d 12 12 20 20 20 20 20 20 20 4d 4f 56 20 20 ┆AL MOV H,M MOV ┆
0x540…560 20 20 20 4c 2c 41 12 12 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 41 2c 42 12 37 20 20 20 20 ┆ L,A MOV A,B 7 ┆
0x560…580 20 20 20 4c 58 49 20 20 20 20 20 44 2c 4f 50 42 52 4b 20 3b 50 4f 49 4e 54 20 41 54 20 41 50 50 ┆ LXI D,OPBRK ;POINT AT APP┆
0x580…5a0 52 4f 50 52 49 41 54 45 20 44 41 54 41 20 46 49 45 4c 44 37 10 20 20 20 20 20 20 20 44 41 44 20 ┆ROPRIATE DATA FIELD7 DAD ┆
0x5a0…5c0 20 20 20 20 44 10 2f 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 4d 2c 41 20 20 20 20 20 3b 53 ┆ D / MOV M,A ;S┆
0x5c0…5e0 41 56 45 20 46 55 4e 43 54 49 4f 4e 20 43 48 41 52 41 43 54 45 52 2f 01 3b 01 31 43 46 55 4e 31 ┆AVE FUNCTION CHARACTER/ ; 1CFUN1┆
0x5e0…600 3a 20 4d 56 49 20 20 20 20 20 44 2c 30 20 20 20 20 20 3b 4e 4f 20 52 45 53 43 48 45 44 55 4c 49 ┆: MVI D,0 ;NO RESCHEDULI┆
0x600…620 4e 47 20 4e 45 43 45 53 53 41 52 59 31 32 20 20 20 20 20 20 20 4d 56 49 20 20 20 20 20 48 2c 31 ┆NG NECESSARY12 MVI H,1┆
0x620…640 20 20 20 20 20 3b 49 4e 43 52 45 41 53 45 20 53 54 41 54 55 53 20 56 41 4c 55 45 20 42 59 20 31 ┆ ;INCREASE STATUS VALUE BY 1┆
0x640…660 32 14 20 20 20 20 20 20 20 4a 4d 50 20 20 20 20 20 43 52 53 45 54 14 01 20 01 0b 20 20 20 20 20 ┆2 JMP CRSET ┆
0x660…680 20 20 53 4b 49 50 0b 42 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆ SKIP B;***********************┆
0x680…6a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆
0x6a0…6c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 42 17 3b 20 53 49 4e 47 4c 45 20 43 48 41 52 41 43 54 45 52 20 52 ┆**********B ; SINGLE CHARACTER R┆
0x6c0…6e0 45 41 44 17 01 20 01 1a 43 53 49 4e 47 3a 20 49 46 20 20 20 20 20 20 54 45 43 37 30 21 56 4f 4c ┆EAD CSING: IF TEC70!VOL┆
0x6e0…700 43 4b 1a 22 20 20 20 20 20 20 20 43 50 49 20 20 20 20 20 45 53 43 20 20 20 20 20 3b 49 47 4e 4f ┆CK " CPI ESC ;IGNO┆
0x700…720 52 45 20 45 53 43 22 14 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 43 44 4f 4e 45 14 0c 20 20 ┆RE ESC" JZ CDONE ┆
0x720…740 20 20 20 20 20 45 4e 44 49 46 0c 46 20 20 20 20 20 20 20 4d 56 49 20 20 20 20 20 48 2c 2d 31 20 ┆ ENDIF F MVI H,-1 ┆
0x740…760 20 20 20 3b 43 48 41 4e 47 45 20 53 54 41 54 55 53 20 46 52 4f 4d 20 32 20 54 4f 20 31 20 49 46 ┆ ;CHANGE STATUS FROM 2 TO 1 IF┆
0x760…780 20 46 55 4e 43 54 49 4f 4e 20 53 45 51 55 45 4e 43 45 46 25 20 20 20 20 20 20 20 43 50 49 20 20 ┆ FUNCTION SEQUENCEF% CPI ┆
0x780…7a0 20 20 20 53 4f 46 20 20 20 20 20 3b 20 49 53 20 43 4f 4d 49 4e 47 20 49 4e 25 14 20 20 20 20 20 ┆ SOF ; IS COMING IN% ┆
0x7a0…7c0 20 20 4a 5a 20 20 20 20 20 20 43 52 53 45 54 14 42 20 20 20 20 20 20 20 43 41 4c 4c 20 20 20 20 ┆ JZ CRSET B CALL ┆
0x7c0…7e0 43 31 52 46 20 20 20 20 3b 54 52 41 4e 53 4d 49 54 20 43 48 41 52 41 43 54 45 52 20 49 4e 50 55 ┆C1RF ;TRANSMIT CHARACTER INPU┆
0x7e0…800 54 20 4d 45 53 53 41 47 45 20 54 4f 20 44 52 49 56 45 52 42 37 20 20 20 20 20 20 20 4d 56 49 20 ┆T MESSAGE TO DRIVERB7 MVI ┆
0x800…820 20 20 20 20 48 2c 32 20 20 20 20 20 3b 20 20 41 4e 44 20 43 48 41 4e 47 45 20 53 54 41 54 55 53 ┆ H,2 ; AND CHANGE STATUS┆
0x820…840 20 46 52 4f 4d 20 32 20 54 4f 20 34 37 01 3b 01 2c 43 52 53 45 54 3a 20 20 20 20 20 20 20 20 20 ┆ FROM 2 TO 47 ; ,CRSET: ┆
0x840…860 20 20 20 20 20 20 20 20 3b 43 48 41 4e 47 45 20 53 54 41 54 55 53 20 42 59 20 28 48 29 2c 12 20 ┆ ;CHANGE STATUS BY (H), ┆
0x860…880 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 42 2c 48 12 15 20 20 20 20 20 20 20 4c 48 4c 44 20 20 ┆ MOV B,H LHLD ┆
0x880…8a0 20 20 57 4f 52 4b 41 52 15 16 20 20 20 20 20 20 20 4c 58 49 20 20 20 20 20 44 2c 43 58 53 54 54 ┆ WORKAR LXI D,CXSTT┆
0x8a0…8c0 16 27 20 20 20 20 20 20 20 44 41 44 20 20 20 20 20 44 20 20 20 20 20 20 20 3b 48 4c 2d 3e 43 58 ┆ ' DAD D ;HL->CX┆
0x8c0…8e0 53 54 54 20 46 49 45 4c 44 27 12 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 41 2c 4d 12 10 20 ┆STT FIELD' MOV A,M ┆
0x8e0…900 20 20 20 20 20 20 41 44 44 20 20 20 20 20 42 10 12 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 ┆ ADD B MOV ┆
0x900…920 4d 2c 41 12 3c 20 20 20 20 20 20 20 4a 4d 50 20 20 20 20 20 43 53 43 48 45 20 20 20 3b 43 48 45 ┆M,A < JMP CSCHE ;CHE┆
0x920…940 43 4b 20 49 46 20 53 43 48 45 44 55 4c 45 52 20 53 48 4f 55 4c 44 20 42 45 20 49 4e 56 4f 4b 45 ┆CK IF SCHEDULER SHOULD BE INVOKE┆
0x940…960 44 3c 01 20 01 0b 20 20 20 20 20 20 20 53 4b 49 50 0b 42 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆D< SKIP B;************┆
0x960…980 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ┆********************************┆
0x980…9a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 42 0e 3b 20 44 49 52 45 43 54 20 ┆*********************B ; DIRECT ┆
0x9a0…9c0 49 4e 50 55 54 0e 01 20 01 39 43 47 45 54 3a 20 20 53 54 41 20 20 20 20 20 43 48 52 20 20 20 20 ┆INPUT 9CGET: STA CHR ┆
0x9c0…9e0 20 3b 53 41 56 45 20 49 4e 50 55 54 20 43 48 41 52 41 43 54 45 52 20 46 4f 52 20 41 20 4d 4f 63 ┆ ;SAVE INPUT CHARACTER FOR A MOc┆
@0100 // COMPR80 - MH 791102, PNM 050980, DI 050182, DI 210182@"0110 // COMAL80 VERSION 24.04.1982"▶14◀0120 DIM DREVN$ OF 2▶14◀▶19◀0130 INTEGER FLAG,FOREVER▶19◀▶0b◀0140 PRINT ▶0b◀/0150 PRINT "COMPR80- Komprimering af een plade"/50160 PRINT "Programmet stoppes ved at trykke paa ESC"5\f
0170 REPEAT \f
▶14◀0180 FLAG,FOREVER:=0▶14◀▶0b◀0190 PRINT ▶0b◀\f
0200 REPEAT \f
:0210 INPUT "Indtast drevbetegnelse (P1, P2, .. ): ":DREVN$:'0220 UNTIL DREVN$>"P0" AND DREVN$<="P9"'▶0e◀0230 EXEC KOMP▶0e◀▶12◀0240 UNTIL FOREVER▶12◀▶0e◀0250 PROC KOMP▶0e◀▶0e◀0260 PRINT " "▶0e◀70270 PRINT "Aktuelt spor Sidste spor"7▶0e◀0280 PRINT " "▶0e◀▶1a◀0290 CALL "SYSPROG:KOMPNM"▶1a◀\r0300 PRINT ""\r▶0e◀0310 PRINT " "▶0e◀▶15◀0320 IF FLAG<>0 THEN ▶15◀70330 PRINT "Komprimeringen mislykkedes. Fejlkode ";FLAG7
0340 STOP
0350 ELSE
&0360 PRINT DREVN$;" er nu komprimeret"&▶0b◀0370 ENDIF ▶0b◀▶11◀0380 ENDPROC KOMP▶11◀▶00◀▶00◀KTSN ; SAVE (NEW)#▶1d◀ DW KTSI ; SIZE▶1d◀▶18◀ IF NON+DEDIC▶18◀▶1d◀ DW KTST ; STOP▶1d◀\f
ENDIF\f
▶18◀ ;▶18◀▶05◀KTBA:▶05◀▶14◀ IF COMLB▶14◀▶1e◀ LDA FORBT ;ER ALT▶1e◀ CPI 'ü' ;FORBUDT? # JZ FE37 ;HOP HVIS JA#\f
ENDIF\f
@ CALL COCLR ; INDHOP FOR SÆTNINGSANALYSE, FORBYD CONT@2 CALL SATN ; SYNTAKSANALYSE OG KODNING2) JMP INST ;LAGRING OG FÆRDIG)▶18◀ ;▶18◀▶10◀ END MBMAL▶10◀▶00◀▶00◀ MOV H,M▶12◀▶12◀ MOV L,A▶12◀▶12◀ MOV A,B▶12◀7 LXI D,OPBRK ;POINT AT APPROPRIATE DATA FIELD7▶10◀ DAD D▶10◀/ MOV M,A ;SAVE FUNCTION CHARACTER/▶01◀;▶01◀1CFUN1: MVI D,0 ;NO RESCHEDULING NECESSARY12 MVI H,1 ;INCREASE STATUS VALUE BY 12▶14◀ JMP CRSET▶14◀▶01◀ ▶01◀▶0b◀ SKIP▶0b◀B;*****************************************************************B▶17◀; SINGLE CHARACTER READ▶17◀▶01◀ ▶01◀▶1a◀CSING: IF TEC70!VOLCK▶1a◀" CPI ESC ;IGNORE ESC"▶14◀ JZ CDONE▶14◀\f
ENDIF\f
F MVI H,-1 ;CHANGE STATUS FROM 2 TO 1 IF FUNCTION SEQUENCEF% CPI SOF ; IS COMING IN%▶14◀ JZ CRSET▶14◀B CALL C1RF ;TRANSMIT CHARACTER INPUT MESSAGE TO DRIVERB7 MVI H,2 ; AND CHANGE STATUS FROM 2 TO 47▶01◀;▶01◀,CRSET: ;CHANGE STATUS BY (H),▶12◀ MOV B,H▶12◀▶15◀ LHLD WORKAR▶15◀▶16◀ LXI D,CXSTT▶16◀' DAD D ;HL->CXSTT FIELD'▶12◀ MOV A,M▶12◀▶10◀ ADD B▶10◀▶12◀ MOV M,A▶12◀< JMP CSCHE ;CHECK IF SCHEDULER SHOULD BE INVOKED<▶01◀ ▶01◀▶0b◀ SKIP▶0b◀B;*****************************************************************B▶0e◀; DIRECT INPUT▶0e◀▶01◀ ▶01◀9CGET: STA CHR ;SAVE INPUT CHARACTER FOR A MOc