ACU January-February 1985 - Type-ins

From CPCWiki - THE Amstrad CPC encyclopedia!
Revision as of 10:56, 20 July 2009 by Ervin (Talk | contribs) (Trench)

Jump to: navigation, search

Return to ACU Type-Ins

Downloads

Disk Image

Cover Image

Acu jan feb 1985 cover.png

Amthello

To run Amthello, type:
RUN"AMTHELLO"
Acu Amthello1.png Acu Amthello2.png Acu Amthello3.png

Deep Thought

To run Deep Thought, type:
RUN"DEEP"
Acu Deeptht1.png Acu Deeptht2.png Acu Deeptht3.png

Inter-Clock

To run Inter-Clock, type:
RUN"CLOCK"
Acu Intclck1.png Acu Intclck2.png

Jack and the Beanstalk

To run Jack and the Beanstalk, type:
RUN"JACK"
Acu Jackbn1.png Acu Jackbn2.png

Map (part 1) by tastefulmrship.
Acu Jackbeanstalk map1.png

Map (part 2) by tastefulmrship.
Acu Jackbeanstalk map2.png

Guide (part 1) by tastefulmrship.
Full list of words recognised by the adventure:

SAVE - LOAD - QUIT - SCORE - INVENTORY
GO - N - S - E - W - UP - DOWN - IN - OUT
HIDE - WAIT - LOOK - SEARCH - HELP
READ - WEAR - REMOVE - SOW - PLANT - EAT - DRINK - PULL - RUB - SWIM
UNLOCK - OPEN - KILL - STAB - ATTACK
GET - TAKE - GRAB - DROP - LEAVE - PUT - GIVE - CHOP - CUT

Guide (part 2) by tastefulmrship.
Complete Solution:

W, TAKE PAPER, READ PAPER, DROP PAPER, E, S, DOWN, S, E, TAKE CHEESE,
W, S, E, TAKE COW, W, S, S, S, E, E, IN, GIVE COW, TAKE BEANS, OUT,
W, N, N, SOW BEANS, DROP BEANS, UP, S, E, S, IN, S, OPEN DOOR, S, S,
E, N, E, E, E, S, PULL LEVER, S, E, E, IN, TAKE KEY, N, HELP, GIVE CHEESE,
DROP CHEESE, TAKE DRESS, OUT, S, W, S, UNLOCK GATE, DROP KEY, S, S, S,
HELP, HIDE, OVEN, WAIT, OUT, TAKE GOOSE, N, N, N, N, W, W, N, N, W, W,
W, S, W, N, N, N, OUT, N, W, N, DOWN, S, S, W, N, N, N, N, N, UP, N,
DROP GOOSE, S, DOWN, S, S, S, S, S, E, N, N, UP, S, W, S, S, E, IN,
TAKE OUTFIT, WEAR OUTFIT, OUT, W, N, N, E, E, S, IN, S, S, S, E, N, E,
E, E, S, S, E, E, S, S, S, S, HIDE, CUPBOARD, WAIT, OUT, TAKE MONEY, N,
N, N, N, W, W, N, N, E, IN, N, E, N, E, N, TAKE SWORD, S, W, S, W, S, OUT,
W, W, W, W, S, W, N, N, N, OUT, N, W, N, DOWN, S, S, W, N, ATTACK WITCH,
DROP SWORD, N, N, N, N, UP, N, DROP MONEY, S, DOWN, S, S, S, W,
UNLOCK SHED, 10130127, IN, TAKE AXE, OUT, E, S, S, E, N, N, UP, S, E, S,
IN, S, S, S, E, N, E, E, E, S, S, E, E, S, S, REMOVE OUTFIT, WEAR DRESS,
S, S, HIDE, COPPER, WAIT, OUT, TAKE HARP, N, N, N, N, W, W, N, N, W, W, W,
S, W, N, N, N, OUT, W, N, W, N, DOWN, S, S, W, N, N, N, N, N, UP, N,
DROP HARP, S, DOWN, S, S, S, S, S, E, N, N, CHOP

M-Machine Scheduling

To run M-Machine Scheduling, type:
RUN"SCHEDULE"
Acu Mmschedule1.png Acu Mmschedule2.png Acu Mmschedule3.png Acu Mmschedule4.png Acu Mmschedule5.png Acu Mmschedule6.png Acu Mmschedule7.png Acu Mmschedule8.png

RSX Article

The |GETCHAR command reads the code for a character at position x,y in window n.

The BASIC file RSXLIST2.BAS needed to create the |GETCHAR command is provided on the disk, for users without an assembler.
See Amstrad Computer User, January/February 1985 for more details.

To see an example of this command in action, type:
RUN"RSXLIST4"
Acu Getchar1.png Acu Getchar2.png

The Z80 assembler code for the |GETCHAR command.

			ORG	&8000
							; RSX to add |GETCHAR,return_char%,stream_num
.KL_LOG_EXT		EQU	&BCD1
.TXT_OUTPUT		EQU	&BB5A
.TXT_SWAP_STREAMS	EQU	&BBB7
.TXT_RD_CHAR		EQU	&BB60

.entry			EQU	$
			LD	HL,&E9E1
			LD	(&30),HL
			RST	&30

.this			EX	DE,HL
			LD	HL,rel_tab-this
			ADD	HL,DE			; HL has absolute address of rel_table

.loop			LD	C,(HL)
			INC	HL
			LD	B,(HL)			; BC has first entry in table
			LD	A,C
			OR	B
			JR	Z,done			; entry was 0000 so exit loop
			PUSH	HL			; stack current table pointer
			LD	H,B
			LD	L,C
			ADD	HL,DE			; make table entry absolute
			PUSH	HL			; and stack this value
			LD	C,(HL)
			INC	HL
			LD	B,(HL)			; get contents pointed to by entry
			LD	H,B
			LD	L,C
			ADD	HL,DE			; make this absolute
			LD	B,H
			LD	C,L
			POP	HL			; retrieve absolute entry value
			LD	(HL),C
			INC	HL
			LD	(HL),B			; store calculated absolute value at this address
			POP	HL			; get address of previous table entry
			INC	HL			; make HL point at next
			JR	loop

.done			EQU	$

.r01			LD	BC,rsx_tab-this
.r02			LD	HL,work-this
			JP	KL_LOG_EXT		; log-on new command

.rsx_tab		EQU	$

.r03			DEFW	nam_tab-this
.r04			JP	scr-this

.nam_tab		EQU	$
			DEFM	"GETCHA"
			DEFB	"R"+&80			; final character has sign bit set
			DEFB	0			; finish table with zero byte

.scr			EQU	$
			CP	2
			JR	NZ,error
			LD	L,(IX+2)		; pick up integer variable address
			LD	H,(IX+3)
			PUSH	HL			; and save it on the stack
			LD	B,(IX+0)		; get stream number
			LD	C,0
			PUSH	BC
			CALL	TXT_SWAP_STREAMS	; swap to desired stream
			POP	BC
			CALL	TXT_RD_CHAR		; pick up the character
			POP	HL
			LD	(HL),A			; store character in low byte of integer variable
			SBC	A,A			; subtract carry (give 0 if clear, 1 if set)
			INC	A
			INC	HL
			LD	(HL),A

.ss			CALL	TXT_SWAP_STREAMS
			RET

.error			EQU	$

.r05			LD	HL,msg-this		; haven't got two parameters

.pmess			LD	A,(HL)
			INC	HL
			CALL	TXT_OUTPUT
			CP	10
			JR	NZ,pmess
			RET

.work			DEFS	4

.msg			DEFM	"Bad Command"
			DEFB	13,10

.rel_tab		EQU	$
			DEFW	r01-this+1
			DEFW	r02-this+1
			DEFW	r03-this
			DEFW	r04-this+1
			DEFW	r05-this+1
			DEFW	0

Trench

To run Trench, type:
RUN"TRENCH"
Acu Trenchanim1.png