โปรแกรมมอนิเตอร์

            ORG 0000H

        DDISPLAY     EQU 2000H

        DTIME           EQU 2010H

        DTIMEDPLAY EQU 2013H

        DTEMP           EQU 2017H

        DSETTEMP     EQU 201AH

        DHUMID         EQU 201DH

        DSETHUMID   EQU 2020H

        DOUTPUT      EQU 2023H

        DASAVED         EQU 2024H

        DFULID            EQU 2026H

        DBUFFER         EQU 2027H

        DBUFFERT       EQU 2028H

        DBT                  EQU 2029H

        DSAVED            EQU 202AH

        PCONTE            EQU F7H

        PCONHU          EQU FBH

        PCONKOP        EQU FFH

        PCONLCD         EQU 03H

        PDTE                 EQU F4H

        PDHU                EQU F8H

        PDKE                 EQU FCH

        PDOP                 EQU FDH

        PDINP                EQU FEH

                 XOR A

                 LD SP,3F00H

                 JP MAIN

                 ORG 0066H ;

                 CALL TIME ; SUBROUTINE TIME FOR NMI

                  RETN ;

              MAIN             XOR A

                  LD IX,DTIME

                   LD (IX+00H),A

                   LD (IX+01H),A

                    LD (IX+02H),A             ;START TIME AT 00:00

                    LD A,9BH ;ALL PORT INPUT

                    OUT (PCONTE),A ;8255(1) TEMP

                    OUT (PCONHU),A ;8255(2) HUMID

                     LD A,80H ;ALL PORT OUTPUT

                     OUT (PCONLCD),A ;8255 (Z80) LCD

                     LD A,91H ; Pa Pcl = INPUT

                     Pb Pch = OUTPUT

                     OUT (PCONKOP),A ;8255(3) Pa = KEY

                      Pb = OUTPUT                      ;Pcl = CHACKPUMP

                      Pch = RS232

                      LD IX,DSETTEMP

                      LD (IX+00H),30H

                      LD (IX+01H),35H

                      LD (IX+02H),32H ;DATASETTEMP IS 25.0

                      LD IX,DSETHUMID

                      LD (IX+00H),30H

                      LD (IX+01H),30H

                      LD (IX+02H),35H ;DATASETHUMID IS 50.0

                      LD IX,DSAVED

                      LD (IX+00H),30H

                      LD (IX+01H),31H ;START DATE AT 01

                      LD IX,DOUTPUT

                      LD (IX+00H),20H ;NO OUTPUT

                      LD IX,DBUFFERT

                      LD (IX+00H),20H ;NO POINT

                      LD IX,DFULLD

                      LD (IX+00H),00H ;DATA NO FULL

                      LD IX,DASAVED

                      LD (IX+00H),29H

                      LD (IX+01H),20H ;SAVE FIRST DATA AT 2029H

                      LD IX,DBT

                      LD (IX+00H),00h ;START COUNT TIME

                      LD HL,TABCLEAR

                      LD A,O7H

                      CALL DISPLAY ;DISPLAY I'M WORKING!!!

                      MAIN1 CALL SCANA

                      CP 01H

                      JP Z,SET

                      CP 02H

                      JP Z,FNTIME

                      FP MAIN1

        FNTIME                   CALL CHANGETIME

                      LD HL,TABTIME

                      LD IY,DTIMEDPLAY

                      LD A,00H

                      CALL DISPLAY

        SCANB                    CALL SCAN1

                       JP NC,SCANB

                       CALL DELAY

        SCANBB                  CALL SCAN1

                       PUSH AF

        CALL                        CHANGETIME

                        LD HL,TABTIME

                        LD IY,DTIMEDPLAY

                        LD A,00H

                        CALL DISPLAY

                        CALL CHACK5M

                        CALL OUT

                         POP AF

                         JP C,SCANBB

                         CALL DELAY

                         CALL SCAN1

                         CP 01H

                         JP Z,SETCLEAR

                         CP 02H

                         JP Z,FNTEMP

                         JP SCANB

        FNTEMP                     LD HL,TABTEMP

                         LD IY,DTEMP

                         LD A,02H

                         CALL DISPLAY

        SCANC                      CALL SCAN1

                         JP NC,SCANC

                         CALL DELAY

        SCANCC                    CALL SCAN1

                         PUSH AF

                         LD HL,TABTEMP

                         LD IY,DTEMP

                         LD A,02H

                         CALL DISPLAY

                         CALL CHACK5M

                         CALL OUT

                         POP AF

                         JP C,SCANCC

                         CALL DELAY

                         CALL SCAN1

                         CP 01H

                         JP Z,SETCLEAR

                          CP 02H

                          JP Z,FNHUMID

                         JP SCANC

                         FNHUMID LD HL,TABHUMID

                        LD IY,DHUMID

                        LD A,04H

                        CALL DISPLAY

        SCAND                     CALL SCAN1

                        JP NC,SCAND

                        CALL DELAY

                 SCANDD                  CALL SCAN1

                        PUSH AF

                        LD HL,TABHUMID

                        LD IY,DHUMID

                        LD A,04H

                        CALL DISPLAY

                        CALL INTH

                        CALL CHACK5M

                        CALL OUT

                        POP AF

                        JP C,SCANDD

                        CALL DELAY

                        CALL SCAN1

                        CP 01H

                        JP Z,SETCLEAR

                       CP 02H

                       JP Z,FNSAVED

                       JP SCAND

        FNSAVED                 LD HL,TABSAVED

                       LD IY,DSAVED

                       LD A,01H

                       CALL DISPLAY

        SCANE                    PUSH IY

                       CALL SCANA

                      POP IY

                      CP 01H

                      JP Z,SETCLEAR

                      CP 02H

                      JP Z,FNTIME

                      CP 03H

                      JP Z,SCANIE

                      JP SCANDE

           SCAND                LD BC,000CH

                      ADD IY,BC

                      LD (DBUFFER),IY

                      LD HL,(DBUFFER)

                      LD A,L

                      CP 30H

                      JP Z,IE1

                      IE2 LD HL,TABSAVED

                      LD A,01H

                      CALL DISPLAY

                       JP SCANE

                       IE1 LD A,H

                      CP 3BH

                      JP NZ,IE2

                       LD IY,DSAVED

                       JP IE2

        SCANDE                  LS BC,FFF4H

                      ADD IY,BC

                      LD (DBUFFER),IY

                      LD HL,(DBUFFER)

                      LD A,L

                      CP 24H

                      JP A,IE3

                      IE3 LD A,H

                      CP 20H

                      JP NZ,IE2

                      LD IY,3B23H

                      JP IE2

        SETCLEAR              LD HL,TABCLEAR

                     LD A,07H

                     CALL DISPLAY

                     JP MAIN1

        SET                       LD HL,TABSET

                    LD A,06H

                   CALL DISPLAY

        SETA                    CALL SCANA

                    CP 01H

                   JP Z,SETCLEAR

                   CP 02H

                   JP Z,SETTIME

                   FP SETA

        SETTIME              CALL CHANGETIME ;SET HOUR

                   LD HL,TABSETTIME

                   LD IY,TIMEDPLAY

                   LD A,0AH

                  CALL DISPLAY

        SETB                   CALL SCANA

                  CP 01H

                  JP Z,SETMINUS

                  CP 02H

                  JP Z,SETTEMP

                  CP 03H

                  JP Z,INCHOUR

                  JP DECHOUR

        SETMINUS         CALL CHANGETIME

                  LD HL,TABSETTIME

                  LD IY,DTIMEDPLAY

                  LD A,0AH

                  CALL DISPLAY

                  CALL SCANA

                  CP 01H

                  JP Z,SETTIME ;SET HOUR

                  CP 02H

                  JR Z,SETTEMP

                  CP 03H

                  JP Z,INCMINUS

                  JP DECMINUS

                  INCHOUR LD IX,DTIME

                  LD A,(IX,DTIME) ;HOUR(00H-24H)

                  INC A

                  DAA

                  CP 24H

                  JP NZ,IHOUR

                  LD A,00H

                  IHOUR LD (IX+02H),A

                  JP SETTIME ;SETHOUR

                  INCMINUS LD IX,DTIME

                  LD A,(IX+01H) ;MINUS(00H-59H)

                  INC A

                  DAA

                  CP 60H

                  JP NZ,IMINUS

                  LD A,00H

                  IMINUS LD (IX+01H),A

                  JP SETMINUS

        DECHOUR          LD IX,DTIME

                  LD A,(IX+02H) ;HOUR(00H-24H)

                  DEC A

                  DAA

                  CP 99H

                  JP NZ,DHOUR

                 LD A,23H

                 DHOUR LD (IX+02H),A

                 JP SETTIME

        DECMINUS        LD IX,DTIME

                XOR A

                LD A,(IX+01H)

                DEC A

                DAA

                CP 99H

                JP NZ,DMINUS

                XOR A

                LD A,59H

                DMINUS LD (IX,01H),A

                JP SETMINUS

        SETTEMP          LD HL,TABSETTEMP ;SETHITEMP

                LD IY,DSETTEMP :CAN SET BETWEEN 10.0-49.9C

                LD A,03H

                CALL DISPLAY

                CALL SCANA

                CP 01H

                JP Z,SETMIDTEMP

                CP 02H

                JP Z,SETHUMID

                CP 03H

                JP Z,INCHITEMP

                JP DECHITEMP

          SETMIDTEMP   LD HL,TABSETTEMP

                 LD IY,DSETTEMP

                 LD A,03H

                 CALL DISPLAY

                 CALL SCANA

                 CP 01H

                 JP Z,SETLOTEMP

                 CP 02H

                 JP Z,SETHUMID

                 CP 03H

                 JP Z,INCMIDTEMP

                 JP DECMIDTEMP

        SETMIDTEMP     LD HL,TABSETTEMP

                 LD IY,DSETTEMP

                 LD A,03H

                CALL DISPLAY

                CALL SCANA

                 CP 01H

                 JP Z,SETLOTEMP

                CP 02H

                 JP Z,SETHUMID

                 CP 03H

                 JP Z,INCMIDTEMP

                 JP DECMIDTEMP

          SETLOTEMP      LD HL,TABSETTEMP

                 LD IY,DSETTEMP

                 LD A,03H

                 CALL DISPLAY

                 CALL SCANA

                 CP 01H

                 JP Z,SETTEMP

                 CP 02H

                 JP Z,SETHUMID

                 CP 03H

                 JP Z,INCLOTEMP

                 JP DECLOTEMP

        INCHITEMP        LD IX,DSETTEMP

                 LD A,(IX+02H) ;HI TEMP (31H-34H)

                INC A

                CP 35H

                JP NZ,IHTE

                 LD A,31H

                IHTE LD (IX+02H),A

                JP SETTEMP

        INCMIDTEMP    LD IX,DSETTEMP ;MID TEMP (30H-39H)

                LD A,(IX+01H)

                INC A

                CP 3AH

                JP NZ,IMTE

                 LD A,30H

         IMTE                 LD (IX+01H),A

                 JP SETMIDTEMP

        INCLOTEMP      LD IX,DSETTEMP

                LD A,(IX+00H)

                INC A

                CP 3AH

                 JP NZ,ILTE

                 LD A,30H

        ILTE                   LD (IX+00H),A

                 JP SETLOTEMP

        DECHITEMP       LD IX,DSETTEMP

                 LD A,(IX+02H)

                 DEC A

                 CP 30H

                 JP NZ,DHTE

                 LD A,34H

        DHTE                 LD (IX+02H),A

                 JP SETTEMP

        DECMIDTEMP     LD IX,DSETTEMP

                 LD A,(IX+01H)

                 DEC A

                 CP 2FH

                 JP NZ,DMTE

                 LD A,39H

        DMTE                 LD (IX+01H),A

                 JP SETMIDTEMP

        DECLOTEMP     LD IX,DSETTEMP

                LD A,(IX+00H)

                DEC A

                CP 2FH

                JP NZ,DLTE

                LD A,39H

        DLTE                LD (IX+00H),A

                JP SETLOTEMP

        SETHUMID        LD HL,TABSETHUMID ;SETHIHUMID

                LD IY,DSETHUMID ;CAN SET BETWEEN 00.0-99.9%

                LD A,05H

                CALL DISPLAY

        SETD                CALL SCANA

                  CP 01H

                 JP Z,SETMHUMID

                 CP 02H

                 JP Z,SETCLEAR

                 CP 03H

                 JP Z,INCHIHUMID

                 JP DECHIHUMID

        SETMHUMID       LD HL,TABSETHUMID

                  LD IY,DSETHUMID

                  LD A,05H

                  CALL DISPLAY

                  CALL SCANA

                  CP 01H

                  JP Z,SETLOHUMID

                  CP 02H

                  JP Z,SETCLEAR

                  CP 03H

                  JP Z,INCMHUMID

                  JP DECMHUMID

        SETLOHUMID     LD HL,TABSETHUMID

                  LD IY,DSETHUMID

                  LD A,05H

                  CALL DISPLAY

                  CALL SCANA

                  CP 01H

                  JP Z,SETHUMID

                  CP 02H

                  JP Z,SETCLEAR

                  CP 03H

                  JP Z,INCLOHUMID

                  JP DECLOHUMID

         INCHIHUMID     LD IX,DSETHUMID

                  LD A,(IX+02H)

                  INC A

                  DAA

                  CP 40H

                  JP NZ,IHHU

                  LD A,30H

                  IHHU LD (IX+02H),A

                  JP SETHUMID

        INCMHUMID       LD IX,DSETHUMID

                 LD A,(IX+01H)

                 INC A

                 DAA

                 CP 40H

                 JP NZ,IMHU

                 LD A,30H

                 IMHU LD (IX+01H),A

                 JP SETMHUMID

        INCLOHUMID    LD IX,DSETHUMID

                 LD A,(IX+00H)

                 INC A

                 DAA

                 CP 40H

                 JP NZ,ILHU

                 LD A,30H

        ILHU                  LD (IX+00H),A

                 JP SETLOHUMID

        DECHIHUMID    LD IX,DSETHUMID

                 LD A,(IX+02H)

                DEC A

                DAA

                CP 29H

                JP NZ,DHHU

                LD A,39H

        DHHU               LD (IX+02H),A

                JP SETHUMID

        DECMHUMID    LD IX,DSETHUMID

                LD A,(IX+01H)

                DEC A

                DAA

                CP 29H

                JP NZ,DMHU

                LD A,39H

                DMHU LD (IX+01H),A

                JP SETMHUMID

                DECLOHUMID LD IX,DSETHUMID

                LD A,(IX+00H)

                DEC A

                DAA

                CP 29H

                JP NZ,DLHU

                LD A,39H

                DLHU LD (IX+00H),A

                JP SETLOHUMID

        TABTIME DB 20H,54H,69H,6DH

            DB 65H,20H,69H,73H

            DB 20H,20H,FFH,FFH

            DB 3AH,FFH,FFH,20H

        TABSETTIME DB 53H,45H,54H,20H

            DB 54H,69H,6DH,65H

            DB 20H,3DH,20H,FFH

            DB FFH,3AH,FFH,FFH

        TABTEMP DB 20H,54H,65H,6DH

            DB 70H,20H,69H,73H

            DB 20H,FFH,FFH,2EH

            DB FFH,DFH,63H,20H

        TABSETTEMP DB 53H,45H,54H,20H

            DB 54H,65H,6DH,70H

            DB 20H,3DH,FFH,FFH

            DB 2EH,FFH,DFH,63H

        TABHUMID DB 20H,48H,75H,6DH

            DB 69H,64H,20H,69H

            DB 73H,20H,FFH,FFH

            DB 2EH,FFH,25H,20H

        TABSAVED DB 30H,FFH,20H,FFH

            DB FFH,3AH,FFH,FFH

            DB 20H,FFH,FFH,FFH

            DB 20H,FFH,FFH,FFH,

        TABSETHUMID DB 53H,45H,54H,20H

            DB 48H,75H,6DH,69H

            DB 64H,20H,3DH,FFH

            DB FFH,2EH,FFH,25H

        TABSET DB 20H,20H,20H,53H

            DB 45H,54H,20H,20H

            DB 20H,20H,20H,20H

            DB 20H,20H,20H,20H

        TABCLEAR DB 20H,49H,27H,6DH

            DB 20H,77H,6FH,72H

            DB 6BH,69H,6EH,67H

            DB 21H,21H,21H,20H

        TABNUMBER DB 40H,79H,24H,30H,19H

            DB 12H,02H,78H,00H,10H

            ;SUBROUTINE

            TIME PUSH AF

            PUSH BC

            PUSH DE

            PUSH HL

            PUSH IX

            PUSH IY

            LD A,(DBT)

            INC A

            CP 05H

            LD (DBT),A

            JP NZ,RETURN

            LD A,00H

            LD (DBT),A

            LD A,(DBUFFERT)

            CP 20H

            JP NZ,NPOINT

            LD A,3AH

            LD (DBUFFERT),A

            JP POINT

        NPOINT        LD A,20H

            LD (DBUFFERT),A

            LD IX,DTIME

            LD A,(IX+00H)

            INC A

            DAA

            CP 60H

            JP NZ,SEC

            LD (IX+00H),00H

            LD A,(IX+01H)

            INC A

            DAA

            CP 60H

            JP NZ,MINUS

            LD (IX+01H),00H

            LD A,(IX+02H)

            INC A

            DAA

            CP 24H

            JP NZ,HOUR

            LD (IX+02H),00H

        RETURN       POP IY

            POP IX

            POP HL

            POP DE

            POP BC

            POP AF

            RET

        SET              LD (IX+00H),A

            JP RETURN

        MINUS          LD (IX+01H),A

            JP RETURN

        HOUR           LD (IX+02H),A

            JP RETURN

        CHANGETIME LD IX,DTIME

            LD IY,DTIMEDPLAY

            LD A,(IX+01H)

            CALL X

            LD (IY+00H),L

            LD (IY+01H),H

            LD A,(IX+02H)

            CALL X

            LD (IY+02H),L

            LD (IY+03H),H

            RET

            X LD H,A

            AND OFH

            OR 30H

            LD L,A

            LD A,H

            SRL A

            SRL A

            SRL A

            SRL A

            AND OFH

            OR 30H

            LD H,A

            RET

        INTH             LD IX,DTEMP

            LD C,PDTE

            CALL IN

            LD IX,DHUMID

            LD C,PDHU

            CALL IN

            RET

            IN IN D, ( C )

            INC C

            IN L, ( C )

            INC C

            IN H, ( C )

            LD A,D

            CALL CHANGETH

            LD (IX+00H),A

            LD A,L

            CALL CHANGETH

            LD (IX+01H),A

            LD A,H

            CALL CHANGETH

            LD (IX+02H),A

            RET

        CHANGETH LD IY,TABNUMBER

            LD E,00H

        LPX               LD D,(IY+00H)

            CP D

            PUSH AF

            INC IY

            INC E

            POP AF

            JR NZ,LPX

            LD A,2FH

            ADD A,E

            RET

        OUT             LD C,PDINP

            IN A, ( C )

            SRL A

            JP C,OUT1

            JP NOOP

        OUT1           LD IX,DTEMP

            LD IY,DSETTEMP

            LD A,(IX+02H)

            LD H,(IY+02H)

            CP H

            JP Z,OUT2

            JP C,OUT3

            JP NC,OUT4

        OUT2           LD A,(IX+01H)

            LD H,(IY+01H)

            CP H

            JP Z,OUT5

            JP C,OUT3

            JP NC,OUT4

        OUT5            LD A,(IX+00H)

            LD H,(IY+00H)

            CP H

            JP NC,OUT4

        OUT3            LD A,(DOUTPUT)

            RES 0,A

            OUT (PDOP),A

        OUTH           LD IX,DHUMID

            LD IY,DSETHUMID

            LD A,(IX+02H)

            LD H,(IY+02H)

            CP H

            JP Z,OUT6

            JP C,OUT7

            JP NC,OUT8

        OUT6           LD A,(IX+01H)

            LD H,(IY+01H)

            CP H

            JP Z,OUT9

            JP C,OUT7

            JP NC,OUT8

        OUT9           LD A,(IX+00H)

            LD H,(IY+00H)

            CP H

            JP NC,OUT8

        OUT7           LD A,(DOUTPUT)

            SET 1,A

            OUT (PDOP),A

            RET

        OUT8           LD A,(DOUTPUT)

            RES 1,A

            OUT (PDOP),A

            RET

        OUT4           LD A,(DOUTPUT)

            SET 0,A

            OUT (PDOP),A

            JP OUTH

        NOOP           LD A,(DOUTPUT)

            AND 11111100B

            OUT (PDOP),A

            RET

        DISPLAY       LD DE,DDISPLAY                ;PREDISPLAY

            LD BC,0010H

            LDIR

            LD IX,DDISPLAY

            CP 00H

            JP Z,DTID

            CP 01H

            JR Z,DSAD

            CP 02H

            JP Z,DTE

            CP 03H

            JP Z,DSTE

            CP 04H

            JP Z,DHU

            CP 05H

            JP Z,DSHU

            CP 0AH

            JP Z,DSTID

            JP DPLAY

        DSHU           LD A,(IY+00H)

            LD (IX+0EH),A

            LD A,(IY+01H)

            LD (IX+0CH),A

            LD A,(IY+02)

            LD (IX+0BH),A

            JP DPLAY

        DHU             LD A,(IY+00H)

            LD (IX+0DH),A

            LD A,(IY+01H)

            LD (IX+0BH),A

            LD A,(IY+02H)

            LD (IX+0AH),A

            JP DPLAY

        DSTE            LD A,(IY+00H)

            LD (IX+0DH),A

            LD A,(IY+01H)

            LD (IX+0BH),A

            LD A,(IY+02H)

            LD (I+0AH),A

            JP DPLAY

        DTE              LD A,(IY+00H)

            LD (IX+0CH),A

            LD A,(IY+01H)

            LD (IX+0AH),A

            LD A,(IY+02H)

            LD (IX+09H),A

            JP DPLAY

        DSAD           LD A,(IY+00H)

            LD (IX+01H),A

            LD A,(IY+01H)

            LD (IX+07H),A

            LD A,(IY+02H)

            LD (IX+06H),A

            LD A,(IY+03H)

            LD (IX+04H),A

            LD A,(IY+04H)

            LD (IX+03H),A

            LD A,(IY+05H)

            LD (IX+0BH),A

            LD A,(IY+06H)

            LD (IX-0AH),A

            LD A,(IY+07H)

            LD (IX+09H),A

            LD A,(IY+08H)

            LD (IX+0FH),A

            LD A,(IY+09H)

            LD (IX+0EH),A

            LD A,(IY+0AH)

            LD (IX+0DH),A

            JP DPLAY

        DTID            LD A,(DBUFFERT)

            LD (IX+0CH),A

            LD A,(IY+00H)

            LD (IX+0EH),A

            LD A,(IY+01H)

            LD (IX+0DH),A

            LD A,(IY+02H)

            LD (IX+0BH),A

            LD A,(IY+03H)

            LD (IX+0AH),A

            JP DPLAY

        DSTID           LD A,(IY+00H)

            LD (IX+0FH),A

            LD A,(IY+01H)

            LD (IX+0EH),A

            LD A,(IY+02H)

            LD (IX+0CH),A

            LD A,(IY+03H)

            LD (IX+0BH),A

        DPLAY          LD HL,DDISPLAY ;DISPLAY

            CALL INITLCD

            LD A,01H

            CALL WRLINE

            LD A,02H

            CALL WRLINE

            RET

        INITLCD        LD A,00H

            OUT (02H),A                 ;Pc = Psign

            LD A,38H

            OUT (00H),A                  ;Pa = Pdata

            LD A,00H

            CALL EPLUSE

            CALL DELAY

            LD A,0CH

            OUT (00H),A

            LD A,00H

            CALL EPLUSE

            LD A,06H

            OUT (00H),A

            LD A,00H

            CALL EPLUSE

            RET

        WRLINE        CP 01H

            JP Z,WRL1

            CP 02H

            JP Z,WRL2

            RET

        WRL1           LD A,00H

            CALL GOTO

            JP WRLM

        WRL2          LD A,40H

            CALL GOTO

        WRLM          LD B,08H

        WRL             LD D,(HL)

            PUSH BC

            CALL WRBYTE

            POP BC

            INC HL

            DJNZ WRL

            RET

        EPLUSE        SET 2,A

            OUT (02H),A

            LD B,00H

            EP1 DJNZ EP1

            REST 2,A

            OUT (02H),A

            RET

        GOTO          PUSH BC

            SET 7,A

            OUT (00H),A

            XOR A

            OUT (02H),A

            CALL EPLUSE

            POP BC

            RET

        WRBUYTE     LD A,01H

            OUT (02H),A

            LD A,D

            OUT (00H),A

            LD A,01H

            CALL EPLUSE

            RET

        DELAY          LD B,00H

            DEY NOP

            NOP

            DJNZ DEY

            RET

        SCANA          CALL SCAN1

            JP NC,SCANA

            CALL DELAY

        SCANAA        CALL SCAN1

            PUSH AF

            CALL INTH

            CALL CHACK5M

            CALL OUT

            POP AF

            JP C,SCANA

            CALL DELAY

            CALL SCAN1

            RET

        SCAN1          LD C,PDKE

            IN A, ( C )

            LD B,04H

            LD D,00H

            LPSC RRC A

            PUSH AF

            INC D

            POP AF

            JP NC,LPSC1

            DJNZ LPSC

        LPSC1          LD A,D

            RET

        CHACK5M     LD IX,DFULLD

            LD A,(IX+00H)

            CP 00H

            JP Z,CHACK5M1

            RET

        CHACK5M1  LD IX,DTIME

            LD IY,(DASAVED)

            LD A,(IX+01H)

            CP 00H

            JP Z,CHX

        CHX1           LD A,(IX+01H)

            AND 0FH

            CP 00H

            JP Z,CH5M

            RET

        OCH5M         LD A,(IY+00H)

            LD (IY+0BH),A

            LD HL,(DASAVED)

            LD BC,0BH

            ADD HL,BC

            LD (DASAVED),HL

            RET

        CHX             LD A,(IX+02H)

            JP CHX1

        CH5M           LD IX,DTIMEDPLAY ;SAVE TIME

            LD A,(IX+00H)

            LD (IY+01H),A

            LD A,(IX+01H)

            LD (IY+02H),A

            LD A,(IX+02H)

            LD (IY+03H),A

            LD A,(IX+03H)

            LD (IY+04H),A

            LD IX,DTEMP                  ;SAVE TEMP

            LD A,(IX+00H)

            LD (IY+05H),A

            LD A,(IX+01H)

            LD (IY+06H),A

            LD A,(IX+02H)

            LD (IY+07H),A

            LD IX,DHUMID                ;SAVE HUMID

            LD A,(IX+00H)

            LD (IY+08H),A

            LD A,(IX+01H)

            LD (IY+09H),A

            LD A,(IX+02H)

            LD (IY+0AH),A

            JP OCH5M

        FULLD LD A,01H

            LD (DFULLD),A

            RET

            END