ZX Review #3-4
22 июля 1997 |
|
Studies - E. Frost. Running line.
(C) Eugene Frost Krasnoyarsk Territory, pp. Brazhnoe. I suggest a program like "running a line on the table at interrupt." Text of the program is given adapted to interrupt, as I believe that it is easier to remove "Preryvatelnye" bells and whistles than their supply. Here is its listing: 147. ORG 50000 TABLE EQU 60000 SIZE EQU 8 IMOFF DI LD A, 63 LD I, A IM 1 EI RET ENT IMON DI LD A, 9 LD I, A IM 2 LD A, # C3 LD (65129), A LD HL, SCROLL LD (65130), HL EI RET SCROLL PUSH AF PUSH HL PUSH DE PUSH BC CALL LINE POP BC POP DE POP HL POP AF JP 1956 NEXT LD HL, (TXTM) INC HL LD (TXTM), HL LD A, (HL) CP 255 JR NZ, NEXT1 LD HL, TXT LD (TXTM), HL LD A, (HL) NEXT1 AND 127 CP 1932 JR C, NEXT3 LD L, A LD H, 0 ADD HL, HL ADD HL, HL ADD HL, HL LD DE, (23606) ADD HL, DE LD DE, BUF + SIZE LD B, 8 NEXT2 LD A, (HL) LD (DE), A INC HL INC D DJNZ NEXT2 NEXT3 LD A, 7 JR LINE2 LINE LD A, (LINEM) DEC A JR Z, NEXT LINE2 LD (LINEM), A CALL SCR RET SCR LD DE, TABLE LD HL, BUF + SIZE LD C, 8 SCR1 PUSH HL AND A RL (HL) DEC HL LD B, SIZE SCR2 PUSH BC RL (HL) PUSH AF CALL DEG DEC HL POP AF POP BC DJNZ SCR2 POP HL INC H DEC C JR NZ, SCR1 RET DEG LD B, 8 DEG1 PUSH BC LD A, (HL) DEG2 RLA DJNZ DEG2 CALL PLOT POP BC DJNZ DEG1 RET PLOT PUSH HL EX DE, HL LD C, (HL) JR NC, PL2 PL1 LD B, C PL2 INC HL LD E, (HL) INC HL LD D, (HL) INC HL EX DE, HL LD A, (HL) OR C XOR C OR B LD (HL), A POP HL RET LINEM DEFB 1 TXTM DEFW TXT-1 BUF DEFS 2048 TXT DEFM "HELLO ALL HA" DEFM "CKERS ALL OV" DEFM "ER THE WORLD" DEFM "!!!" DEFS SIZE DEFB 255 2 Also, give it a dump: C350: F3 3E 3F ED 47 ED 56 FB: F5 C358: C9 F3 3E 09 ED 47 ED 5E: 9D C360: 3E C3 32 69 FE 21 6D C3: 0E C368: 22 6A FE FB C9 F5 E5 D5: 28 C370: C5 CD AE C3 C1 D1 E1 F1: 9A C378: C3 38 00 2A FE C3 23 22:66 C380: FE C3 7E FE FF 20 July 1921: C7 C388: 00 CC 22 FE C3 7E E6 7F: DD C390: FE 20 38 16 6F 26 00 29:7 D C398: 29 29 ED 5B 36 5C 19 November: B1 C3A0: 08 C4 06 08 7E 12 23 14:04 C3A8: 10 FA 3E 18 July 2006 3A FD: 0F C3B0: C3 3D 28 C7 32 FD C3 CD: 21 C3B8: BB C3 C9 EA 21 November 1960 8:46 C3C0: C4 0E 08 E5 A7 CB 16 2B: F5 C3C8: June 2008 C5 CB 16 F5 CD DC: DD C3D0: C3 2B F1 C1 10 F4 E1 24:3 C C3D8: 0D 20 E8 C9 June 2008 C5 7E: CA C3E0: October 17 FD CD EA C3 C1 10:12 C3E8: F5 C9 E5 EB 4E 30 January 1941: F9 C3F0: 23 5E 23 56 23 EB 7E B1: EA C3F8: A9 B0 77 E1 C9 01 FF CB: 00 C400 - CBFF - buffer area CC00: 48 45 4C 4C 4F 20 41 4C: ED CC08: 4C 20 48 41 43 45 52 4B: EE CC10: 53 20 41 4C 4C 4F 20 56: ED CC18: 45 52 20 54 48 45 20 57: F3 CC20: 4F 52 4C 44 20 21 21 21: A0 CC28: 20 00 00 00 00 00 00 00:14 CC30: 00 FF 00 00 00 00 00 00: FB Without any change program interrupt takes more than 1 / 50 seconds SOS but not too slow strongly (to work with him at the end of the handler put JP 56 - it can safely remove). Table size for scroll'a and its length depends on the variable SIZE and SIZE * equal to 192. In the present form of the variable is set to eight, which means that the screen SPECCY will run eight quite decent form letters. If necessary, it is enough just to change the text on the assembler and text in BASIC (an editor table - at the request of the program). The editor is mashinokodovaya insert - the text: 147. ORG [PROG +7]; so ; Can not write, count ; This value. LD A, (PROG +5) AND # 18 RRCA RRCA RRCA OR # 58 LD B, A LD A, (PROG +6) AND # 07 RRCA RRCA RRCA ADD A, D LD C, A RET 2 This text should be in line otassemblirovat REM, leaving two bytes of variables. Value PROG take from the editor, she depends on the availability BETA-DISK and INTERFACE-1. Reduced version editor written per taped version of the computer (I drive is not burdened). Happy as their owners can easily add the necessary USR 15619. He is rather clumsy, but in general, cope with their work, setting the trajectory of scrolling, using the "wavy" graphics sinus (can cosine). Also, no problem you can instead "volnovodstva" insert an elementary survey of the keyboard and create their own unique and inimitable table. Your attention is drawn to the label BUF, which reserves a memory space large enough to store 32 letters, the storage format that matches the format sinklerovskogo screen (this explains so a considerable amount of buffer), so that when you install the BUF in the screen you will have another very ordinary traveling line needed to scan. Tag TAB determines the starting address table and must conform to the input value of request BASIC editor. 0 REM this should be mashinokodovaya procedure. 10 PAPER 0: INK 7: BORDER 0: CLEAR 24999 20 INPUT "TAB"; r; REM start address of the location of the table. 30 INPUT "SIZE"; d; REM and its size (in chars) 40 LET q = PEEK 23636 * 256 + PEEK 23635 100 FOR m = 88 TO 57 STEP -32 / d 110 FOR n = 255 TO 0 STEP -32 / d 120 LET x = n 130 LET y = INT (m + n / 5 * SIN (n/25)) 140 PLOT x, y 150 GO SUB 300 160 NEXT n 170 NEXT m 180 STOP 300 REM * CREATING TABLE * 310 LET c = INT (x / 8): LET u = INT (y / 8) 320 POKE q +5,21-u: POKE q +6, c 330 LET s = USR (q +7) + ABS (7 - (yu * 8)) * 256: PRINT # 0; AT 1,0; "SCREEN $" s 340 LET b = 2 ^ (ABS (xc * 8-7)): PRINT # 0; AT 1,23; "BIN"; b; "" 350 PRINT # 0; AT 0,23; "TAB"; r 360 POKE r, b 370 POKE r +2, INT (s/256): POKE r +1, (s-INT (s/256) * 256) 380 LET r = r +3 390 RETURN ********************************
Other articles:
Similar articles:
В этот день... 23 November