Echo #02
30 ноября 1996 |
|
Tricks - Elegant clear the screen. Quickly scan the keyboard. Setting interrupt (IM2).
Tips and Tricks Every programmer has their own tricks, often known only to himself. To publish this sort of thing and will be designed this section. Today we have: 1. Elegant clear the screen: Usually the screen clean as follows: XOR A; 1 OUT (# FE), A; 2 LD HL, # 4000; 3 LD DE, # 4001, 3 Size in bytes LD BC, # 1AFF; 3 LD (HL), A; 1 LDIR; 2 Size: 15 bytes. And we like: XOR A; 1 OUT (# FE), A; 2 LD HL, # 5B00; 3 L1 DEC HL; 1 LD (HL), A; 1 OR (HL); 1 JR Z, L1; 2 Size: 11 bytes. Four bytes shorter. It seems a trifle, but nice ... 2. Quickly scan the keyboard: LD L, 0 LD A, # FE L1 LD C, A LD B, 5 IN A, (# FE) L2 RRA JR NC, YES_KEY INC L DJNZ L1 LD A, C RLCA JP C, L2 NO_KEY; no keys are pressed. In ; L sticks # 28 (40) YES_KEY; on something pressed. In the L-code ; Keys. Convert to ASCII can be using the tablet: Key code key code # 00 C. SHIFT # 14 0 # 01 Z # 15 September # 02 X # 16 August C # # 03 July 17 V # # 04 June 18 # 05 A # 19 P # 06 S # 1A O # 07 D # 1B I # 08 F # 1C U # 09 G # 1D Y 0A # Q # 1E ENTER # 0B W # 1F L # 0C E # 20 K # 0D R # 21 J # 0E T # 22 H # 0F 1 # 1923 SPACE # 10 2 # 24 S. SHIFT # 11 3 # 25 M # 12 4 # 26 N # 13 5 # 27 B If you have received value of the trigger and keys, check the keyboard, you want to continue scanning, then let JP L2, while the registers A, BC, L should remain the same values that were in the Output from the procedure. In bars scan takes maximum 1432 (NO_KEY)! 3. And here is a very old but beautiful setting IM 2 (we were not the invented): LD HL, TABLE_ADR; TABLE_ADR should be LD A, H; multiple of 256! LD I, A LD B, L INC A L1 LD (HL), A INC HL DJNZ L1 LD (HL), A LD L, H LD (HL), # C9; RET IM 2 Generate an interrupt table with TABLE_ADR and establish processing procedures: a single command RET. Takes only 3 +1 +2 +1 +1 +1 +1 +2 +1 +1 +2 +2 = 18 bytes. Well enough for now ... Please send us your Tricks, readers! If someone is able to thread the needle better than we will be happy.
Other articles:
Similar articles:
В этот день... 21 November