Значок ресурса

Edit Key

Нет прав на скачивание
Автор: Kevin Swift
Год: 1985
Издатели: Your Spectrum
Языки: 🇬🇧 Английский
Формат: 📼 TAP лента
Требования: 🖥️ ZX Spectrum 48K

Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing

Скриншоты:
EditKey.gif


Edit Key - M.Loftus (Your Spectrum-Issue 16-Page 56)








Cast your minds back - many moons (and issues ago), YS projects


manager, Penny Page, set you all a small task. How, she asked,


could you alter the Speccy's editing facilities so that the cursor


could be moved up and down an edit line, as well as from left to


right. At last, we bring you a solution to the problem.


To get it going just type in the loader program, run it and save it


as usual. Then to start the routine type RANDOMIZE USR 65123. To


disable it, type RANDOMIZE USR 65133. You can also change the


speed of the cursor simply by entering:


POKE 65053, new value


POKE 65065, new value.


The new value is the number of characters to be moved each time.


OK, put on the green eye shade (just like the one I wear! Ed) and


get editing.





[NOTE: The hex loader routine printed in the magazine was wrong in that]


[both the FOR loop and the checksum ignored the last nine bytes of the ]


[machine code routine, so that the loader appeared to work but the end ]


[of the routine was omitted. The file "Hex Loader" on EDIT_KEY.TAP has ]


[been corrected. ]








0100 K48 DEFL 0FDFFH


0150 ORG K48


0200 VECTR DEFW K48+2


0250 RST 38H


Line 250 Calls the ROM routine that reads the keyboard and updates


the system variable FRAMES.


0300 DI


0350 PUSH AF


0400 PUSH HL


0450 PUSH BC


0500 PUSH DE


0550 LD A,(23560)


Line 550 Loads 'A' with the value of the last key or the 'NO-KEY'


value.


0600 CP 10


0650 JR Z,START


Lines 600-650 Check if the last key was Cursor Down. If so jump to START.


0700 CP 11


0750 JR Z,START


Lines 700-750 If the last key pressed was Cursor Up then also jump to START.


0800 JP END


Line 800 If neither Up or Down was pressed then jump to END.


0850 START CP 10


0900 JR Z,ADD


Lines 850-900 If Down was being pressed then jump to ADD.


0950 LD HL,(23643)


1000 LD BC,31


1050 AND A


1100 SBC HL,BC


1150 PUSH HL


1200 JR TEST


Lines 950-1200 Assuming that Up must have been pressed read the cursor


position, move 31 characters down the line and jump to TEST.


1250 ADD LD HL,(23643)


1300 LD BC,31


1350 ADD HL,BC


1400 PUSH HL


Lines 1250-1400 Read the cursor position. Move 31 characters up the line.


1450 TEST LD HL,(23649)


1500 DEC HL


1550 DEC HL


1600 POP BC


1650 PUSH BC


1700 AND A


1750 SBC HL,BC


1800 JR C,END1


Lines 1450-1800 Test to see if the cursor is going off the end of the line,


and if so jump to END1.


1850 LD HL,(23641)


1900 POP BC


1950 PUSH BC


2000 AND A


2050 SBC HL,BC


2100 JR NC,END1


2150 POP HL


Lines 1850-2100 Test to see if the cursor is going too far up the line, if


so then jump to END1.


2200 LD (23643),HL


Line 2200 Stores the new cursor position.


2250 LD A,(23560)


2300 CP 10


2350 JR NZ,UP


Lines 2250-2350 If Down wasn't the last key pressed then jump to UP.


2400 LD A,9


2450 LD (23560),A


2500 JR END


Lines 2400-2500 Make Basic think that the Cursor Right was pressed


and jump to END.


2550 UP LD A,8


2600 LD (23560),A


Lines 2550-2600 Make Basic think that Cursor Left was pressed.


2650 END POP DE


2700 POP BC


2750 POP HL


2800 POP AF


2850 EI


2900 RET


2950 END1 POP HL


3000 JR END


Lines 2650-2900 Restore all preserved registers, enable interrupts and return


to Basic.


3050 GO LD A,(VECTR+1)


3055 SUB 1


3100 LD I,A


3150 IM2


3200 RET


Lines 3050-3200 Set up the interrupt routine, set interrupt mode 2 and return


to Basic.


3250 STOP LD A,3FH


3300 LD I,A


3350 IM1


3400 RET


3450 END


Lines 3250-3400 Switch the routine off by setting interrupt mode 1 and return


to Basic.





------------------------------------------------------------------------------


TYPE: Utility





COMMENT:








This info file was typed by Jim Grimwood





Downloaded from:


Desert Island Disks -- http://www.image.dk/~frankie/


Maintained by:


Michael Bruhn -- frankie@image.dk
Автор
Verter_bot
Загрузки
0
Просмотры
12
Расширение
zip
Размер
1.4 КБ
Хэш
88759066ec7bc208d59b90e957e42a64
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх