|
@@ -0,0 +1,678 @@
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-1
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ ;------------ STACK ---------------------------
|
|
|
|
+ -----
|
|
|
|
+ ;
|
|
|
|
+ 0000 stack segment para stack 'stack'
|
|
|
|
+ 0000 0100 [ db 256 dup ('stack ')
|
|
|
|
+ 73 74 61 63
|
|
|
|
+ 6B 20 20 20
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ 0800 stack ends
|
|
|
|
+ ;
|
|
|
|
+ ;----------------------------------------------
|
|
|
|
+ -------
|
|
|
|
+ ;
|
|
|
|
+ ;
|
|
|
|
+ ;------------ CODE ----------------------------
|
|
|
|
+ ------
|
|
|
|
+ ;
|
|
|
|
+ 0000 cseg segment para public 'code'
|
|
|
|
+ assume cs:cseg,ds:cseg,es:cseg,
|
|
|
|
+ ss:stack
|
|
|
|
+ ;
|
|
|
|
+ ;---------- INITINT ---------------------------
|
|
|
|
+ -----
|
|
|
|
+ ;
|
|
|
|
+ 0000 intatco proc far
|
|
|
|
+ 0000 FA cli
|
|
|
|
+ 0001 1E push ds
|
|
|
|
+ 0002 06 push es
|
|
|
|
+ 0003 8C CA mov dx,cs
|
|
|
|
+ 0005 8E C2 mov es,dx
|
|
|
|
+ 0007 8E DA mov ds,dx
|
|
|
|
+ 0009 8D 16 003A R lea dx,int
|
|
|
|
+ 000D B8 2571 mov ax,2571h
|
|
|
|
+ 0010 CD 21 int 21h
|
|
|
|
+ 0012 E4 A1 in al,0A1h
|
|
|
|
+ 0014 24 FD and al,0FDh
|
|
|
|
+ 0016 E6 A1 out 0A1h,al
|
|
|
|
+ 0018 BA 0300 mov dx,0300h
|
|
|
|
+ 001B B4 0C mov ah,0Ch
|
|
|
|
+ 001D E8 0266 R call get
|
|
|
|
+ 0020 C7 06 02D3 R B800 mov disptype,0B800h
|
|
|
|
+ 0026 8D 06 02D5 R lea ax,last_adr
|
|
|
|
+ 002A 25 FFF0 and ax,0FFF0h
|
|
|
|
+ 002D 05 0010 add ax,0010h
|
|
|
|
+ 0030 8B D0 mov dx,ax
|
|
|
|
+ 0032 B8 3100 mov ax,3100h
|
|
|
|
+ 0035 07 pop es
|
|
|
|
+ 0036 1F pop ds
|
|
|
|
+ 0037 FB sti
|
|
|
|
+ 0038 CD 21 int 21h
|
|
|
|
+ 003A intatco endp
|
|
|
|
+ ;
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-2
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ ;---------- INT -------------------------------
|
|
|
|
+ ---------
|
|
|
|
+ ;
|
|
|
|
+ 003A int proc far
|
|
|
|
+ 003A FA cli
|
|
|
|
+ 003B 50 push ax
|
|
|
|
+ 003C 52 push dx
|
|
|
|
+ 003D 51 more: push cx
|
|
|
|
+ 003E 53 push bx
|
|
|
|
+ 003F 57 push di
|
|
|
|
+ 0040 56 push si
|
|
|
|
+ 0041 55 push bp
|
|
|
|
+ 0042 1E push ds
|
|
|
|
+ 0043 06 push es
|
|
|
|
+ 0044 8C C8 mov ax,cs
|
|
|
|
+ 0046 8E D8 mov ds,ax
|
|
|
|
+ 0048 8E C0 mov es,ax
|
|
|
|
+ 004A BD 0000 mov bp,0
|
|
|
|
+ 004D BA 0300 mov dx,0300h
|
|
|
|
+ 0050 E8 006E R call intvekt
|
|
|
|
+ 0053 B0 62 mov al,62h
|
|
|
|
+ 0055 E6 20 out 20h,al
|
|
|
|
+ 0057 B0 61 mov al,61h
|
|
|
|
+ 0059 E6 A0 out 0A0h,al
|
|
|
|
+ 005B 07 pop es
|
|
|
|
+ 005C 1F pop ds
|
|
|
|
+ 005D 5D pop bp
|
|
|
|
+ 005E 5E pop si
|
|
|
|
+ 005F 5F pop di
|
|
|
|
+ 0060 5B pop bx
|
|
|
|
+ 0061 59 pop cx
|
|
|
|
+ 0062 BA 0305 mov dx,0305h
|
|
|
|
+ 0065 EC in al,(dx)
|
|
|
|
+ 0066 34 FF xor al,0FFh
|
|
|
|
+ 0068 75 D3 jnz more
|
|
|
|
+ 006A 5A pop dx
|
|
|
|
+ 006B 58 pop ax
|
|
|
|
+ 006C FB sti
|
|
|
|
+ 006D CF iret
|
|
|
|
+ 006E int endp
|
|
|
|
+ ;
|
|
|
|
+ C include intvekt.asm
|
|
|
|
+ C ;---------- INTVEKT ---------------------------
|
|
|
|
+ -----------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; AX,BX,CX changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ -----------------
|
|
|
|
+ C ;
|
|
|
|
+ 006E C intvekt proc near
|
|
|
|
+ 006E 52 C push dx
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-3
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 006F 83 C2 05 C add dx,05h
|
|
|
|
+ 0072 EC C in al,(dx)
|
|
|
|
+ 0073 5A C pop dx
|
|
|
|
+ 0074 8A C8 C mov cl,al
|
|
|
|
+ 0076 B5 05 C mov ch,05h
|
|
|
|
+ 0078 B8 0008 C mov ax,0008h
|
|
|
|
+ 007B 8D 1E 009B R C lea bx,inttable
|
|
|
|
+ 007F 50 C test_bit: push ax
|
|
|
|
+ 0080 53 C push bx
|
|
|
|
+ 0081 51 C push cx
|
|
|
|
+ 0082 52 C push dx
|
|
|
|
+ 0083 F6 C1 01 C test cl,01h
|
|
|
|
+ 0086 75 08 C jnz nextint
|
|
|
|
+ 0088 F6 ED C imul ch
|
|
|
|
+ 008A 2C 05 C sub al,05h
|
|
|
|
+ 008C 03 D8 C add bx,ax
|
|
|
|
+ 008E FF E3 C jmp bx
|
|
|
|
+ 0090 5A C nextint: pop dx
|
|
|
|
+ 0091 59 C pop cx
|
|
|
|
+ 0092 5B C pop bx
|
|
|
|
+ 0093 58 C pop ax
|
|
|
|
+ 0094 D0 E9 C shr cl,1
|
|
|
|
+ 0096 FE C8 C dec al
|
|
|
|
+ 0098 75 E5 C jnz test_bit
|
|
|
|
+ 009A C3 C ret
|
|
|
|
+ 009B C intvekt endp
|
|
|
|
+ C include inttable.asm
|
|
|
|
+ C ;---------- INTTABLE --------------------------
|
|
|
|
+ ------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; Interrupt routin call table for 'intvekt'
|
|
|
|
+ C ;
|
|
|
|
+ C ; No registers changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ------------
|
|
|
|
+ C ;
|
|
|
|
+ 009B C inttable proc near
|
|
|
|
+ C ;
|
|
|
|
+ 009B E8 019C R C bit_7: call resin
|
|
|
|
+ 009E EB F0 C jmp nextint
|
|
|
|
+ 00A0 E8 01CE R C bit_6: call dbint
|
|
|
|
+ 00A3 EB EB C jmp nextint
|
|
|
|
+ 00A5 E8 0210 R C bit_5: call nolegint
|
|
|
|
+ 00A8 EB E6 C jmp nextint
|
|
|
|
+ 00AA E8 0210 R C bit_4: call nolegint
|
|
|
|
+ 00AD EB E1 C jmp nextint
|
|
|
|
+ 00AF E8 0210 R C bit_3: call nolegint
|
|
|
|
+ 00B2 EB DC C jmp nextint
|
|
|
|
+ 00B4 E8 0210 R C bit_2: call nolegint
|
|
|
|
+ 00B7 EB D7 C jmp nextint
|
|
|
|
+ 00B9 E8 0210 R C bit_1: call nolegint
|
|
|
|
+ 00BC EB D2 C jmp nextint
|
|
|
|
+ 00BE E8 00C3 R C bit_0: call clivekt
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-4
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 00C1 EB CD C jmp nextint
|
|
|
|
+ C ;
|
|
|
|
+ 00C3 C inttable endp
|
|
|
|
+ C include clivekt.asm
|
|
|
|
+ C ;--------- CLIVEKT ----------------------------
|
|
|
|
+ ---------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; Interrupt routine call select for clock inte
|
|
|
|
+ rrupts
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ---------
|
|
|
|
+ C ;
|
|
|
|
+ 00C3 C clivekt proc near
|
|
|
|
+ 00C3 B4 0B C mov ah,0Bh
|
|
|
|
+ 00C5 E8 0266 R C call get
|
|
|
|
+ 00C8 8A C1 C mov al,cl
|
|
|
|
+ 00CA 0C 8F C or al,8Fh
|
|
|
|
+ 00CC 50 C push ax
|
|
|
|
+ 00CD B4 0C C mov ah,0Ch
|
|
|
|
+ 00CF E8 0266 R C call get
|
|
|
|
+ 00D2 58 C pop ax
|
|
|
|
+ 00D3 22 C8 C and cl,al
|
|
|
|
+ 00D5 8B D9 C mov bx,cx
|
|
|
|
+ 00D7 F6 C1 80 C IRQF: test cl,80h
|
|
|
|
+ 00DA 74 1C C jz exit
|
|
|
|
+ 00DC F6 C1 40 C PF: test cl,40h
|
|
|
|
+ 00DF 74 05 C jz AF
|
|
|
|
+ 00E1 E8 012B R C call period
|
|
|
|
+ 00E4 8B CB C mov cx,bx
|
|
|
|
+ 00E6 F6 C1 20 C AF: test cl,20h
|
|
|
|
+ 00E9 74 05 C jz UF
|
|
|
|
+ 00EB E8 00FB R C call alarm
|
|
|
|
+ 00EE 8B CB C mov cx,bx
|
|
|
|
+ 00F0 F6 C1 10 C UF: test cl,10h
|
|
|
|
+ 00F3 74 03 C jz exit
|
|
|
|
+ 00F5 E8 0144 R C call clockint
|
|
|
|
+ 00F8 8B CB C exit: mov cx,bx
|
|
|
|
+ 00FA C3 C ret
|
|
|
|
+ 00FB C clivekt endp
|
|
|
|
+ C include alarm.asm
|
|
|
|
+ C ;---------- ALARM -----------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; Routine for alarminterrupt from clock
|
|
|
|
+ C ;
|
|
|
|
+ C ; CX,DI,SI changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ C ;
|
|
|
|
+ 00FB C alarm proc near
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-5
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 00FB 8D 36 0121 R C lea si,ala_str
|
|
|
|
+ 00FF BF 0136 C mov di,310
|
|
|
|
+ 0102 B9 000A C mov cx,10
|
|
|
|
+ 0105 E8 0258 R C call dispint
|
|
|
|
+ 0108 50 C push ax
|
|
|
|
+ 0109 E4 61 C in al,61h
|
|
|
|
+ 010B 0C 03 C or al,03h
|
|
|
|
+ 010D E6 61 C out 61h,al
|
|
|
|
+ 010F 50 C push ax
|
|
|
|
+ 0110 B8 2000 C mov ax,2000h
|
|
|
|
+ 0113 50 C loopa: push ax
|
|
|
|
+ 0114 58 C pop ax
|
|
|
|
+ 0115 50 C push ax
|
|
|
|
+ 0116 58 C pop ax
|
|
|
|
+ 0117 48 C dec ax
|
|
|
|
+ 0118 75 F9 C jnz loopa
|
|
|
|
+ 011A 58 C pop ax
|
|
|
|
+ 011B 24 FC C and al,0FCh
|
|
|
|
+ 011D E6 61 C out 61h,al
|
|
|
|
+ 011F 58 C pop ax
|
|
|
|
+ 0120 C3 C ret
|
|
|
|
+ C ;
|
|
|
|
+ 0121 41 0F 4C 0F 41 0F C ala_str: db 'ALARM'
|
|
|
|
+ 52 0F 4D 0F C
|
|
|
|
+ C ;
|
|
|
|
+ 012B C alarm endp
|
|
|
|
+ C include period.asm
|
|
|
|
+ C ;---------- PERIOD ----------------------------
|
|
|
|
+ ----------
|
|
|
|
+ C ;
|
|
|
|
+ C ; Interrupt routine for periodic interrupt fro
|
|
|
|
+ m clock
|
|
|
|
+ C ;
|
|
|
|
+ C ; No registers changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ----------
|
|
|
|
+ C ;
|
|
|
|
+ 012B C period proc near
|
|
|
|
+ 012B 50 C push ax
|
|
|
|
+ 012C E4 61 C in al,61h
|
|
|
|
+ 012E 0C 03 C or al,03h
|
|
|
|
+ 0130 E6 61 C out 61h,al
|
|
|
|
+ 0132 50 C push ax
|
|
|
|
+ 0133 B8 0010 C mov ax,0010h
|
|
|
|
+ 0136 50 C loop: push ax
|
|
|
|
+ 0137 58 C pop ax
|
|
|
|
+ 0138 50 C push ax
|
|
|
|
+ 0139 58 C pop ax
|
|
|
|
+ 013A 48 C dec ax
|
|
|
|
+ 013B 75 F9 C jnz loop
|
|
|
|
+ 013D 58 C pop ax
|
|
|
|
+ 013E 24 FC C and al,0FCh
|
|
|
|
+ 0140 E6 61 C out 61h,al
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-6
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 0142 58 C pop ax
|
|
|
|
+ 0143 C3 C ret
|
|
|
|
+ 0144 C period endp
|
|
|
|
+ C include clockint.asm
|
|
|
|
+ C ;------------ CLOCKINT ------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; AX,CX,DI,SI changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ 0144 C clockint proc near
|
|
|
|
+ 0144 8D 36 018C R C lea si,cli_str
|
|
|
|
+ 0148 BF 0090 C mov di,90h
|
|
|
|
+ 014B B9 0010 C mov cx,10h
|
|
|
|
+ 014E 56 C push si
|
|
|
|
+ 014F 51 C push cx
|
|
|
|
+ 0150 83 C6 0E C add si,0Eh
|
|
|
|
+ 0153 B4 00 C mov ah,00h
|
|
|
|
+ 0155 E8 0266 R C next: call get
|
|
|
|
+ 0158 8A E9 C mov ch,cl
|
|
|
|
+ 015A 81 E1 F00F C and cx,0F00Fh
|
|
|
|
+ 015E D0 CD C ror ch,1
|
|
|
|
+ 0160 D0 CD C ror ch,1
|
|
|
|
+ 0162 D0 CD C ror ch,1
|
|
|
|
+ 0164 D0 CD C ror ch,1
|
|
|
|
+ 0166 81 C1 3030 C add cx,3030h
|
|
|
|
+ 016A 2E: 88 0C C mov cs:[si],cl
|
|
|
|
+ 016D 4E C dec si
|
|
|
|
+ 016E 4E C dec si
|
|
|
|
+ 016F 2E: 88 2C C mov cs:[si],ch
|
|
|
|
+ 0172 4E C dec si
|
|
|
|
+ 0173 4E C dec si
|
|
|
|
+ 0174 F6 C4 04 C test ah,4
|
|
|
|
+ 0177 75 0D C jnz display
|
|
|
|
+ 0179 FE C4 C inc ah
|
|
|
|
+ 017B FE C4 C inc ah
|
|
|
|
+ 017D B0 3A C mov al,3Ah
|
|
|
|
+ 017F 2E: 88 04 C mov cs:[si],al
|
|
|
|
+ 0182 4E C dec si
|
|
|
|
+ 0183 4E C dec si
|
|
|
|
+ 0184 EB CF C jmp next
|
|
|
|
+ 0186 59 C display: pop cx
|
|
|
|
+ 0187 5E C pop si
|
|
|
|
+ 0188 E8 0258 R C call dispint
|
|
|
|
+ 018B C3 C ret
|
|
|
|
+ C ;
|
|
|
|
+ 018C 08 [ C cli_str: dw 8 dup (' ')
|
|
|
|
+ 0F20 C
|
|
|
|
+ ] C
|
|
|
|
+ C
|
|
|
|
+ C ;
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-7
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 019C C clockint endp
|
|
|
|
+ C include resin.asm
|
|
|
|
+ C ;------------ RESIN ---------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; CX,DI,SI changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ----------------
|
|
|
|
+ 019C C resin proc near
|
|
|
|
+ 019C 8D 36 01AA R C lea si,res_str
|
|
|
|
+ 01A0 BF 0000 C mov di,0000
|
|
|
|
+ 01A3 B9 0024 C mov cx,36
|
|
|
|
+ 01A6 E8 0258 R C call dispint
|
|
|
|
+ 01A9 C3 C ret
|
|
|
|
+ C ;
|
|
|
|
+ 01AA 52 0F 65 0F 73 0F C res_str: db 'Reset on DataB
|
|
|
|
+ oard'
|
|
|
|
+ 65 0F 74 0F 20 0F C
|
|
|
|
+ 6F 0F 6E 0F 20 0F C
|
|
|
|
+ 44 0F 61 0F 74 0F C
|
|
|
|
+ 61 0F 42 0F 6F 0F C
|
|
|
|
+ 61 0F 72 0F 64 0F C
|
|
|
|
+ C ;
|
|
|
|
+ 01CE C resin endp
|
|
|
|
+ C include dbint.asm
|
|
|
|
+ C ;------------ DBINT ---------------------------
|
|
|
|
+ ---------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; CX,DI,SI changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ---------------
|
|
|
|
+ 01CE C dbint proc near
|
|
|
|
+ 01CE 8D 36 01E4 R C lea si,dbi_str
|
|
|
|
+ 01D2 BF 0026 C mov di,0038
|
|
|
|
+ 01D5 B9 002C C mov cx,44
|
|
|
|
+ 01D8 E8 0258 R C call dispint
|
|
|
|
+ 01DB 50 C push ax
|
|
|
|
+ 01DC 52 C push dx
|
|
|
|
+ 01DD BA 0307 C mov dx,0307h
|
|
|
|
+ 01E0 EC C in al,(dx)
|
|
|
|
+ 01E1 5A C pop dx
|
|
|
|
+ 01E2 58 C pop ax
|
|
|
|
+ 01E3 C3 C ret
|
|
|
|
+ C ;
|
|
|
|
+ 01E4 49 0F 6E 0F 74 0F C dbi_str: db 'Interrupt on D
|
|
|
|
+ ataBoard'
|
|
|
|
+ 65 0F 72 0F 72 0F C
|
|
|
|
+ 75 0F 70 0F 74 0F C
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-8
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 20 0F 6F 0F 6E 0F C
|
|
|
|
+ 20 0F 44 0F 61 0F C
|
|
|
|
+ 74 0F 61 0F 42 0F C
|
|
|
|
+ 6F 0F 61 0F 72 0F C
|
|
|
|
+ 64 0F C
|
|
|
|
+ C ;
|
|
|
|
+ 0210 C dbint endp
|
|
|
|
+ C include nolegint.asm
|
|
|
|
+ C ;------------ NOLEGINT ------------------------
|
|
|
|
+ ------------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=PC4680 base adress
|
|
|
|
+ C ;
|
|
|
|
+ C ; CX,DI,SI changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ------------------
|
|
|
|
+ 0210 C nolegint proc near
|
|
|
|
+ 0210 8D 36 021E R C lea si,nli_str
|
|
|
|
+ 0214 BF 0054 C mov di,0084
|
|
|
|
+ 0217 B9 003A C mov cx,58
|
|
|
|
+ 021A E8 0258 R C call dispint
|
|
|
|
+ 021D C3 C ret
|
|
|
|
+ C ;
|
|
|
|
+ 021E 49 0F 6C 0F 6C 0F C nli_str: db 'Illegal interr
|
|
|
|
+ upt has occured'
|
|
|
|
+ 65 0F 67 0F 61 0F C
|
|
|
|
+ 6C 0F 20 0F 69 0F C
|
|
|
|
+ 6E 0F 74 0F 65 0F C
|
|
|
|
+ 72 0F 72 0F 75 0F C
|
|
|
|
+ 70 0F 74 0F 20 0F C
|
|
|
|
+ 68 0F 61 0F 73 0F C
|
|
|
|
+ 20 0F 6F 0F 63 0F C
|
|
|
|
+ 63 0F 75 0F 72 0F C
|
|
|
|
+ 65 0F 64 0F C
|
|
|
|
+ C ;
|
|
|
|
+ 0258 C nolegint endp
|
|
|
|
+ C include dispint.asm
|
|
|
|
+ C ;------------ DISPINT -------------------------
|
|
|
|
+ ---------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; SI=Startadress of string to display
|
|
|
|
+ C ; DI=Destinationadress for string
|
|
|
|
+ C ; CX=String length
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ ---------------
|
|
|
|
+ 0258 C dispint proc near
|
|
|
|
+ 0258 06 C push es
|
|
|
|
+ 0259 52 C push dx
|
|
|
|
+ 025A 8B 16 02D3 R C mov dx,disptype
|
|
|
|
+ 025E 8E C2 C mov es,dx
|
|
|
|
+ 0260 FC C cld
|
|
|
|
+ 0261 F3/ A4 C rep movsb
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-9
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 0263 5A C pop dx
|
|
|
|
+ 0264 07 C pop es
|
|
|
|
+ 0265 C3 C ret
|
|
|
|
+ 0266 C dispint endp
|
|
|
|
+ C include get.asm
|
|
|
|
+ C ;---------- L„s data fr†n klockan i PC4680 ----
|
|
|
|
+ --------------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=basadress f”r kortet
|
|
|
|
+ C ; AH=adress i klockan
|
|
|
|
+ C ; CL=data fr†n klockan
|
|
|
|
+ C ;
|
|
|
|
+ C ; AX,CX changed
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ --------------------
|
|
|
|
+ 0266 C get proc near
|
|
|
|
+ 0266 52 C push dx
|
|
|
|
+ 0267 B0 83 C mov al,83H
|
|
|
|
+ 0269 83 C2 0F C add dx,0Fh
|
|
|
|
+ 026C EE C out (DX),AL
|
|
|
|
+ 026D 4A C dec dx
|
|
|
|
+ 026E B0 D0 C mov al,0DH*10H
|
|
|
|
+ 0270 EE C out (DX),al
|
|
|
|
+ 0271 B0 50 C mov al,5*10H
|
|
|
|
+ 0273 EE C out (DX),al
|
|
|
|
+ 0274 B0 70 C mov al,7*10H
|
|
|
|
+ 0276 EE C out (DX),al
|
|
|
|
+ 0277 8A C4 C mov al,ah
|
|
|
|
+ 0279 4A C dec dx
|
|
|
|
+ 027A 4A C dec dx
|
|
|
|
+ 027B EE C out (DX),al
|
|
|
|
+ 027C B0 60 C mov al,6*10H
|
|
|
|
+ 027E 42 C inc dx
|
|
|
|
+ 027F 42 C inc dx
|
|
|
|
+ 0280 EE C out (DX),al
|
|
|
|
+ 0281 B0 40 C mov al,4*10H
|
|
|
|
+ 0283 EE C out (DX),al
|
|
|
|
+ 0284 B0 C0 C mov al,0CH*10H
|
|
|
|
+ 0286 EE C out (DX),al
|
|
|
|
+ 0287 B0 93 C mov al,93H
|
|
|
|
+ 0289 42 C inc dx
|
|
|
|
+ 028A EE C out (DX),al
|
|
|
|
+ 028B 4A C dec dx
|
|
|
|
+ 028C 4A C dec dx
|
|
|
|
+ 028D 4A C dec dx
|
|
|
|
+ 028E EC C in al,(DX)
|
|
|
|
+ 028F 8A C8 C mov cl,al
|
|
|
|
+ 0291 B0 50 C mov al,5*10H
|
|
|
|
+ 0293 42 C inc dx
|
|
|
|
+ 0294 42 C inc dx
|
|
|
|
+ 0295 EE C out (DX),al
|
|
|
|
+ 0296 B0 D0 C mov al,0DH*10H
|
|
|
|
+ 0298 EE C out (DX),al
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-10
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ 0299 5A C pop dx
|
|
|
|
+ 029A C3 C ret
|
|
|
|
+ 029B C get endp
|
|
|
|
+ C include set.asm
|
|
|
|
+ C ;---------- Skriv data till klockan i PC4680 --
|
|
|
|
+ --------------------
|
|
|
|
+ C ;
|
|
|
|
+ C ; DX=basadress f”r kortet
|
|
|
|
+ C ; AH=adress i klockan
|
|
|
|
+ C ; CL=data till klockan
|
|
|
|
+ C ;
|
|
|
|
+ C ;----------------------------------------------
|
|
|
|
+ --------------------
|
|
|
|
+ C ;
|
|
|
|
+ 029B C set proc near
|
|
|
|
+ 029B 52 C push dx
|
|
|
|
+ 029C B0 83 C mov AL,83H
|
|
|
|
+ 029E 83 C2 0F C add dx,0Fh
|
|
|
|
+ 02A1 EE C out (DX),AL
|
|
|
|
+ 02A2 4A C dec dx
|
|
|
|
+ 02A3 B0 90 C mov AL,9*10H
|
|
|
|
+ 02A5 EE C out (DX),AL
|
|
|
|
+ 02A6 B0 10 C mov AL,1*10H
|
|
|
|
+ 02A8 EE C out (DX),AL
|
|
|
|
+ 02A9 B0 30 C mov AL,3*10H
|
|
|
|
+ 02AB EE C out (DX),AL
|
|
|
|
+ 02AC 8A C4 C mov AL,AH
|
|
|
|
+ 02AE 4A C dec dx
|
|
|
|
+ 02AF 4A C dec dx
|
|
|
|
+ 02B0 EE C out (DX),AL
|
|
|
|
+ 02B1 B0 20 C mov AL,2*10H
|
|
|
|
+ 02B3 42 C inc dx
|
|
|
|
+ 02B4 42 C inc dx
|
|
|
|
+ 02B5 EE C out (DX),AL
|
|
|
|
+ 02B6 B0 00 C mov AL,0*10H
|
|
|
|
+ 02B8 EE C out (DX),AL
|
|
|
|
+ 02B9 B0 80 C mov AL,8*10H
|
|
|
|
+ 02BB EE C out (DX),AL
|
|
|
|
+ 02BC 8A C1 C mov AL,CL
|
|
|
|
+ 02BE 4A C dec dx
|
|
|
|
+ 02BF 4A C dec dx
|
|
|
|
+ 02C0 EE C out (DX),AL
|
|
|
|
+ 02C1 B0 10 C mov AL,1*10H
|
|
|
|
+ 02C3 42 C inc dx
|
|
|
|
+ 02C4 42 C inc dx
|
|
|
|
+ 02C5 EE C out (DX),AL
|
|
|
|
+ 02C6 B0 90 C mov AL,9*10H
|
|
|
|
+ 02C8 EE C out (DX),AL
|
|
|
|
+ 02C9 B0 93 C mov AL,93H
|
|
|
|
+ 02CB 42 C inc dx
|
|
|
|
+ 02CC EE C out (DX),AL
|
|
|
|
+ 02CD 5A C pop dx
|
|
|
|
+ 02CE C3 C ret
|
|
|
|
+ 02CF C set endp
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page 1-11
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ 02CF 01 [ im_master dw 1 dup (?)
|
|
|
|
+ ????
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ 02D1 01 [ im_slave dw 1 dup (?)
|
|
|
|
+ ????
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ 02D3 01 [ disptype dw 1 dup (?)
|
|
|
|
+ ????
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ 02D5 01 [ last_adr dw 1 dup (?)
|
|
|
|
+ ????
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ ;
|
|
|
|
+ 02D7 cseg ends
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page Symbols
|
|
|
|
+ -1
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Segments and Groups:
|
|
|
|
+
|
|
|
|
+ N a m e Size Align Combine Class
|
|
|
|
+
|
|
|
|
+CSEG . . . . . . . . . . . . . . 02D7 PARA PUBLIC 'CODE'
|
|
|
|
+STACK. . . . . . . . . . . . . . 0800 PARA STACK 'STACK'
|
|
|
|
+
|
|
|
|
+Symbols:
|
|
|
|
+
|
|
|
|
+ N a m e Type Value Attr
|
|
|
|
+
|
|
|
|
+AF . . . . . . . . . . . . . . . L NEAR 00E6 CSEG
|
|
|
|
+ALARM. . . . . . . . . . . . . . N PROC 00FB CSEG Length =0030
|
|
|
|
+ALA_STR. . . . . . . . . . . . . L NEAR 0121 CSEG
|
|
|
|
+BIT_0. . . . . . . . . . . . . . L NEAR 00BE CSEG
|
|
|
|
+BIT_1. . . . . . . . . . . . . . L NEAR 00B9 CSEG
|
|
|
|
+BIT_2. . . . . . . . . . . . . . L NEAR 00B4 CSEG
|
|
|
|
+BIT_3. . . . . . . . . . . . . . L NEAR 00AF CSEG
|
|
|
|
+BIT_4. . . . . . . . . . . . . . L NEAR 00AA CSEG
|
|
|
|
+BIT_5. . . . . . . . . . . . . . L NEAR 00A5 CSEG
|
|
|
|
+BIT_6. . . . . . . . . . . . . . L NEAR 00A0 CSEG
|
|
|
|
+BIT_7. . . . . . . . . . . . . . L NEAR 009B CSEG
|
|
|
|
+CLIVEKT. . . . . . . . . . . . . N PROC 00C3 CSEG Length =0038
|
|
|
|
+CLI_STR. . . . . . . . . . . . . L NEAR 018C CSEG
|
|
|
|
+CLOCKINT . . . . . . . . . . . . N PROC 0144 CSEG Length =0058
|
|
|
|
+DBINT. . . . . . . . . . . . . . N PROC 01CE CSEG Length =0042
|
|
|
|
+DBI_STR. . . . . . . . . . . . . L NEAR 01E4 CSEG
|
|
|
|
+DISPINT. . . . . . . . . . . . . N PROC 0258 CSEG Length =000E
|
|
|
|
+DISPLAY. . . . . . . . . . . . . L NEAR 0186 CSEG
|
|
|
|
+DISPTYPE . . . . . . . . . . . . L WORD 02D3 CSEG
|
|
|
|
+EXIT . . . . . . . . . . . . . . L NEAR 00F8 CSEG
|
|
|
|
+GET. . . . . . . . . . . . . . . N PROC 0266 CSEG Length =0035
|
|
|
|
+IM_MASTER. . . . . . . . . . . . L WORD 02CF CSEG
|
|
|
|
+IM_SLAVE . . . . . . . . . . . . L WORD 02D1 CSEG
|
|
|
|
+INT. . . . . . . . . . . . . . . F PROC 003A CSEG Length =0034
|
|
|
|
+INTATCO. . . . . . . . . . . . . F PROC 0000 CSEG Length =003A
|
|
|
|
+INTTABLE . . . . . . . . . . . . N PROC 009B CSEG Length =0028
|
|
|
|
+INTVEKT. . . . . . . . . . . . . N PROC 006E CSEG Length =002D
|
|
|
|
+IRQF . . . . . . . . . . . . . . L NEAR 00D7 CSEG
|
|
|
|
+LAST_ADR . . . . . . . . . . . . L WORD 02D5 CSEG
|
|
|
|
+LOOP . . . . . . . . . . . . . . L NEAR 0136 CSEG
|
|
|
|
+LOOPA. . . . . . . . . . . . . . L NEAR 0113 CSEG
|
|
|
|
+MORE . . . . . . . . . . . . . . L NEAR 003D CSEG
|
|
|
|
+NEXT . . . . . . . . . . . . . . L NEAR 0155 CSEG
|
|
|
|
+NEXTINT. . . . . . . . . . . . . L NEAR 0090 CSEG
|
|
|
|
+NLI_STR. . . . . . . . . . . . . L NEAR 021E CSEG
|
|
|
|
+NOLEGINT . . . . . . . . . . . . N PROC 0210 CSEG Length =0048
|
|
|
|
+PERIOD . . . . . . . . . . . . . N PROC 012B CSEG Length =0019
|
|
|
|
+PF . . . . . . . . . . . . . . . L NEAR 00DC CSEG
|
|
|
|
+RESIN. . . . . . . . . . . . . . N PROC 019C CSEG Length =0032
|
|
|
|
+RES_STR. . . . . . . . . . . . . L NEAR 01AA CSEG
|
|
|
|
+SET. . . . . . . . . . . . . . . N PROC 029B CSEG Length =0034
|
|
|
|
+TEST_BIT . . . . . . . . . . . . L NEAR 007F CSEG
|
|
|
|
+ IBM Personal Computer MACRO Assembler Version 2.00 Page Symbols
|
|
|
|
+ -2
|
|
|
|
+ 06-05-86
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+UF . . . . . . . . . . . . . . . L NEAR 00F0 CSEG
|
|
|
|
+
|
|
|
|
+48642 Bytes free
|
|
|
|
+
|
|
|
|
+Warning Severe
|
|
|
|
+Errors Errors
|
|
|
|
+0 0
|