Thiết kế mạch quang báo giao tiếp máy tính qua cổng máy in

LỜI NÓI ĐẦU Ngày nay với sự phát triển của xã hội cùng với sự phát triển của khoa học kỹ thuật, cho nên nhu cầu về thông tin trở nên thiết yếu đối với con người trong cuộc sống cũng như trong hoạt động sản xuất kinh doanh. Để đáp ứng nhu cầu trên, quang báo là hình thức cung cấp thông tin hữu ích không thể thiếu trong cuộc sống hằng ngày. Do đó quang báo ngày càng phát triển tinh vi hơn, đa dạng hơn, từ việc thiết kế quang báo với văn bản được ghi chết trong ROM, đến việc thiết kế một KIT vi xử lý để điều khiển. Quang báo là hình thức thông báo trên bảng đèn. Bảng đèn quang báo gồm nhiều Ma Trận LED ghép lại, mỗi một Ma Trận biểu diễn một kí tự. Tùy chiều dài của bảng đèn mà có thể hiển thị những bản tin có độ dài khác nhau. Các từ trong văn bản sẽ lần lượt xuất hiện và chạy dần từ phải sang trái. Khi văn bản đã hiển thị đến từ cuối cùng thì từ đầu tiên lại bắt đầu xuất hiện trở lại. Quá trình đó cứ tiếp tục lại mãi. Bên cạnh đó, với sự ra đời của máy tính điện tử đặc biệt là máy vi tính, chúng có những tính năng ưu việt như khả năng xử lý dữ liệu nhanh chóng, độ tin cậy cao, lưu trữ lượng thông tin lớn và quan trọng hơn cả là máy tính có thể kết hợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể, mà việc trao đổi và điều khiển trở nên đơn giản, chúng phụ thuộc vào phần mềm điều khiển. Dựa vào tính đa dạng và mềm dẻo của máy tính người ta tìm cách ứng dụng nó vào mục đích quảng cáo, chẳng hạn như dùng trong quang báo. Nhờ vậy, việc thiết kế phần cứng cho quang báo trở thành ít phức tạp hơn, nhưng độ tin cậy cao hơn. Trong thực tế để hiển thị các văn bản, người ta dùng các kiểu chữ là các Ma Trận LED 5x7, 5x8, 8x12 hoặc 8x14 tuỳ thuộc vào mục đích sử dụng và độ phân giải. Theo cách nghĩ đó việc thiết kế mạch quang báo kết hợp giữa KIT vi xử lý và máy tính được chúng em trình bày trong luận văn này. Phần mềm điều khiển viết bằng ngôn ngữ PASCAL. Ở đây máy tính đóng vai trò truyền dữ liệu và điều khiển còn KIT vi xử lý có nhiệm vụ lưu trữ và thực hiện chương trình quang báo. Việc kết hợp giữa hai thiết bị làm cho quang báo trở nên đa dạng, phong phú, độ tin cậy cao và dễ dàng sử dụng. Ngoài ra Kit vi xử lý còn có thể thực hiện chương trình quang báo độc lập với máy tính nếu như điều kiện thực tế không cho phép. Mặt dù đã dành nhiều thời gian để thực hiện đề tài nhưng do kiến thức và tay nghề có hạn nên không tránh khỏi thiếu sót, chúng em rất mong sự góp ý của quí thầy cô và các bạn để luận văn được hoàn hảo hơn. Chúng em chân thành cảm ơn thầy Nguyễn Xuân Đông, cùng tất cả quí thầy cô đã trao dồi cho chúng em lượng kiến vô cùng quí báu để hoàn thành tốt luận văn đã được giao. Cám ơn các bạn sinh viên đã có những góp ý quí báu trong việc thực hiện luận văn này.

