📄 mag_bar.asm
字号:
;*******************************************************************
B035D: SETB 20H.7
CLR 20H.4
B0361: ACALL B038C
B0363: CJNE A,#45H,B036D
CLR 20H.7
ACALL B038C
CJNE A,#1FH,B0389
B036D: SETB 20H.3
SETB 20H.7
ACALL B038C
JNB 20H.6,B0363
CLR 20H.6
JB 20H.4,B0385
CLR 20H.3
SETB 20H.4
SETB 22H.2
MOV R2,#01
AJMP B0361
B0385: CLR 20H.3
SETB 21H.1
B0389: CLR 20H.7
RET
;
;
B038C: JB 20H.6,B03AE
JNB 03,B0397
CLR A
MOV R4,#0DH
AJMP B039A
B0397: MOV R4,#07H
CLR A
B039A: JNB 20H.7,B03A2
MOV A,R2
MOV R3,A
MOV A,R0
;**page 9
MOV R1,A
CLR A
B03A2: JB 20H.4,B03D4
XCH A,R2
RL A
CJNE A,#01,B03B1
INC R0
CJNE R0,#76H,B03B1
B03AE: SETB 20H.6
RET
B03B1: XCH A,R2
PUSH ACC
MOV A,@R0
ANL A,R2
JZ B03BE
POP ACC
SETB ACC.7
AJMP B03C0
B03BE: POP ACC
B03C0: RR A
JB 20H.3,B03DF
JNB 22H.2,B03CB
JZ B0397
CLR 22H.2
B03CB: DJNZ R4,B03A2
JNB 21H.3,B03D3
LJMP B03F2
B03D3: RET
B03D4: XCH A,R2
RR A
CJNE A,#80H,B03B1
DEC R0
CJNE R0,#29H,B03B1
AJMP B03AE
B03DF: XCH A,R4
JZ B03E9
XCH A,R4
JZ B03E7
AJMP B038C
B03E7: DJNZ R4,B039A
B03E9: XCH A,R4
JZ B039A
CLR 20H.3
MOV R4,#06H
AJMP B03A2
B03F2: CJNE A,#1FH,B03F7
SETB 21H.6
B03F7: ANL A,#3FH
ADD A,#20H
MOV 0DH,A
RET
;
;
B03FE: MOV A,R3
MOV R2,A
MOV A,R1
MOV R0,A
ACALL B038C
;**page 10
JB 20H.6,B043F
CJNE A,#45H,B043F
CLR 20H.1
MOV 05H,#00
B040F: JNB P,B043F
PUSH ACC
XRL A,05
MOV 05,A
JB 20H.1,B0434
POP ACC
CJNE A,#1FH,B0422
SETB 20H.1
B0422: ACALL B038C
JNB 20H.6,B040F
JNB 20H.1,B043F
JNB 20H.4,B043F
XCH A,R2
B042E: CLR C
RRC A
DJNZ R4,B042E
AJMP B040F
B0434: POP ACC
ANL 05,#3FH
MOV A,05
CJNE A,#00,B043F
RET
B043F: SETB 21H.1
RET
;
;
B0442: PUSH PSW ;1ST TRACK INTERRUPT SEVICE SUBROUTINE
MOV PSW,#00
XCH A,@R0
JB P1.2,B044E
SETB 24H.7
ADD A,R2
B044E: XCH A,@R0
JNB 24H.7,B045E
XCH A,R2
RL A
XCH A,R2
CJNE R2,#01,B045E
INC R0
CJNE R0,#76H,B045E
CLR ET0
B045E: POP PSW
RETI
;*******************************************************************
;* MAGNETIC CARD 3RD TRACK DATA ADJUST SUBROUTINE
;*******************************************************************
B0461: SETB 20H.7
CLR 20H.4
B0465: ACALL B0490
B0467: CJNE A,#0BH,B0471
CLR 20H.7
ACALL B0490
CJNE A,#1FH,B048D
B0471: SETB 20H.3
SETB 20H.7
ACALL B0490
;**page 11
JNB 20H.6,B0467
CLR 20H.6
JB 20H.4,B0489
CLR 20H.3
SETB 20H.4
SETB 22H.2
MOV R2,#01
AJMP B0465
B0489: CLR 20H.3
SETB 21H.1
B048D: CLR 20H.7
RET
;
;
B0490: JB 20H.6,B04B3
JNB 20H.3,B049C
CLR A
MOV R4,#09H
LJMP B049F
B049C: MOV R4,#05
CLR A
B049F: JNB 20H.7,B04A7
MOV A,R2
MOV R3,A
MOV A,R0
MOV R1,A
CLR A
B04A7: JB 20H.4,B04D9
XCH A,R2
RL A
CJNE A,#01,B04B6
INC R0
CJNE R0,#D2H,B04B6
B04B3: SETB 20H.6
RET
B04B6: XCH A,R2
PUSH ACC
MOV A,@R0
ANL A,R2
JZ B04C3
POP ACC
SETB ACC.5
AJMP B04C5
B04C3: POP ACC
B04C5: RR A
JB 20H.3,B04E4
JNB 22H.2,B04D0
JZ B049C
CLR 22H.2
B04D0: DJNZ R4,B04A7
JNB 21H.3,B04D8
LJMP B04F7
B04D8: RET
B04D9: XCH A,R2
RR A
CJNE A,#80H,B04B6
DEC R0
CJNE R0,#8EH,B04B6
AJMP B04B3
;**page 12
B04E4: XCH A,R4
JZ B04EE
XCH A,R4
JZ B04EC
AJMP B0490
B04EC: DJNZ R4,B049F
B04EE: XCH A,R4
JZ B049F
CLR 20H.3
MOV R4,#04
AJMP B04A7
B04F7: CJNE A,#1FH,B04FC
SETB 21H.6
B04FC: ANL A,#0FH
ORL A,#30H
MOV 0DH,A
JB 24H.0,B0500
CJNE A,#3BH,B050D
MOV 0DH,#2BH
SETB 24H.0
B050D: RET
;
;
B050E: MOV A,R3
MOV R2,A
MOV A,R1
MOV R0,A
ACALL B0490
JB 20H.6,B0552
JB 20H.2,B051A
B051A: CJNE A,#0BH,B0552
CLR 20H.1
MOV 05,#00
B0522: JNB P,B0552
PUSH ACC
XRL A,05
MOV 05,A
JB 20H.1,B0547
POP ACC
CJNE A,#1FH,B0535
SETB 20H.1
B0535: ACALL B0490
JNB 20H.6,B0522
JNB 20H.1,B0552
JNB 20H.4,B0552
XCH A,R2
B0541: CLR C
RRC A
DJNZ R4,B0541
AJMP B0522
B0547: POP ACC
ANL 05,#0FH
MOV A,05
CJNE A,#00,B0552
RET
B0552: SETB 21H.1
RET
;
;
;**page 13
B0555: PUSH PSW ;1ST TRACK INTERRUPT SEVICE SUBROUTINE
MOV PSW,#10H
CLR 0C8H.6 ;T2CON.6
XCH A,@R0
JB P1.3,B0563
SETB 22H.0
ADD A,R2
B0563: XCH A,@R0
JNB 22H.0,B0573
XCH A,R2
RL A
XCH A,R2
CJNE R2,#01,B0573
INC R0
CJNE R0,#D2H,B0573
CLR IEC.5
B0573: POP PSW
RETI
;*******************************************************************
;* SIO SUBROUTINE COLLECT
;*******************************************************************
B0576:
;get magnetic data and send them to computer via communication
SETB TR1
CLR TI
CLR RI
SETB ES
JB 24H.2,B0586
LCALL B05AD
SETB 24H.2
B0586: SETB 21H.3
B0588: JNB 24H.3,B058F
ACALL B038C
SJMP B0599
B058F: JNB 21H.0,B0597
ACALL B027F
LJMP B0599
B0597: ACALL B0490
B0599: JNB 20H.6,B059E
AJMP B05A8
B059E: SETB 23H.0
SETB TI
B05A2: JB 23H.0,B05A2
JNB 21H.6,B0588
B05A8: CLR 21H.3
CLR 21H.6
RET
;
;
B05AD:
;send STX char to computer according SW4 status
JNB 25H.1,B05BA
MOV 0DH,#02
SETB 23H.0
SETB TI
B05B7: JB 23H.0,B05B7
B05BA: RET
;
;
;**page 14
B05BB:
;send CR and ETX according to SW3 and SW4 status,23h.0 send finish_sign
JNB 25H.2,B05C8
MOV 0DH,#0DH
SETB 23H.0
SETB TI ;setup TI exec SIO interrupt program
B05C5: JB 23H.0,B05C5
B05C8: JNB 25H.1,B05D5
MOV 0DH,#03
SETB 23H.0
SETB TI
B05D2: JB 23H.0,B05D2
B05D5: RET
;
;
B05D6:
;SIO interrupt sevice program,the program process only data submiiting
PUSH ACC
JNB RI,B05DF ;interrupt due to receive?YES,EXIT
CLR RI
AJMP B05E4
B05DF: JNB TI,B05E4 ;interrupt due to SUBMITT?YES,CONTINUE
AJMP B05E7
B05E4: POP ACC
RETI
B05E7: JB 23H.0,B05EE
CLR TI
AJMP B05E4
B05EE: MOV A,0DH
CJNE A,#FFH,B05F7
CLR 23H.0
AJMP B05E4
B05F7: LCALL B05FF
MOV 0DH,#FFH
AJMP B05E4
;
;
B05FF:
;encode parity bit according SW6 and SW5,and send communicatin data to
;computer
JNB TI,B05FF
CLR TI
JNB 25H.4,B0611
MOV C,P
JB 25H.5,B060D
CPL C
B060D: MOV ACC.7,C
AJMP B061A
B0611: JB 25H.5,B0618
SETB ACC.7
AJMP B061A
B0618: CLR ACC.7
B061A: MOV SBUF,A
RET
;
;
B061D:
;Read DIP SWITCH to determine READER's working mode,SW7-SW8 baud rate:
;on on-9600,on off-4800,off on-2400,0ff off-1200,25h is SW7-SW3's
;**page 15
;status,0FH is baud rate status
MOV DPTR,#4000H
MOVX A,@DPTR
JB ACC.2,B0626
SETB 25H.4 ;SW6:ask to parity(ON 1)
B0626: JB ACC.3,B062B
SETB 25H.5 ;SW5:ON/OFF(1/0):even/odd parity
B062B: JB ACC.4,B0630
SETB 25H.1 ;SW4:add STX/ETX(ON)
B0630: JB ACC.5,B0635
SETB 25H.2 ;SW3:add CR(ON)
B0635: JB ACC.6,B063A
SETB 25H.6 ;SW2:not used
B063A: JB ACC.7,B063F
SETB 25H.3 ;SW1:not used
B063F: ANL A,#03 ;SW7 and SW8 baud rate
MOV 0FH,A
MOV DPTR,#B0652
MOVC A,@A+DPTR
MOV TH1,A
MOV A,0FH
MOV DPTR,@B0656
MOVC A,@A+DPTR
MOV 0FH,A
RET
B0652: DB FDH,FAH,F4H,E8H
B0656: DB 02H,04H,08H,10H
;
;
B065A: MOV B,#12H ;delay
B065D: DJNZ B,B065D
NOP
RET
B0A15:
RETI
END
;
;
;*******************************************************************
;* software developer:zz
;* ShenZhen VIE INFORMATION CO LTD
;* TEL:
;*******************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -