DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 10674 (0x29b2) Types: TextFile Names: »INSPEC.SRC«
└─⟦8347abc8e⟧ Bits:30005501 8" CR80 Floppy CR80FD_0033 ( ATR Source and Abs-files ) └─⟦8347abc8e⟧ Intel_ISIS_II └─ ⟦this⟧ »INSPEC.SRC«
*******************************************************************************\r ;* *\r ;* D O R A A P P L I C A T I O N S / W *\r ;* *\r ;* DEVICE: ATR *\r ;* *\r ;* MODULE: COMMAND INSPECTION PROCESS *\r ;* *\r ;******************************************************************************\r \r LINK DEFL 0\r SCANNR DEFL 5\r DCODNR DEFL 6\r SEARNR DEFL 7\r SYNCNR DEFL 8\r LOCKNR DEFL 9\r TIMGNR DEFL 10\r INSPNR DEFL 11\r STATNR DEFL 12\r READNR DEFL 13\r SEARTIM DEFL 1\r SYNCTIM DEFL 2\r LOCKTIM DEFL 3\r INSPTIM DEFL 4\r SCANTIM DEFL 5\r PORT1 DEFL 30H\r PORT2 DEFL 32H\r PORT3 DEFL 34H\r PORT4 DEFL 31H\r DAC DEFL 20H\r \r NLIST S\r PASSIVATE MACRO #ID,#NO\r ;DESRIP: THE MODULE PASSIVATES\r ; SPECIFIED PROCES.\r ; IF LINK IS SET AND ACTIV\r ; SPECIAL PROCESS IS PASSIVATED\r ; THE LINK-ELEMENT IS \r ; DECREMENTED\r ;DESTR: REG F,H,L\r IF '#ID'.EQ.'S'\r LD HL,SYSRAM+200H+#NO*10H+5\r ;IMPLEMENT ADD OF STATUS-BIT\r IF LINK.EQ.1\r BIT 7,(HL) ;\r JR Z,O#$YM ;IF PROCESS WAS NOT PASSIVE THEN\r LD HL,SYSRAM+0FBH ;BEGIN\r DEC (HL) ;DEC LINK-ELEMENT\r LD HL,SYSRAM+200H+#NO*10H+5\r ;END\r O#$YM: ENDIF\r ENDIF\r IF '#ID'.EQ.'N'\r LD HL,SYSRAM+200H+S*10H+#NO*20H+5\r ;IMPLEMENT ADD OF STATUS-BIT\r ENDIF\r RES 7,(HL) ;PASSIVATE\r ENDM\r ACTIVATE MACRO #ID,#NO\r ;DESRIP: THE MODULE ACTIVATES\r ; SPECIFIED PROCES.\r ; IF LINK IS SET AND PASSIV\r ; SPECIAL PROCESS IS ACTIVATED\r ; THE LINK-ELEMENT IS \r ; INCREMENTED\r ;DESTR: REG F,H,L\r IF '#ID'.EQ.'S'\r LD HL,SYSRAM+200H+#NO*10H+5\r ;IMPLEMENT ADD OF STATUS-BIT\r IF LINK.EQ.1\r BIT 7,(HL) ;\r JR NZ,O#$YM ;IF PROCESS WAS NOT ACTIVE THEN\r LD HL,SYSRAM+0FBH ;BEGIN\r INC (HL) ;INC LINK-ELEMENT\r LD HL,SYSRAM+200H+#NO*10H+5\r ;END\r O#$YM: ENDIF\r ENDIF\r IF '#ID'.EQ.'N'\r LD HL,SYSRAM+200H+S*10H+#NO*20H+5\r ;IMPLEMENT ADD OF STATUS-BIT\r ENDIF\r SET 7,(HL) ;ACTIVATE\r ENDM\r CREATE MACRO #ID,#NO,#NAME,#PRIO\r ;DESCRIP: THE MODULE CREATES SPECIFIED\r ; PROCESS IE LOADS STARTADDRESS\r ; (#NAME) IN PROCESS-DESCRIPTION\r ; BYTE 6,7. IF NORMAL PROCESS IS\r ; ENCOUNTERED PRIORITY IS LOADED\r ; TO BYTE 5 IN PROCESS-DESCRIPTION\r ; AND THE PROCESS IS ENQUEUED IN\r ; APPROPRIATE PRIO-QUEUE.\r ; FINALLY THE SPECIFIED PROCESS\r ; IS ACTIVATED\r ;DESTR: IF NORMAL PROCESS\r ; REG. A,F,B,C,D,E,H,L\r ; IF SPECIAL PROCESS\r ; REG. F,H,L\r LD HL,#NAME ;\r IF '#ID'.EQ.'S'\r LD (SYSRAM+200H+#NO*10H+6),HL\r ;STARTADD TO PROCESS-DESCRIP\r ENDIF\r IF '#ID'.EQ.'N'\r LD (SYSRAM+200H+S*10H+#NO*20H+6),HL\r ;STARTADD TO PROCESS-DESCRIP\r LD HL,SYSRAM+200H+S*10H+#NO*20H+5\r LD (HL),#PRIO ;PRIORTY TO PROCESS\r LD HL,SYSRAM+#PRIO*8 ;ADDRESS OF PRIO-QUEUE\r LD DE,SYSRAM+200H+S*10H+#NO*20H ;ADDRESS OF PROCESS-DESCRIP\r CALL SUBENQ\r ENDIF\r ACTIVATE #ID,#NO ;ACTIVATE PROCESS\r ENDM\r RESTART MACRO #ID,#NO,#NAME,#PRIO\r ;DESCRIP: THE MODULE CREATES SPECIFIED\r ; PROCESS IE LOADS STARTADDRESS\r ; (#NAME) IN PROCESS-DESCRIPTION\r ; BYTE 6,7. IF NORMAL PROCESS IS\r ; ENCOUNTERED PRIORITY IS LOADED\r ; TO BYTE 5 IN PROCESS-DESCRIPTION\r ; AND THE PROCESS IS ENQUEUED IN\r ; APPROPRIATE PRIO-QUEUE.\r ; FINALLY THE SPECIFIED PROCESS\r ; IS ACTIVATED\r ;DESTR: IF NORMAL PROCESS\r ; REG. A,F,B,C,D,E,H,L\r ; IF SPECIAL PROCESS\r ; REG. F,H,L\r LD HL,#NAME ;\r IF '#ID'.EQ.'S'\r LD (SYSRAM+200H+#NO*10H+6),HL\r ;STARTADD TO PROCESS-DESCRIP\r ENDIF\r IF '#ID'.EQ.'N'\r LD (SYSRAM+200H+S*10H+#NO*20H+6),HL\r ;STARTADD TO PROCESS-DESCRIP\r LD HL,SYSRAM+200H+S*10H+#NO*20H+5\r LD (HL),#PRIO ;PRIORTY TO PROCESS\r LD HL,SYSRAM+#PRIO*8 ;ADDRESS OF PRIO-QUEUE\r LD DE,SYSRAM+200H+S*10H+#NO*20H ;ADDRESS OF PROCESS-DESCRIP\r CALL SUBENQ\r ENDIF\r ACTIVATE #ID,#NO ;ACTIVATE PROCESS\r ENDM\r \r \r LESTAB MACRO #PRNUM\r LD BC,#PRNUM\r CALL ESTABR\r ENDM\r \r LSUSPN MACRO #PRNUM\r LD BC,#PRNUM\r CALL SUSPND\r ENDM\r \r GESTAM MACRO\r LD HL,ONOFF\r LD (HL),0FFH\r ENDM\r \r GSUSPM MACRO\r LD HL,ONOFF\r LD (HL),0\r ENDM\r \r UPDATM MACRO #PRNUM,#NO\r LD HL,DELAY+#PRNUM\r LD (HL),#NO\r ENDM\r \r LIST S\r PUBLIC INSPEC,STAC11\r EXTRN SCOMMON,TCCSTA,ECOND2,CODSAV,COUNT2,COUNT3,FLAG1\r EXTRN OUTPUT,OLDSTAT,DELAY,ESTABR,COMBYT,SYSRAM,CLEARY\r EXTRN CCBSTA,CVAL1,CVAL2,CVAL3\r \r CSEG\r INSPEC: LD SP,STAC11 ;INITIALIZE STACKPOINTER\r CALL SCOMMON\r EI\r UPDATM INSPTIM,25\r \r PASPRO: LESTAB INSPTIM\r PASSIVATE S,INSPNR\r CALL SCOMMON\r EI\r LD A,(TCCSTA)\r AND 9FH\r CP 01H\r JP Z,CASE1 ;IF PLAY-INDICATION THEN CASE1\r CP 03H \r JP Z,CASE1 ;IF RECORD-INDICATION THEN CASE1\r CP 04H\r JP Z,CASE2 ;IF FORWIND-INDICATION THEN CASE2\r CP 08H\r JP Z,CASE2 ;IF REWIND-INDICATION THEN CASE2\r CP 11H\r JP Z,CASE3 ;IF STOP+PLAY-INDICATION THEN CASE3\r CP 13H\r JP Z,CASE3 ;IF STOP+RECORD-INDICATION THEN CASE3\r CP 10H\r JP Z,CASE4 ;IF STOP-INDICATION THEN CASE4\r CP 80H\r JP Z,CASE5 ;IF EDIT-INDICATION THEN CASE5\r \r LD A,(CCBSTA) ;NO VALID MODE OF OPERATION\r BIT 1,A\r JR Z,I1 ;IF THE CONTROL VOLTAGE IS PRESENT THEN\r LD HL,ECOND2 ;BEGIN\r SET 1,(HL) ; SET DEVICE CONTROL ERROR-BIT\r JP PROEND ;END ELSE\r I1: LD A,0EFH ;BEGIN\r CALL OUTPUT ; SET THE LTUX IN STOP MODE\r JP PROEND ;END\r \r ;--------------------------------------------------------------------------\r CASE1: ;PLAY/RECORD-INDICATION\r LD B,A\r LD A,(CODSAV)\r CPL\r AND 9FH\r CP B ;IF THE INDICATION IS IN ACCORDANCE WITH\r JR NZ,C12 ;THE DESIRED MODE OF OPERATION\r ;BEGIN\r IN A,(PORT1) ;\r CP 0FFH ;\r JR Z,C11 ; IF PORT1 IS NOT NEUTRALIZED YET THEN\r ; BEGIN\r IN A,(PORT4) ;\r LD B,A ;\r AND 03H ;\r AND A ;\r JR NZ,C01 ; IF FADER CONTACT IS ACTIVATED THEN\r LD A,03H ; DE-ACTIVATE IT\r OR B ;\r OUT (PORT4),A ;\r JP PROEND ; ELSE\r C01: LD A,0FFH ;\r OUT (PORT1),A ; NEUTRALIZE PORT1\r LD A,CVAL1.LOW. ;\r LD (COUNT2),A ; SET COUNT2 = CVAL1\r JP PROEND ; END ELSE\r C11: LD HL,FLAG1 ; BEGIN\r BIT 3,(HL) ;\r JP NZ,PROEND ; IF STATUS READY-BIT = 0 THEN\r LD HL,COUNT2 ; BEGIN\r DEC (HL) ; DECREMENT COUNT2\r JP NZ,PROEND ; IF COUNT2 = 0 THEN\r LD HL,FLAG1 ;\r SET 3,(HL) ; SET STATUS READY-BIT\r JP PROEND ; END\r ; END\r ;END ELSE\r C12: ;BEGIN\r LD HL,FLAG1 ;\r RES 3,(HL) ; RESET STATUS READY-BIT\r LD A,B ;\r CPL ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET LTUX IN INDICATED MODE OF OPER.\r CALL CLEARY ;\r JP PROEND ;END\r \r ;--------------------------------------------------------------------------\r CASE2: ;FORWIND/REWIND-INDICATION\r LD HL,FLAG1\r RES 3,(HL) ;RESET STATUS READY-BIT\r LD B,A\r LD A,(CODSAV)\r CPL\r AND 9FH\r CP B\r JR Z,C20\r AND 1FH\r CP B ;IF THE INDICATION IS IN ACCORDANCE WITH\r JR NZ,C21 ;THE DESIRED MODE OF OPERATION THEN\r C20: ;BEGIN\r IN A,(PORT1) ;\r CP 0FFH ;\r JP Z,PROEND ; IF PORT1 IS NEUTRALIZED OR\r CP 7FH ; IF EDIT ON THEN SKIP\r JP Z,PROEND ;\r CP 77H ;\r JP Z,PROEND ;\r CP 7BH ;\r JP Z,PROEND ; ELSE\r LD A,0FFH ;\r OUT (PORT1),A ; NEUTRALIZE PORT1\r JP PROEND ;END ELSE\r C21: ;BEGIN\r LD A,B ;\r CPL ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET LTUX IN INDICATED MODE OF OPERATION\r CALL CLEARY ;\r JP PROEND ;END\r \r ;----------------------------------------------------------------------\r CASE3: ;STOP+PLAY/RECORD-INDICATION\r AND 8FH \r LD B,A\r LD A,(CODSAV)\r CPL\r AND 9FH\r CP B ;IF THE INDICATION IS IN ACCORDANCE WITH\r JR NZ,C32 ;THE DESIRED MODE OF OPERATION THEN\r ;BEGIN\r IN A,(PORT1) ;\r CP 0FFH ;\r JR Z,C31 ; IF PORT1 IS NOT NEUTRALIZED YET THEN\r LD A,0FFH ; BEGIN\r OUT (PORT1),A ; NEUTRALIZE PORT1\r LD A,CVAL1.LOW. ;\r LD (COUNT2),A ; SET COUNT2 = CVAL1\r LD A,CVAL2.LOW. ;\r LD (COUNT3),A ; SET COUNT3 = CVAL2\r JP PROEND ; END ELSE\r C31: LD HL,COUNT3 ; BEGIN\r DEC (HL) ; DECREMENT COUNT3\r JP NZ,PROEND ; IF COUNT3 = 0 THEN\r ; BEGIN\r INC (HL) ; INCREMENT COUNT3\r LD HL,ECOND2 ;\r SET 1,(HL) ; SET DEVICE CONTROL ERROR-BIT\r ; END\r ; END\r JP PROEND ;END ELSE\r C32: ;BEGIN\r LD A,B ;\r CPL ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET LTUX IN INDICATED MODE OF OPERATION\r CALL CLEARY ;\r JP PROEND ;END\r \r ;------------------------------------------------------------------------------\r CASE4: ;STOP-INDICATION\r LD B,A\r LD A,(CODSAV)\r CPL\r AND 9FH\r CP B ;IF THE INDICATION IS IN ACCORDANCE WITH\r JR NZ,C42 ;THE DESIRED MODE OF OPERATION THEN\r ;BEGIN\r IN A,(PORT1) ;\r CP 0FFH ;\r JP Z,PROEND ; IF PORT1 IS NOT NEUTRALIZED YET THEN\r LD A,0FFH ; BEGIN\r OUT (PORT1),A ; NEUTRALIZE PORT1\r LD A,(OLDSTAT) ;\r AND 9FH ;\r CP 04H ;\r JR Z,C41 ;\r CP 08H ; IF THE ATR WAS IN A FAST WIND MODE\r JP NZ,PROEND ; BEFORE STOP-COMMAND WAS EXECUTED THEN\r C41: LD A,CVAL3.LOW. ; BEGIN\r LD (COUNT3),A ; SET COUNT3 = CVAL3\r LD A,7FH ;\r CALL OUTPUT ; SET ATR IN EDIT MODE\r JR PROEND ; END\r ; END\r ;END ELSE\r C42: LD A,(CODSAV) ;BEGIN\r CPL ;\r AND 9FH ;\r CP 80H ;\r JR NZ,C43 ; IF LTUX IS IN EDIT MODE THEN\r LD HL,COUNT3 ; BEGIN\r DEC (HL) ; DECREMENT COUNT3\r JR NZ,PROEND ; AND IF COUNT3 = 0 THEN\r INC (HL) ; INCREMENT COUNT3 AGAIN\r JR PROEND ; END ELSE\r C43: LD A,B ; BEGIN\r CPL ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET LTUX IN INDICATED MODE OF OPERATION\r CALL CLEARY ;\r JR PROEND ; END\r ;END\r \r ;-----------------------------------------------------------------------------\r CASE5: ;EDIT-INDICATION\r LD B,A\r LD A,(CODSAV)\r CPL\r AND 9FH\r CP B ;IF THE INDICATION IS IN ACCORDANCE WITH\r JR NZ,C51 ;THE DESIRED MODE OF OPERATION THEN\r ;BEGIN\r LD A,0EFH ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET ATR IN STOP MODE\r LD HL,COUNT3 ;\r DEC (HL) ; DECREMENT COUNT3\r JR NZ,PROEND ; IF COUNT3 = 0 THEN\r LD HL,FLAG1 ;\r SET 3,(HL) ; SET STATUS READY-BIT\r JR PROEND ;END ELSE\r C51: LD HL,FLAG1 ;BEGIN\r RES 3,(HL) ; RESET STATUS READY-BIT\r LD A,0FFH ;\r LD (COMBYT),A ;\r CALL OUTPUT ; SET LTUX IN NEUTRALIZED MODE OF OPERATION\r CALL CLEARY ;\r ;END\r \r ;----------------------------------------------------------------------------\r PROEND: JP PASPRO\r \r ;----------------------------------------------------------------------------\r \r DSEG\r DS 32\r STAC11:\r END\r