Classic Computer Magazine Archive PROGRAM LISTING: 84-06/ROBOT.4TH


Scr # 100
  0 ( Port setup and variables )
  1 DECIMAL
  2
  3 54016 CONSTANT PORTA
  4 54018 CONSTANT PACTL
  5
  6 : PORTSET ( -- )
  7   PACTL C@ DUP 4 - PACTL C!
  8   16 PORTA C! PACTL C! ;
  9
 10 128 VARIABLE SERVO
 11 120 VARIABLE OPULSE
 12 150 VARIABLE TOP
 13
 14 : LABEL 0 VARIABLE -2 ALLOT ;
 15                              -->





Scr # 101
  0 ( Driver routine )
  1 HEX ASSEMBLER
  2 100 DP C@ - ALLOT ( PAGE BNDRY )
  3
  4 LABEL DRIVER ( -- )
  5   OPULSE LDX, INX,
  6   10 # LDA, PORTA STA,
  7   BEGIN, NOP, NOP, DEX, EQ
  8   UNTIL, ( END FIXED LENGTH )
  9   SERVO LDX, INX,
 10   BEGIN, NOP, NOP, NOP, NOP,
 11    DEX, EQ
 12   UNTIL,  ( END VARIABLE LENGTH )
 13   0 # LDA, PORTA STA,
 14   E463 @ JMP, ( EXIT VBLANK )
 15                              -->





Scr # 102
  0 ( Oscillating Demo )
  1 DECIMAL
  2
  3 : DEMO ( -- )
  4   PORTSET
  5   0 54286 C! DRIVER 548 !
  6   64 54286 C! ( INSTALL VBI RTN )
  7   BEGIN TOP @ 0
  8   DO I SERVO C!
  9    100 0 DO LOOP ( DELAY )
 10   LOOP
 11   0 TOP @
 12   DO I SERVO C!
 13    100 0 DO LOOP ( DELAY )
 14   -1 +LOOP ?TERMINAL
 15   UNTIL ;





Scr # 103
  0 ( Keyboard control demo )
  1
  2 : KEYBOARD ( -- )
  3   TOP @ 2 / SERVO !
  4   BEGIN
  5    764 C@ > R 255 764 C!
  6    SERVO C@
  7    R 6 =
  8    IF 1 +
  9    ELSE R 7 =
 10     IF 1 -
 11     ENDIF
 12    ENDIF 0 MAX TOP @ MIN
 13     SERVO !
 14    R > 22 =
 15   UNTIL ;

Back to previous page