doc131 trang | Chia sẻ: banmai | Lượt xem: 1747 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Thiết kế mạch quang báo giao tiếp máy tính qua cổng máy in, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u treân 80 coät. a.Chöông trình quang baùo toång quaùt. Start FFH A HIEÅN THÒ DAÁU NHAÉC HEÄ THOÁNG HIEÅN THÒ CHÖÕ COÙ PHÍM NHAÁN HAY KHOÂNG LAÁY MAÕ PHÍM AÁN CAÁT MAÕ CHÖÛ VAØO DUØNG NHÔÙ 2000H NAÏP MAÕ CHÖÕ VUØNG HIEÅN THÒ RESET 164 XOÙA ÑEØN PHÍM RESET ÑÖÔÏCNHAÁN END N Y b.Löu ñoà khoái nhaäp chöõõ quang baùo. B. THIEÁT KEÁ PHAÀM MEÀM PASCAL: IV.3.Giôùi thieäu ngoân ngöõ PASCAL: IV.3.1.Xuaát xöù: Pascal laø moät ngoân ngöõ laäp trình caáp cao do giaùo sö NIKLAUS WIRTH ôû tröôøng ñaïi hoïc kyõ thuaät ZURICH Thuïy Só saùng taïo vaøo naêm 1970, vaø ñaët taân laø PASCAL ñeå töôûng nhôù ñeán BLAISE PASCAL, nhaø toaùn hoïc, nhaø trieát hoïc PHAÙP ôû theá kyû 17. Ngöôøi ñaõ cheá taïo ra kieåu maùy tính cô khí. PASCAL ñöôïc coi laø moät ngoân ngöõ ñeïp nhaát trong hoï coå ñieån, laø moät trong nhöõng ngoân ngöõ maïnh, phoå bieán nhaát laø neàn taûng cho caùc moân laäp trình khaùc, coù nhieàu tính öu vieät. Ngöôøi ta ñaõ nhaän thaáy raèng coù theå laäp trình moät caùch khoa hoïc, logic cho moät chöông trình cuï theå naøo ñoù döïa treân phaân tích caùc thuaät toaùn vaø suy dieãn toaùn hoïc. IV.3.2.caùc öö ñieåmcuûa ngoân ngöõ PASCAL: PASCAL coù theå thöïc hieän moät caùch chính xaùc caùc caáu truùc döõ lieäu phöùc taïp vaø caùc thuaät toaùn phöùc taïp. PASCAL coù tính meàm deõo vaø tieän lôïi trong vieäc chia nhoû vaán ñeà ra giaûi quyeát ñoäc laäp. Coù ñuû caùc pheùp toaùn soá hoïc, logic,…Caùc kieåu döõ lieäu trong PASCAL phong phuù, theå hieän ñöôïc nhieàu kieåu döõ lieäu töø ñôn giaûn ñeán phöùc taïp. Ngoân ngöõ PASCAL trôû thaønh ngoân ngöõ chính thoáng, ngoân ngöõ phoå bieán, ñöôïc duøng nhieàu trong tröôøng hoïc vaø caùc lónh vöïc khaùc. IV.3.3.Turbo pascal: Töø ngoân ngöõ PASCAL do giaùo sö WIRTH saùng taùc, caùc haõng phaàn meàn ñaõ phaùt trieån theâm vaø taïo ra caùc chöông trình dòch ngoân ngöõ PASCAL nhö: OS PASCAL:Ñöôïc goïi laø PASCAL chuaån. IBM PASCAL : Cuûa haõng Microsoft. TURBO PASCAL : Cuûa haõng BORLAND. Öu ñieåm cuûa TURBO PASCAL: Tieän cho vieäc dòch lieân hoaøn vôùi vieäc soaïn thaûo, söûa chöõa . Toác ñoä dòch nhanh. Chöông trình dòch goïn, ñoøi hoûi ít boä nhôù, coù nhieàu haøm,nhieàu coâng cuï hoã trôï. Laøm vieäc thoaûi maùi, coù hieäu quaû. Tính ñoái thoaïi ngöôøi vaø maùy phong phuù. Giaûi quyeát haàu heát caùc baøi toaùn trong kyõ thuaät, thieát keá ñoà hoïa, quaûn lyù, xaây döïng caùc phaàn meàm heä thoáng. Deã daïy vaø hoïc. Luoân caûi tieán môû roäng vaø phaùt trieån khoâng ngöøng. IV.4.Löu ñoå toång quaùt maïch quang baùo giao tieáp vôùi maùy tính: Begin NHAÄP CHUOÃI ÑOÏC CHUOÃI MAÕ HOAÙ XUAÁT DÖÕ LIEÄU KIT NHAÄN DÖÕ LIEÄU KIT THI HAØNH CHÖÔNG TRÌNH QUANG BAÙO End IV.4.1.Löu ñoà ñoïc chuoãi vaø maõ hoaù: A B A B St[i+1] Begin i:=1 Nhaän daïng Maõ hoùa i:=i+2 Kieåmtra chuoåi End. St[i+1] Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End MAÕ HOÙA i:=i+2 Kieåm tra keát thuùc chuoåi End 1 2 3 4 a,e,u,o 6,7,8 A A A St[i+1] Begin i:=1 Nhaän daïng Maõ hoùa i:=i+2 Kieåmtra chuoåi End. St[i+1] Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End MAÕ HOÙA i:=i+2 Kieåm tra keát thuùc chuoåi End 1 2 3 4 a,e,u,o 6,7,8 A A St[i+1] Begin i:=1 Nhaän daïng Maõ hoùa i:=i+2 Kieåmtra chuoåi End. St[i+1] Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End MAÕ HOÙA i:=i+2 Kieåm tra keát thuùc chuoåi End 1 2 3 4 a,e,u,o 6,7,8 A A ¹5 5 Kieåmtra Chuoãi Kieåm tra keát thuùc chuoãi C D 1 Maõ hoùa i:=i+2 End. St[i+1] Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoãi End Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoãi End MAÕ HOÙA i:=i+2 End Khoâng daáu A C A A A 9 Y,I 1-5 Khoâng daáu Kieåm tra keát thuùc chuoåi d D 2 Maõ hoùa i:=i+2 End. St[i+1] Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End Maõ hoùa i:=i+1 Kieåm tra keát thuùc chuoåi End MAÕ HOÙA i:=i+2 End 1-4 A d A A A M,N,O,P,C,T,Y,I,U $ 1-9 Kieåm tra keát thuùc chuoåi Löu ñoà gôûi döõ lieäu cuûa maùy tính  .Z80 ;--------------------------------; ; RESET MAY VA DUA RA DAU NHAC ; ;--------------------------------; ORG 0000H LD A,8BH LD (KEY_IO),A ; KHOI TAO 8255 I PORT A RA PORT C VAO LD A,81H LD (DIS_IO),A ; KHOI TAO 8255 II CA 3 PORT RA ;--------------------------------; ; HIEN THI DAU NHAC CUA HE THONG ; ;--------------------------------; RESET: LD HL,SYS_SP LD SP,HL LD A,01 LD (ROLPAS),A LD A,00H LD (KEYFLG),A CALL RS164 LD B,03H LD IX,DISBUF LD A,38H LP11: LD (IX),A INC IX DJNZ LP11 LD A,7CH LD (IX),A INC IX LD A,38H LD (IX),A INC IX LD A,10H LD (IX),A LD A,3EH ;---------------------------------------------------; ; D7,D6,D5(6),D4(5),D3(4),D2(3),D1(DEN 2),D0(DEN 1) ; ;---------------------------------------------------; CALL CLRSCR LD IX,FUNSEL LD (MNPTR),IX LD HL,DISBUF LD (DISPTR),HL MIT: LD A,(VAO) CP 00H JR Z,PUT CP 01H JR Z,PUT CP 03H JP NDL CP 09H JP Z,PHAI CP 0AH JP Z,TRAI JR MIT ;--------------------------------; ; CHUONG TRINH RESET IC 74164 ; ;--------------------------------; RS164: LD B,81 LPRS: LD A,00H LD (CKOUT),A ; CANH XUONG XUNG CK LD (DATAOUT),A CALL DLPUT LD A,01H ; CANH LEN XUNG CK LD (CKOUT),A DJNZ LPRS RET ;--------------------------------; ; CHUONG TRINH HIEN THI DU LIEU; ; RA MA TRAN LED. CHUONG TRINH ; ; NAY CO THE THUC HIEN DOC LAP ; ; VUNG NHO DEM CHO DEN TU ; ; DISBUF DEN DISBUF + 80 ; ;--------------------------------; PUT: LD A,00H LD (CKOUT),A ; CANH XUONG XUNG CK LD A,02H ; DU LIEU DE DICH VAO IC 74164 LD (CKOUT),A LD A,03H ; CANH LEN XUNG CK LD (CKOUT),A LD D,80 ; SO COT BANG QUANG BAO LA 80 LD HL,(DISPTR) MUX: LD A,(HL) LD (DATAOUT),A CALL DLPUT PUSH DE PUSH HL LD A,00H LD (KEY_OUT),A LD A,(KEY_IN) AND 01FH CP 01FH JR Z,LP002 LD D,A LD A,00H LD (DATAOUT),A LD A,D CALL GET LP002: LD HL,LP_1 PUSH HL LD A,00 LD (DATAOUT),A LD IX,(MNPTR) ; GOI CHUONG TRINH XU LY PHIM JP (IX) LP_1: POP HL POP DE DEC D JR Z,PUT INC HL LD A,00H LD (CKOUT),A ; CANH XUONG XUNG CK CALL DLPUT0 LD A,01H LD (CKOUT),A ; CANH LEN XUNG CK JR MUX ;--------------------------------; ; CHUONG TRINH LAY MA PHIM AN ; ;--------------------------------; GET: LD A,(KEY_IN) AND 1FH CP 1FH JR Z,DIDDLE LD B,00H ; B CHUA THU TU HANG CUA PHIM BI NHAN LPROW: SRA A JR NC,ROWCOD INC B JR LPROW ROWCOD: SLA B SLA B SLA B LD A,B AND 38H LD IX,KEY LD(IX),A ;CHUA MA HANG VAO O NHO KEY LD A,07FH ;DO TIM COT CUA PHIM BI NHAN LPCOL: LD D,A LD (KEY_OUT),A LD A,(KEY_IN) AND 1FH CP 1FH JR NZ,COLFD LD A,D RRCA JR NC,DIDDLE JR LPCOL COLFD: LD B,00H LD A,D COLCOD: RRCA JR NC,ROWCOL INC B JR COLCOD ROWCOL: LD A,B AND 07H LD B,A LD A,(KEY) OR B LD D,A ; D CHUA MA HANG - COT CUA PHIM NHAN LPFD: LD A,(KEY_IN) ; CHO BUONG PHIM MOI XU LY AND 01FH CP 01FH JR NZ,LPFD CALL DLKP ; CHONG DOI LUC NHA PHIM LD A,D LD IX,KEYTBL PUSH BC LD B,00H LD C,A ADD IX,BC LD A,(IX) LD (KEY),A ; KEY CHUA MA HECXA CUA PHIM BI NHAN LD A,01H ; SET CO BAO CO PHIM BANG 01 LD (KEYFLG),A POP BC DIDDLE: RET ;--------------------------------; ; BANG TRA MA LED ; ;--------------------------------; KEYTBL: DEFB 22H DEFB 25H DEFB 21H DEFB 26H DEFB 0AH DEFB 0BH DEFB 0CH DEFB 0DH DEFB 13H DEFB 15H DEFB 14H DEFB 12H DEFB 11H DEFB 10H DEFB 0FH DEFB 0EH DEFB 16H DEFB 17H DEFB 18H DEFB 00H DEFB 01H DEFB 02H DEFB 03H DEFB 23H DEFB 1CH DEFB 1BH DEFB 1AH DEFB 19H DEFB 04H DEFB 05H DEFB 06H DEFB 81H DEFB 1DH DEFB 1EH DEFB 1FH DEFB 20H DEFB 07H DEFB 08H DEFB 09H DEFB 80H ;--------------------------------; ; THI HANH CHUC NANG CUA PHIM ; ;--------------------------------; FUNSEL: LD A,(KEYFLG) ; BAO CO PHIM BI NHAN CP 01H JR Z,KEYNOW RET KEYNOW: CALL RDKEY LD D,A AND 80H CP 80H JR Z,FUNKEY LD A,D AND 30H CP 00H JR NZ,DIDDLE LD A,D CALL ROLL4 CALL DISCOD LD A,30H JP CLRSCR FUNKEY: LD A,D CP 81H JP Z,GO CP 80H JP Z,MEM ;--------------------------------; ; CHUONG TRINH ROLL4 ; ;--------------------------------; ROLL4: PUSH BC PUSH HL LD HL,HEXBUF+1 LD B,A LD A,(ROLPAS) ; KIEM TRA CO ROLPAS CP 01H JR NZ,R4TPAS ; LAN DAU TIEN KHONG ROLL LD A,00H LD (ROLPAS),A DEC HL LD (HL),A INC HL LD (HL),B JR R4OUT R4TPAS: LD A,B RLD DEC HL RLD R4OUT: POP HL POP BC RET ;--------------------------------; ; CHUONG TRINH ROLL2 ; ;--------------------------------; ROLL2: PUSH BC LD B,A LD A,(ROLPAS) CP 01H JR NZ,LPP2 LD A,00H LD (ROLPAS),A LD A,B LD (HL),A JR R2OUT LPP2: LD A,B RLD R2OUT: POP BC RET ;---------------------------------; ; GIAI MA SO HEX RA MA TRAN CHU ; ;---------------------------------; DISCOD: PUSH BC PUSH IX PUSH HL PUSH IY LD B,03 ; DOI 3 BYTE SO HECXA LD IX,HEXBUF+2 LP01: LD L,(IX) LD H,L SRL H SRL H SRL H SRL H LD A,L AND 0FH LD L,A PUSH HL ; H CHUA NIPPLE CAO L CHUA NIPPLE THAP DEC IX DEC B JR NZ,LP01 LD IY,DISBUF LD B,03 LP02: POP HL CALL SUBDIS LD H,L CALL SUBDIS DJNZ LP02 POP IY POP HL POP IX POP BC RET SUBDIS: LD A,H LD IX,DISTBL CALL ADDAX PUSH BC LD B,06 LP1_0: LD A,(IX) LD (IY),A INC IY INC IX DJNZ LP1_0 POP BC RET ;--------------------------------; ; BANG TRA MA TRAN CHU ; ;--------------------------------; DISTBL: DEFB 38H ;CHU 0 DEFB 44H DEFB 44H DEFB 44H DEFB 38H DEFB 00H DEFB 40H ;SO 1 DEFB 48H DEFB 7CH DEFB 40H DEFB 40H DEFB 00H DEFB 48H ;SO 2 DEFB 64H DEFB 54H DEFB 4CH DEFB 40H DEFB 00H DEFB 44H ;SO 3 DEFB 44H DEFB 54H DEFB 54H DEFB 28H DEFB 00H DEFB 20H ;SO 4 DEFB 30H DEFB 28H DEFB 24H DEFB 7CH DEFB 00H DEFB 5CH ;SO 5 DEFB 54H DEFB 54H DEFB 54H DEFB 74H DEFB 00H DEFB 7CH ;SO 6 DEFB 54H DEFB 54H DEFB 54H DEFB 74H DEFB 00H DEFB 04H ;SO 7 DEFB 44H DEFB 24H DEFB 14H DEFB 0CH DEFB 00H DEFB 7CH ;SO 8 DEFB 54H DEFB 54H DEFB 54H DEFB 7CH DEFB 00H DEFB 5CH ;SO 9 DEFB 54H DEFB 54H DEFB 54H DEFB 7CH DEFB 00H DEFB 70H ;CHU A DEFB 28H DEFB 24H DEFB 28H DEFB 70H DEFB 00H DEFB 7CH ;CHU B DEFB 54H DEFB 54H DEFB 54H DEFB 6CH DEFB 00H DEFB 38H ;CHU C DEFB 44H DEFB 44H DEFB 44H DEFB 28H DEFB 00H DEFB 7CH ;CHU D DEFB 44H DEFB 44H DEFB 44H DEFB 38H DEFB 00H DEFB 7CH ;CHU E DEFB 54H DEFB 54H DEFB 54H DEFB 44H DEFB 00H DEFB 7CH ;CHU F DEFB 14H DEFB 14H DEFB 14H DEFB 04H DEFB 00H ;--------------------------------; ; CHUONG TRINH TANG IX AX6 LAN ; ;--------------------------------; ADDAX: PUSH BC LD C,A LP0_2: CP 00H JR Z,FINISH LD B,06H LP0_1: INC IX DJNZ LP0_1 DEC A JR LP0_2 FINISH: LD A,C POP BC RET ;--------------------------------; ; CHUONG TRINH XOA DEN ; ; CHUONG TRINH NAY KHI GOI PHAI ; ; DAT VAO THANH GHI A GIA TRI ; ; TUONG UNG VOI DEN CAN XOA ; ;--------------------------------; CLRSCR: PUSH IX PUSH DE PUSH BC LD D,06 ; XOA NHIEU NHAT LA 6 DEN LD IX,DISBUF SCF ; SET CO CARRY BANG 1 CCF ; DAT CO CARRY BANG 0 CLR01: LD B,06 ; MOT KY TU CO 6 COT SRA A JR NC,CLR02 LD E,00H CLR03: LD (IX),E INC IX DJNZ CLR03 DEC D JR NZ,CLR01 JR CLR05 CLR02: INC IX DJNZ CLR02 DEC D JR NZ,CLR01 CLR05: LD B,46 CLR04: LD (IX),E INC IX DJNZ CLR04 POP BC POP DE POP IX RET ;--------------------------------; ; CHUONG TRINH DOC PHIM ; ;--------------------------------; RDKEY: LD A,00 LD (KEYFLG),A LD A,(KEY) RET ;--------------------------------; ; CAC CHUONG TRINH DELAY ; ;--------------------------------; DLKP: PUSH HL LD HL,160FH JR LPDL DLPUT:PUSH HL LD HL,0FH ;08H JR LPDL DLPUT0: PUSH HL LD HL,01H ;03H LPDL: DEC HL LD A,H CP 00H JR NZ,LPDL LD A,L CP 00H JR NZ,LPDL POP HL RET ;--------------------------------; ; THAY DOI NOI DUNG O NHO ; ; XU LY PHIM MEM, LAN 1 LAY NOI ; ; DUNG O NHO, LAN 2 GIAM DIA CHI ; ; NHAN PHIM GO TANG DIA CHI ; ;--------------------------------; MEM: LD IX,MEMCH LD (MNPTR),IX LD IX,HEXBUF LD H,(IX) LD L,(IX+1) JR NEWMEM MEMCH: LD A,(KEYFLG) CP 01H JR Z,MEMNOW RET MEMNOW: CALL RDKEY LD D,A LD IX,HEXBUF LD H,(IX) LD L,(IX+1) AND 80H CP 80H JR NZ,NUM LD A,D CP 80H JR NZ,NXM1 DEC HL JR NEWMEM NXM1: LD A,D CP 81H JR NZ,MEMOUT INC HL JR NEWMEM NUM: LD A,D CALL ROLL2 JR MEMOUT NEWMEM: LD A,01 LD (ROLPAS),A MEMOUT: LD A,(HL) LD (IX+2),A LD (IX),H LD (IX+1),L JP DISCOD ;--------------------------------; ; THI HANH CHUONG TRINH UNG DUNG ; ;--------------------------------; GO: LD IX,HEXBUF LD H,(IX) LD L,(IX+1) PUSH HL RET ORG 0400H ;----------------------------------; ; NHAP CHUOI CAN QUANG BAO ; ; CHUOI NAY CHUA TAI DIA CHI 2000H ; ;----------------------------------; CALL RS164 LD A,01 LD (ROLQB),A LD (CH_FLG),A LD A,0FFH CALL CLRSCR LD B,03H LD IX,DISBUF+79 LD A,38H LP011: LD (IX),A DEC IX DJNZ LP011 LD A,7CH LD (IX),A DEC IX LD A,38H LD (IX),A DEC IX LD A,10H LD (IX),A LD A,55H LD (2000H),A LD (2001H),A LD HL,2002H LD (ADISBUF),HL PUTQB: LD A,00H LD (CKOUT),A ; CANH XUONG XUNG CK LD A,02H ; DU LIEU DE DICH VAO IC 74164 LD (CKOUT),A LD A,03H ; CANH LEN XUNG CK LD (CKOUT),A LD D,80 ; SO COT BANG QUANG BAO LA 80 LD HL,(DISPTR) MUXQB: LD A,(HL) LD (DATAOUT),A CALL DLPUT PUSH DE PUSH HL LD A,00H LD (DATAOUT),A ; TAT DEN DO PHIM LD (KEY_OUT),A LD A,(KEY_IN) AND 01FH CP 01FH JR Z,LPQB002 CALL GET0 LPQB002:LD HL,LPQB_1 PUSH HL LD IX,CH_QB ; GOI CHUONG TRINH XU LY PHIM JP (IX) LPQB_1: POP HL POP DE DEC D JR Z,PUTQB INC HL LD A,00H LD (CKOUT),A ; CANH XUONG XUNG CK CALL DLPUT0 LD A,01H LD (CKOUT),A ; CANH LEN XUNG CK JR MUXQB ;------------------------------------------; ; CHUONG TRINH LAY MA PHIM AN QUANG BAO ; ;------------------------------------------; GET0: LD A,(KEY_IN) AND 1FH CP 1FH JR Z,NOKEY LD B,00H ; B CHUA THU TU HANG CUA PHIM BI NHAN LPW0: SRA A JR NC,RWD0 INC B JR LPW0 RWD0: SLA B SLA B SLA B LD A,B AND 38H LD IX,KEY LD (IX),A ; CHUA MA HANG VAO O NHO KEY LD A,07FH ; DO TIM COT CUA PHIM BI NHAN LPC0: LD D,A LD (KEY_OUT),A LD A,(KEY_IN) AND 1FH CP 1FH JR NZ,CLFD0 LD A,D RRCA JR NC,NOKEY JR LPC0 CLFD0: LD B,00H LD A,D CLCD0: RRCA JR NC,RWCL0 INC B JR CLCD0 RWCL0: LD A,B AND 07H LD B,A LD A,(KEY) OR B LD D,A ; D CHUA MA HANG - COT CUA PHIM NHAN LPFD0: LD A,(KEY_IN) ; CHO BUONG PHIM MOI XU LY AND 01FH CP 01FH JR NZ,LPFD0 CALL DLKP ; CHONG DOI LUC NHA PHIM LD A,D LD (KEY),A ; KEY CHUA MA CUA PHIM BI NHAN LD A,01H ; SET CO BAO CO PHIM BANG 01 LD (KEYFLG),A NOKEY: RET ;--------------------------------; ; NHAP CHU CAN QUANG BAO ; ;--------------------------------; CH_QB: LD A,(KEYFLG) ; BAO CO PHIM BI NHAN CP 01H JR Z,KEYQB RET KEYQB: CALL RDKEY CP 00H JR Z,SHIFT ;PHIM CHUYEN CP 01 JR Z,BACKSPACE ;PHIM KHOANG TRONG PUSH AF LD A,(CH_FLG) CP 00H JR Z,BAN1 LD IX,DTBLH ; BAN MA CHU HOA JR BAN2 BAN1: LD IX,DTBLT ; BAN MA CHU CO DAU BAN2: POP AF LD IY,DISBUF+74 PUSH HL PUSH BC CALL ADDAX CALL ROLL80 LD HL,(ADISBUF) LD B,06H LOOP2: LD A,(IX) LD (IY),A LD (HL),A INC IX INC HL INC IY DJNZ LOOP2 LD (ADISBUF),HL LD A,55H ; MA NHAN DANG KET THUC CHUOI LD (HL),A DEC HL LD (DATAAD),HL POP BC POP HL RET SHIFT: PUSH AF ;NUMLOCK LD A,(CH_FLG) CP 00H JR NZ,SH10 LD A,01H LD (CH_FLG),A JR SH11 SH10: LD A,00H LD (CH_FLG),A SH11: POP AF RET BACKSPACE: LD HL,(ADISBUF) ;ENTER LD B,06 BK0: DEC HL DJNZ BK0 LD A,55H LD (HL),A LD (ADISBUF),HL LD B,06 BK1: CALL ROLPQB DJNZ BK1 RET ;---------------------------------------; ; CHUONG TRINH ROLL DU LIEU QUA 80 COT ; ;---------------------------------------; ROLL80: PUSH BC PUSH IX LD A,(ROLQB) CP 01 JR Z,LP80 LD B,160 LD IX,DISBUF-80 LOOP80: LD A,(IX+6) LD (IX),A INC IX DJNZ LOOP80 LP80: LD A,00 LD (ROLQB),A POP IX POP BC RET ;--------------------------------; ; BANG TRA MA TRAN CHU HOA ; ;--------------------------------; DTBLH:DEFB 08H ;DAU CHAM HOI DEFB 04H DEFB 54H DEFB 0CH DEFB 00H DEFB 00H DEFB 00H ;CHU J DEFB 46H DEFB 3CH DEFB 04H DEFB 00H DEFB 00H DEFB 7CH ;CHU W DEFB 20H DEFB 10H DEFB 20H DEFB 7CH DEFB 00H DEFB 44H ;CHU Z DEFB 64H DEFB 54H DEFB 4CH DEFB 44H DEFB 00H DEFB 70H ;CHU A DEFB 28H DEFB 24H DEFB 28H DEFB 70H DEFB 00H DEFB 7CH ;CHU B DEFB 54H DEFB 54H DEFB 54H DEFB 6CH DEFB 00H DEFB 38H ;CHU C DEFB 44H DEFB 44H DEFB 44H DEFB 28H DEFB 00H DEFB 7CH ;CHU D DEFB 44H DEFB 44H DEFB 44H DEFB 38H DEFB 00H DEFB 00H ;DAU CHAM THAN DEFB 00H DEFB 5CH DEFB 00H DEFB 00H DEFB 00H DEFB 7CH ;CHU L DEFB 40H DEFB 40H DEFB 40H DEFB 40H DEFB 00H DEFB 7CH ;CHU K DEFB 10H DEFB 28H DEFB 44H DEFB 00H DEFB 00H DEFB 44H ;CHU I DEFB 44H DEFB 7CH DEFB 44H DEFB 44H DEFB 00H DEFB 7CH ;CHU H DEFB 10H DEFB 10H DEFB 10H DEFB 7CH DEFB 00H DEFB 38H ;CHU G DEFB 44H DEFB 54H DEFB 54H DEFB 30H DEFB 00H DEFB 7CH ;CHU F DEFB 14H DEFB 14H DEFB 14H DEFB 04H DEFB 00H DEFB 7CH ;CHU E DEFB 54H DEFB 54H DEFB 54H DEFB 44H DEFB 00H DEFB 7CH ;CHU M DEFB 04H DEFB 18H DEFB 04H DEFB 7CH DEFB 00H DEFB 7CH ;CHU N DEFB 08H DEFB 10H DEFB 20H DEFB 7CH DEFB 00H DEFB 7CH ;CHU P DEFB 24H DEFB 24H DEFB 24H DEFB 18H DEFB 00H DEFB 38H ;CHU 0 DEFB 44H DEFB 44H DEFB 44H DEFB 38H DEFB 00H DEFB 40H ;SO 1 DEFB 48H DEFB 7CH DEFB 40H DEFB 40H DEFB 00H DEFB 48H ;SO 2 DEFB 64H DEFB 54H DEFB 4CH DEFB 00H DEFB 40H DEFB 00H DEFB 44H ;SO 3 DEFB 44H DEFB 54H DEFB 54H DEFB 28H DEFB 00H DEFB 00H ;KHOANG TRONG DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 04H ;CHU T DEFB 04H DEFB 7CH DEFB 04H DEFB 04H DEFB 00H DEFB 48H ;CHU S DEFB 54H DEFB 54H DEFB 54H DEFB 24H DEFB 00H DEFB 7CH ;CHU R DEFB 14H DEFB 34H DEFB 54H DEFB 1CH DEFB 00H DEFB 38H ;CHU Q DEFB 44H DEFB 44H DEFB 64H DEFB 78H DEFB 00H DEFB 20H ;SO 4 DEFB 30H DEFB 28H DEFB 24H DEFB 7CH DEFB 00H DEFB 5CH ;SO 5 DEFB 54H DEFB 54H DEFB 54H DEFB 74H DEFB 00H DEFB 7CH ;SO 6 DEFB 54H DEFB 54H DEFB 54H DEFB 74H DEFB 00H DEFB 40H ;DAU CHAM DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 3CH ;CHU U DEFB 40H DEFB 40H DEFB 40H DEFB 3CH DEFB 00H DEFB 1CH ;CHU V DEFB 20H DEFB 40H DEFB 20H DEFB 1CH DEFB 00H DEFB 44H ;CHU X DEFB 28H DEFB 10H DEFB 28H DEFB 44H DEFB 00H DEFB 04H ;CHU Y DEFB 08H DEFB 70H DEFB 08H DEFB 04H DEFB 00H DEFB 04H ;SO 7 DEFB 44H DEFB 24H DEFB 14H DEFB 0CH DEFB 00H DEFB 7CH ;SO 8 DEFB 54H DEFB 54H DEFB 54H DEFB 7CH DEFB 00H DEFB 5CH ;SO 9 DEFB 54H DEFB 54H DEFB 54H DEFB 7CH DEFB 00H DEFB 10H ;DAU - DEFB 10H DEFB 10H DEFB 10H DEFB 10H DEFB 00H ;---------------------------------------; ; BANG TRA MA TRAN CHU CO DAU ; ;---------------------------------------; DTBLT: DEFB 00H ;CHUYEN CHU HOA CO DAU DEFB 00H DEFB 44H DEFB 00H DEFB 00H DEFB 00H DEFB 00H ;PHIM XOA KY TU DEFB 20H DEFB 40H DEFB 3AH DEFB 00H DEFB 00H DEFB 70H ;CHÖÛ AÙ DEFB 28H DEFB 24H DEFB 26H DEFB 71H DEFB 00H DEFB 70H ; CHÖÛ AØ DEFB 28H DEFB 24H DEFB 29H DEFB 72H DEFB 00H DEFB 70H ;CHÖÛ AÂ DEFB 2AH DEFB 25H DEFB 2AH DEFB 70H DEFB 00H DEFB 70H ;CHÖÛ AÊ DEFB 29H DEFB 26H DEFB 29H DEFB 70H DEFB 00H DEFB 7EH ;CHÖÛ M SAÉT DEFB 05H DEFB 18H DEFB 04H DEFB 7CH DEFB 00H DEFB 7CH ;CHÖÛ Ñ DEFB 54H DEFB 44H DEFB 44H DEFB 38H DEFB 00H DEFB 00H ;DAÁU CHAÁM THANG DEFB 00H DEFB 5CH DEFB 00H DEFB 00H DEFB 00H DEFB 7DH ;CHÖÛ N HOÛI DEFB 0BH DEFB 10H DEFB 20H DEFB 7CH DEFB 00H DEFB 7DH ;CHÖÛ N HUYEÀN DEFB 0AH DEFB 10H DEFB 20H DEFB 7CH DEFB 00H DEFB 7EH ;CHÖÛ N SAÉT DEFB 09H DEFB 10H DEFB 20H DEFB 7CH DEFB 00H DEFB 7EH ;CHÖÛ M NGAÕ DEFB 05H DEFB 1AH DEFB 05H DEFB 7CH DEFB 00H DEFB 7DH ;CHÖÛ M HOÛI DEFB 07H DEFB 18H DEFB 04H DEFB 7CH DEFB 00H DEFB 7DH ;CHÖÛ M HUYEÀN DEFB 06H DEFB 18H DEFB 04H DEFB 7CH DEFB 00H DEFB 7CH ;CHÖÛ EÂ DEFB 56H DEFB 55H DEFB 56H DEFB 44H DEFB 00H DEFB 7EH ;CHÖÛ N NGAÕ DEFB 09H DEFB 12H DEFB 21H DEFB 7CH DEFB 00H DEFB 38H ;CHÖÛ Ô DEFB 44H DEFB 44H DEFB 45H DEFB 3BH DEFB 00H DEFB 38H ;CHÖÛ OÙ DEFB 44H DEFB 44H DEFB 46H DEFB 39H DEFB 00H DEFB 38H ;CHÖÛ OÂ DEFB 46H DEFB 45H DEFB 46H DEFB 38H DEFB 00H DEFB 02H ;DAÁU SAÉT DEFB 01H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 01H ;DAÁU HUYEÀN DEFB 02H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 01H ;DAÁU HOÛI DEFB 03H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 00H ;KHOAÛNG TROÁNG DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 3CH ;CHÖÛ UÙ DEFB 40H DEFB 40H DEFB 42H DEFB 3DH DEFB 00H DEFB 38H ;CHÖÛ OÕ DEFB 46H DEFB 45H DEFB 46H DEFB 39H DEFB 00H DEFB 38H ;CHÖÛ OÛ DEFB 45H DEFB 47H DEFB 44H DEFB 38H DEFB 00H DEFB 38H ;CHÖÛ OØ DEFB 44H DEFB 44H DEFB 45H DEFB 3AH DEFB 00H DEFB 02H ;DAÁU NGAÕ DEFB 01H DEFB 02H DEFB 01H DEFB 00H DEFB 00H DEFB 80H ;DAÁU NAËNG DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 06H ;CHÖÛ YÙ DEFB 09H DEFB 70H DEFB 08H DEFB 04H DEFB 00H DEFB 0C0H ;DAÁU CHAÁM DEFB 0C0H DEFB 00H DEFB 00H DEFB 00H DEFB 00H DEFB 3CH ;CHÖÛ Ö DEFB 40H DEFB 40H DEFB 41H DEFB 3FH DEFB 00H DEFB 3CH ;CHÖÛ UØ DEFB 40H DEFB 41H DEFB 42H DEFB 3CH DEFB 00H DEFB 3CH ;CHÖÛ UÛ DEFB 40H DEFB 41H DEFB 43H DEFB 3CH DEFB 00H DEFB 3CH ;CHÖÛ UÕ DEFB 42H DEFB 41H DEFB 42H DEFB 3DH DEFB 00H DEFB 05H ;CHÖÛ YØ DEFB 0AH DEFB 70H DEFB 08H DEFB 04H DEFB 00H DEFB 05H ;CHÖÛ YÛ DEFB 0BH DEFB 70H DEFB 08H DEFB 04H DEFB 00H DEFB 06H ;CHÖÛ YÕ DEFB 09H DEFB 72H DEFB 09H DEFB 04H DEFB 00H DEFB 10H ;DAÁU - DEFB 10H DEFB 10H DEFB 10H DEFB 10H DEFB 00H ORG 0800H ;------------------------------------; ; CHUONG TRINH QUANG BAO ; ; CHO CHU CHAY XUOI TU TRAI QUA PHAI ; ;------------------------------------; PHAI: CALL RS164 LD A,0FFH CALL CLRSCR LD A,80H LD (VAO),A LD HL,(DATAAD) LD (ADATA),HL LD HL,QU_BAO LD (MNPTR),HL LD HL,DELAYVAL LD (DELAYMEM),HL LD A,00 LD (ZEROPAS),A JP PUT QU_BAO: LD HL,(DELAYMEM) DEC HL LD (DELAYMEM),HL LD A,H OR L CP 00H JP NZ,RETURN LD HL,DELAYVAL LD (DELAYMEM),HL CALL ROLPQB LD A,(ZEROPAS) CP 01 JP Z,ZERODATA CALL DATAP RETURN: RET DATAP: LD IX,DISBUF LD IY,(ADATA) LD A,(IY) CP 55H JR Z,QBPRS LD (IX),A DEC IY LD (ADATA),IY RET QBPRS: LD A,01H LD (ZEROPAS),A LD (ZEROTIME),A LD IX,DISBUF LD A,00 LD (IX),A RET ZERODATA: LD A,(ZEROTIME) INC A CP 81 JR Z,DATARESET LD (ZEROTIME),A LD IX,DISBUF LD A,00 LD (IX),A RET DATARESET: LD HL,(DATAAD) LD (ADATA),HL LD HL,DELAYVAL LD (DELAYMEM),HL LD A,00 LD (ZEROPAS),A LD A,0FFH CALL CLRSCR LD A,00H LD (VAO),A RET ORG 0A00H ;------------------------------------; ; CHUONG TRINH QUANG BAO ; ; CHO CHU CHAY XUOI TU PHAI QUA TRAI ; ;------------------------------------; TRAI: CALL RS164 LD A,0FFH CALL CLRSCR LD A,40H LD (VAO),A LD HL,2002H LD (ADATA),HL LD HL,Q_BAO LD (MNPTR),HL LD HL,DELAYVAL LD (DELAYMEM),HL LD A,00H LD (ZEROPAS),A JP PUT Q_BAO: LD HL,(DELAYMEM) DEC HL LD (DELAYMEM),HL LD A,H OR L CP 00H JP NZ,RETURN LD HL,DELAYVAL LD (DELAYMEM),HL CALL ROLTQB LD A,(ZEROPAS) CP 01 JP Z,TZERODATA CALL DATAT RET DATAT: LD IX,DISBUF+79 LD IY,(ADATA) LD A,(IY) CP 55H JP Z,QBPRS LD (IX),A INC IY LD (ADATA),IY RET TZERODATA: LD A,(ZEROTIME) INC A CP 81 JR Z,TDATARESET LD (ZEROTIME),A LD A,00 LD (IX),A RET TDATARESET: LD HL,2002H LD (ADATA),HL LD HL,DELAYVAL LD (DELAYMEM),HL LD A,00 LD (ZEROPAS),A LD A,0FFH CALL CLRSCR LD A,00H LD (VAO),A RET ;---------------------------------------; ; CHUONG TRINH ROLL DU LIEU QUA 80 COT ; ; CHUONG TRINH NAY DUNG CHO QUANG BAO ; ;---------------------------------------; ROLPQB: PUSH BC ; ROLL PHAI QUANG BAO PUSH IX LD B,160 LD IX,DISBUF LQBP80: LD A,(IX+78) LD (IX+79),A DEC IX DJNZ LQBP80 POP IX POP BC RET ;---------------------------------------; ; CHUONG TRINH ROLL DU LIEU QUA 80 COT ; ; CHUONG TRINH NAY DUNG CHO QUANG BAO ; ;---------------------------------------; ROLTQB: PUSH BC ; ROLL TRAI QUANG BAO PUSH IX LD B,80 LD IX,DISBUF LQBT80: LD A,(IX+1) LD (IX),A INC IX DJNZ LQBT80 POP IX POP BC RET ORG 0C00H ;------------------------; ;CHUONG TRINH DONG HO SO ; ;------------------------; LD HL,CLOCK LD (MNPTR),HL LD A,00 LD (MINUTE),A LD (SECOND),A LD (HOUR),A LD HL,DELAYVAL LD (DELAYMEN),HL JP PUT CLOCK: LD HL,(DELAYMEN) DEC HL LD (DELAYMEN),HL LD A,H OR L JP NZ,RETDH LD HL,DELAYVAL+0F00H LD (DELAYMEN),HL LD A,(SECOND) CALL TANG LD (SECOND),A CP 60H JP NZ,RETCK LD A,00H LD (SECOND),A LD A,(MINUTE) CALL TANG LD (MINUTE),A CP 60H JP NZ,RETCK LD A,00H LD (MINUTE),A LD A,(HOUR) CALL TANG LD (HOUR),A CP 24H JP NZ,RETCK LD A,00H LD (HOUR),A RETCK: LD A,(HOUR) LD (HEXBUF),A LD A,(MINUTE) LD (HEXBUF + 1),A LD A,(SECOND) LD (HEXBUF + 2),A CALL DISCODE RETDH: RET TANG: INC A LD B,A AND 0FH CP 0AH JP NZ,NO LD A,B ADD A,06H LD B,A NO: LD A,B RET ;--------------------------------; ;CHUONG TRINH NHAN DU LIEU ; ;--------------------------------; NDL: LD A,81H LD (DIS_IO),A LD A,55H LD (2000H),A LD (2001H),A LD HL,2002H LD A,10H LD (VAO),A LD A,00H LD (VAO),A TUAN: LD A,20H LD (VAO),A TUAN1: LD A,(VAO) AND 01H JR NZ,TUAN1 LD A,00H LD (VAO),A LD A,10H LD (VAO),A LD A,(DATAIN) LD (HL),A LD A,00H LD (VAO),A LD A,(HL) CP 55H JR NZ,TUAN2 LD A,20H LD (VAO),A LD A,00H LD (VAO),A CALL RESET RET TUAN2: INC HL JR TUAN ;--------------------------------; ; VUNG NHO HUU DUNG 2000H-3C00H ; ;--------------------------------; ; CAC NHAN SU DUNG ; ;--------------------------------; KEY_IO EQU 6003H DATAIN EQU 6001H DATAOUT EQU 8000H KEY_IN EQU 6002H KEY_OUT EQU 6000H DIS_IO EQU 8003H CKOUT EQU 8001H SYS_SP EQU 3C02H MNPTR EQU 3CF2H ZEROPAS EQU 3CF9H ZEROTIME EQU 3CFCH KEY EQU 3D00H DISBUF EQU 3E00H HEXBUF EQU 3FD0H ADISBUF EQU 3FDFH ROLPAS EQU 3FE2H DATAAD EQU 3FE5H ROLQB EQU 3FE8H KEYFLG EQU 3FEBH CH_FLG EQU 3FEEH DISPTR EQU 3FF1H DELAYMEM EQU 3FF4H ADATA EQU 3FF7H HOUR EQU 3FFAH MINUTE EQU 3FFCH SECOND EQU 3FFEH DELAYVAL EQU 0309H VAO EQU 8002H ;--------------------------------; ; KET THUC ; ;--------------------------------; END program vd; uses crt; const chu: array[1..111,1..6] of byte = (($70,$28,$24,$28,$70,$00), {A} {1} ($70,$28,$24,$2A,$71,$00), {A1} {2} ($70,$28,$24,$29,$72,$00), {A2} {3} ($70,$28,$24,$29,$73,$00), {A3} {4} ($70,$2A,$25,$2A,$71,$00), {A4} {5} ($70,$28,$A4,$28,$70,$00), {A5} {6} ($70,$2A,$25,$2A,$70,$00), {A6} {7} ($70,$2A,$A5,$2A,$70,$00), {A65} {8} ($70,$29,$26,$29,$70,$00), {A8} {9} ($70,$29,$A6,$29,$70,$00), {A85} {10} ($72,$29,$24,$28,$70,$00), {1A} {11} ($71,$2A,$24,$28,$70,$00), {2A} {12} ($71,$2B,$2A,$28,$70,$00), {3A} {13} ($72,$29,$26,$29,$70,$00), {4A} {14} ($7c,$54,$54,$58,$20,$00), {B} {15} ($38,$44,$44,$44,$28,$00), {C} {16} ($3A,$45,$44,$44,$28,$00), {1C} {17} ($7c,$44,$44,$44,$38,$00), {D} {18} ($7C,$54,$54,$44,$38,$00), {D9} {19} ($7c,$54,$54,$54,$44,$00), {E} {20} ($7C,$56,$45,$46,$44,$00), {E6} {21} ($7C,$56,$D5,$56,$44,$00), {E65} {22} ($7c,$14,$14,$14,$04,$00), {F} {23} ($38,$44,$54,$54,$30,$00), {G} {24} ($7c,$10,$10,$10,$7c,$00), {H} {25} ($44,$44,$7c,$44,$44,$00), {I} {26} ($44,$44,$7C,$46,$45,$00), {I1} {27} ($44,$45,$7E,$44,$44,$00), {I2} {28} ($44,$45,$7F,$44,$44,$00), {I3} {29} ($46,$45,$7E,$45,$44,$00), {I4} {30} ($44,$44,$FC,$44,$44,$00), {I5} {31} ($46,$45,$7C,$44,$44,$00), {1I} {32} ($45,$46,$7C,$44,$44,$00), {2I} {33} ($45,$47,$7C,$44,$44,$00), {3I} {34} ($46,$45,$7E,$45,$44,$00), {4I} {35} ($44,$44,$3C,$04,$04,$00), {J} {36} ($7c,$10,$28,$44,$00,$00), {K} {37} ($7c,$40,$40,$40,$40,$00), {L} {38} ($7c,$04,$18,$04,$7c,$00), {M} {39} ($7E,$05,$18,$04,$7C,$00), {1M} {40} ($7D,$06,$18,$04,$7c,$00), {2M} {41} ($7D,$07,$18,$04,$7C,$00), {3M} {42} ($7E,$05,$1A,$05,$7c,$00), {4M} {43} ($7c,$08,$10,$20,$7c,$00), {N} {44} ($7E,$09,$10,$20,$7C,$00), {1N} {45} ($7D,$0A,$10,$20,$7c,$00), {2N} {46} ($7D,$0B,$10,$20,$7C,$00), {3N} {47} ($7E,$09,$12,$21,$7C,$00), {4N} {48} ($38,$44,$44,$44,$38,$00), {O} {49} ($38,$44,$44,$46,$39,$00), {O1} {50} ($38,$44,$44,$45,$3A,$00), {O2} {51} ($38,$44,$44,$45,$3B,$00), {O3} {52} ($38,$46,$45,$46,$39,$00), {O4} {53} ($38,$44,$C4,$44,$38,$00), {O5} {54} ($38,$46,$45,$46,$38,$00), {O6} {55} ($38,$46,$C5,$46,$38,$00), {O65} {56} ($38,$45,$47,$44,$38,$00), {O7} {57} ($38,$45,$c7,$44,$38,$00), {O75} {58} ($7c,$24,$24,$24,$18,$00), {P} {59} ($7E,$45,$44,$44,$18,$00), {1P} {60} ($7D,$46,$44,$44,$18,$00), {2P} {61} ($38,$44,$54,$64,$78,$00), {Q} {62} ($7c,$14,$34,$54,$5C,$00), {R} {63} ($08,$54,$54,$54,$20,$00), {S} {64} ($04,$04,$7c,$04,$04,$00), {T} {65} ($06,$05,$7C,$04,$04,$00), {1T} {66} ($3c,$40,$40,$40,$3c,$00), {U} {67} ($3C,$40,$40,$42,$3D,$00), {U1} {68} ($3C,$40,$41,$42,$3C,$00), {U2} {69} ($3C,$40,$41,$43,$3C,$00), {U3} {70} ($3C,$42,$41,$42,$3D,$00), {U4} {71} ($3C,$40,$c0,$40,$3C,$00), {U5} {72} ($3C,$40,$40,$41,$3F,$00), {U7} {73} ($3C,$40,$C0,$41,$3F,$00), {U75} {74} ($3E,$41,$40,$40,$3C,$00), {1U} {75} ($3D,$42,$40,$40,$3C,$00), {2U} {76} ($3D,$43,$40,$40,$3C,$00), {3U} {77} ($3E,$41,$42,$41,$3C,$00), {4U} {78} ($1c,$20,$40,$20,$1c,$00), {V} {79} ($7C,$20,$10,$20,$7C,$00), {W} {80} ($44,$28,$10,$28,$44,$00), {X} {81} ($04,$08,$70,$08,$04,$00), {Y} {82} ($06,$09,$70,$08,$04,$00), {1Y} {83} ($05,$0A,$70,$08,$04,$00), {2Y} {84} ($05,$0B,$70,$08,$04,$00), {3Y} {85} ($06,$09,$72,$09,$04,$00), {4Y} {86} ($44,$64,$54,$4C,$44,$00), {Z} {87} ($38,$44,$44,$44,$38,$00), {0} {88} ($50,$48,$7C,$40,$40,$00), {1} {89} ($48,$64,$54,$4C,$00,$00), {2} {90} ($44,$44,$54,$54,$28,$00), {3} {91} ($20,$30,$28,$24,$7C,$00), {4} {92} ($5C,$54,$54,$54,$74,$00), {5} {93} ($7C,$54,$54,$54,$74,$00), {6} {94} ($04,$44,$24,$14,$0C,$00), {7} {95} ($7C,$54,$54,$54,$7C,$00), {8} {96} ($5C,$54,$54,$54,$7C,$00), {9} {97} ($00,$00,$00,$00,$00,$00), { } {98} ($40,$00,$00,$00,$00,$00), {.} {99} ($00,$10,$10,$10,$00,$00), {-} {100} ($08,$04,$54,$0C,$00,$00), {?} {101} ($00,$00,$5C,$00,$00,$00), {!} {102} ($00,$00,$28,$00,$00,$00), {:} {103} ($02,$01,$00,$00,$00,$00), {/} {104} ($01,$02,$00,$00,$00,$00), {\} {105} ($01,$03,$00,$00,$00,$00), {'} {106} ($02,$01,$02,$01,$00,$00), {~} {107} ($04,$08,$70,$0A,$05,$00), {y1} {108} ($04,$08,$71,$0A,$04,$00), {y2} {109} ($04,$08,$71,$0B,$04,$00), {y3} {110} ($04,$0A,$71,$0A,$05,$00)); {y4} {111} var i,n,k:integer;x,h:byte;ch:char;st:string; {--------------------------} procedure cua_so; var x,y,rong,cao:word;origmode,lastrow:word;done:boolean; Begin rong :=20; cao := 44; X:=5; Y:=4; begin textbackground(white); textcolor(black); clrscr; gotoxy(35,6); window (X,Y,x+rong,y+caO); textbackground(BLUE); textcolor(white); end; readln; end; {-------------------------------} procedure test; var x,t:integer;ch:char; begin clrscr; repeat t:= port[$379] and $40; if t=$40 then begin gotoxy(25,2); textcolor(yellow); writeln('CHUA CAM DAY CONG MAY IN & KIT Z80'); delay(65); clrscr; end; if t$40 then begin gotoxy(25,2); writeln('DA NOI DAY CONG MAY IN & KIT Z80'); delay(65); gotoxy(25,3); writeln('NHAN PHIM ">" DE NHAP NOI DUNG QUANG BAO'); delay(65); end; until keypressed; end; {------------------------------} procedure bat_tay1; begin repeat x:=port[$379] and $40; until x=$00; repeat x:=port[$379]and $80; until x=$00; end; {--------------------------------} procedure bat_tay2; begin port[$37A]:=$0B; repeat x:=port[$379]and $40; until x=$40; port[$37A]:=$0A; repeat x:=port[$379] and $40; until x=$00; n:=n+1; end; {--------------------------------} procedure xuat( var h:byte); var x:integer; begin i:=1; n:=0; repeat case upcase(st[i]) of '$':case upcase(st[i+1]) of '0':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[88,k]; bat_tay2; end; i:=i+2; end; '1':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[89,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[90,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[91,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[92,k]; bat_tay2; end; i:=i+2; end; '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[93,k]; bat_tay2; end; i:=i+2; end; '6':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[94,k]; bat_tay2; end; i:=i+2; end; '7':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[95,k]; bat_tay2; end; i:=i+2; end; '8':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[96,k]; bat_tay2; end; i:=i+2; end; '9':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[97,k]; bat_tay2; end; i:=i+2; end; else i:=i+1; end; 'A':case upcase(st[i+1]) of '1': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[2,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[3,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[4,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[5,k]; bat_tay2; end; i:=i+2; end; '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[6,k]; bat_tay2; end; i:=i+2; end; '6': case upcase(st[i+2]) of '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[8,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[7,k]; bat_tay2; end; i:=i+2; end; end; '8': case upcase(st[i+2]) of '5': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[10,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[9,k]; bat_tay2; end; i:=i+2; end; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[1,k]; bat_tay2; end; i:=i+1; end; end; 'B': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[15,k]; bat_tay2; end; i:=i+1; end; 'C': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[16,k]; bat_tay2; end; i:=i+1; end; 'D':case upcase(st[i+1]) of '9': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[19,k]; bat_tay2; end; i:=i+2; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[18,k]; bat_tay2; end; i:=i+1; end; end; 'E':case upcase(st[i+1]) of '6':case upcase(st[i+2]) of '5': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[22,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[21,k]; bat_tay2; end; i:=i+2; end; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[20,k]; bat_tay2; end; i:=i+1; end; end; 'F':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[23,k]; bat_tay2; end; i:=i+1; end; 'G':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[24,k]; bat_tay2; end; i:=i+1; end; 'H':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[25,k]; bat_tay2; end; i:=i+1; end; 'I':case upcase(st[i+1]) of '1': begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[27,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[28,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[29,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[30,k]; bat_tay2; end; i:=i+2; end; '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[31,k]; bat_tay2; end; i:=i+2; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[26,k]; bat_tay2; end; i:=i+1; end; end; 'J':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[36,k]; bat_tay2; end; i:=i+1; end; 'K':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[37,k]; bat_tay2; end; i:=i+1; end; 'L':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[38,k]; bat_tay2; end; i:=i+1; end; 'M':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[39,k]; bat_tay2; end; i:=i+1; end; 'N':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[44,k]; bat_tay2; end; i:=i+1; end; 'O':case upcase(st[i+1]) of '1':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[50,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[51,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[52,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[53,k]; bat_tay2; end; i:=i+2; end; '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[54,k]; bat_tay2; end; i:=i+2; end; '6': case upcase(st[i+2]) of '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[56,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[55,k]; bat_tay2; end; i:=i+2; end; end; '7': case upcase(st[i+2]) of '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[58,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[57,k]; bat_tay2; end; i:=i+2; end; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[49,k]; bat_tay2; end; i:=i+1; end; end; 'P':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[59,k]; bat_tay2; end; i:=i+1; end; 'Q':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[62,k]; bat_tay2; end; i:=i+1; end; 'R':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[63,k]; bat_tay2; end; i:=i+1; end; 'S':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[64,k]; bat_tay2; end; i:=i+1; end; 'T':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[65,k]; bat_tay2; end; i:=i+1; end; 'U':case upcase(st[i+1]) of '1':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[68,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[69,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[70,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[71,k]; bat_tay2; end; i:=i+2; end; '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[72,k]; bat_tay2; end; i:=i+2; end; '7': case upcase(st[i+2]) of '5':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[74,k]; bat_tay2; end; i:=i+3; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[73,k]; bat_tay2; end; i:=i+2; end; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[67,k]; bat_tay2; end; i:=i+1; end; end; 'V':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[79,k]; bat_tay2; end; i:=i+1; end; 'W':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[80,k]; bat_tay2; end; i:=i+1; end; 'X':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[81,k]; bat_tay2; end; i:=i+1; end; 'Y':begin case upcase(st[i+1]) of '1':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[108,k]; bat_tay2; end; i:=i+2; end; '2':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[109,k]; bat_tay2; end; i:=i+2; end; '3':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[110,k]; bat_tay2; end; i:=i+2; end; '4':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[111,k]; bat_tay2; end; i:=i+2; end; else begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[82,k]; bat_tay2; end; i:=i+1; end; end; end; 'Z':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[87,k]; bat_tay2; end; i:=i+1; end; '1':case upcase(st[i+1]) of 'A':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[11,k]; bat_tay2; end; i:=i+2; end; 'C':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[17,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[32,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[40,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[45,k]; bat_tay2; end; i:=i+2; end; 'P':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[60,k]; bat_tay2; end; i:=i+2; end; 'T':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[66,k]; bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[75,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[83,k]; bat_tay2; end; i:=i+2; end; else; i:=i+1; end; '2':case upcase(st[i+1]) of 'A':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[12,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[33,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[41,k]; bat_tay2; end; i:=i+2; end; 'P':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[61,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[46,k]; bat_tay2; end; i:=i+2 end; 'U':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[76,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[84,k]; bat_tay2; end; i:=i+2; end; else; i:=i+1; end; '3':case upcase(st[i+1]) of 'A':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[13,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[34,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[42,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[47,k]; bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[77,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[85,k]; bat_tay2; end; i:=i+2; end; else i:=i+1; end; '4':case upcase(st[i+1]) of 'A':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[14,k]; bat_tay2; end; i:=i+2; end; 'I':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[35,k]; bat_tay2; end; i:=i+2; end; 'M':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[43,k]; bat_tay2; end; i:=i+2; end; 'N':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[48,k]; bat_tay2; end; i:=i+2; end; 'U':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[78,k]; bat_tay2; end; i:=i+2; end; 'Y':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[86,k]; bat_tay2; end; i:=i+2; end; else i:=i+1; end; ' ':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[98,k]; bat_tay2; end; i:=i+1; end; '.':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[99,k]; bat_tay2; end; i:=i+1; end; ':':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[103,k]; bat_tay2; end; i:=i+1; end; '-':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[100,k]; bat_tay2; end; i:=i+1; end; '?':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[101,k]; bat_tay2; end; i:=i+1; end; '!':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[102,k]; bat_tay2; end; i:=i+1; end; '/':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[104,k]; bat_tay2; end; i:=i+1; end; '\':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[105,k]; bat_tay2; end; i:=i+1; end; '"':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[106,k]; bat_tay2; end; i:=i+1; end; '~':begin for k:=1 to 6 do begin bat_tay1; port[$378]:=chu[107,k]; bat_tay2; end; i:=i+1; end; else halt; end; until (i=length(st)+1) or(keypressed) ; repeat x:=port[$379]and $80; until x=$00; port[$378]:=$55; port[$37A]:=$0B; repeat x:=port[$379]and $80; until x=$80; repeat x:=port[$379] and $C0; until x=$C0; port[$37A]:=$0A; repeat x:=port[$379] and $80; until x=$80; repeat x:=port[$379]and $80; until x=$00; port[$378]:=$00; end; {--------------------------------------} PROCEDURE NHAP; begin CLRSCR; test; cua_so; repeat x:=port[$379] and $40; until x=$00; gotoxy(25,2); writeln('********************************'); gotoxy(25,3); writeln('* NHAP CHU HIEN THI QUANG BAO *'); gotoxy(25,4); writeln('*===============*==============*'); gotoxy(25,5); writeln('*NHAP CHU CO DAU THEO FONT VNI *'); gotoxy(25,6); writeln('*===============*==============*'); gotoxy(25,7); writeln('********************************'); gotoxy(25,9); readln(st); xuat(h); repeat x:=port[$379] and $80; until x=$00; gotoxy(25,11); clrscr; gotoxy(25,7); writeln('NHAN FIM > KIT Z80 '); gotoxy(25,8); writeln('NHAN FIM > CHON TIEP'); end; {--------------------------------------} procedure chay_phai; begin clrscr; gotoxy(25,4); writeln('CHUONG TRINH CHAY PHAI XONG'); end; {--------------------------------------} procedure chay_trai; begin clrscr; repeat x:= port[$379] and $20; until x=$20; repeat x:=port[$379] and $80; until x=$80; gotoxy(25,4); writeln('CHUONG TRINH CHAY TRAI XONG'); end; {--------------------------------------} procedure xem_so_byte_truyen; begin clrscr; gotoxy(25,3); writeln('SO BYTE TRUYEN DUOC:',n:3,'BYTE'); gotoxy(25,4); writeln('DU LIEU DA XONG > CHON TIEP'); end; {--------------------------------------} procedure thoat; begin clrscr; gotoxy(25,2); writeln('BAN CO CHAC LA THOAT KHONG "<<(c,C)/(k,K))"?:'); gotoxy(25,3); writeln('CO: NHAN ">" '); gotoxy(25,4); writeln('KHONG: NHAN ">" ' ); end; {---------chuong trinh chinh-----------} Begin repeat clrscr; port[$37A]:=$0A; gotoxy(25,5); writeln('BAN LAM VIEC THEO CAU CHI DAN'); gotoxy(25,7); writeln('1.GOI CHUONG TRINH DON NHAN DU LIEU'); gotoxy(25,8); writeln('2.GOI CHUONG TRINH CHAY CHU QUANG BAO QUA PHAI '); gotoxy(25,9); writeln('3.GOI CHUONG TRINH CHAY CHU QUANG BAO QUA TRAI '); gotoxy(25,10); writeln('4.XEM SO BYTE DA XUAT'); gotoxy(25,11); writeln('5.THOAT'); gotoxy(25,13); writeln('NHAP VAO SO TUONG UNG NEU CAN CHON MUC GHI CHU TREN'); gotoxy(25,14); readln(ch); case upcase(ch) of '1':begin port[$37A]:=$08; nhap; port[$37A]:=$0A; end; '2':begin port[$37A]:=$0E; chay_phai; port[$37A]:=$0A; end; '3':begin port[$37A]:=$06; chay_trai; port[$37A]:=$0A; end; '4':xem_so_byte_truyen; '5':thoat; else gotoxy(25,15); writeln('BAN NHAP SAI YEU CAU NHAP LAI'); sound(350); repeat until keypressed; nosound; end; until readkey= 'c'; end.

Các file đính kèm theo tài liệu này:

  • docLUANVAN.DOC
  • docTTRINH.DOC