From a3fa942e309539614aaab9407ef390374d7acd37 Mon Sep 17 00:00:00 2001 From: Curtis F Kaylor Date: Mon, 17 Sep 2018 19:29:38 -0400 Subject: [PATCH] Added lgtpen module for C64 --- include/c64/lgtpen.a02 | 20 ++++++++++++++++++++ include/c64/lgtpen.h02 | 5 +++++ 2 files changed, 25 insertions(+) create mode 100644 include/c64/lgtpen.a02 create mode 100644 include/c64/lgtpen.h02 diff --git a/include/c64/lgtpen.a02 b/include/c64/lgtpen.a02 new file mode 100644 index 0000000..830a05a --- /dev/null +++ b/include/c64/lgtpen.a02 @@ -0,0 +1,20 @@ +;Lightpen Assembly Language Module for C64 + +LGTPNS EQU #$FF ;Light Pen Status (Supported) + +;Read Light Pen +;Returns: A = X Position / 2 +; Y = Y Position +; X = Trigger Status ($FF = Pressed) +LGTPEN: LDX #0 ;Initialize X to FALSE (0) + LDA $D41A ;Check Paddle 1 (Magnum Light Phaser) + BPL LGTPET ;If Trigger Pulled, Set X tp $FF + LDA $DC01 ;Read Joystick Switches + EOR #$FF ;Invert and + AND #$1F ;Mask Bits + BEQ LGTPEP ;If Trigger Pulled +LGTPET: DEX ; Set X to TRUE ($FF) +LGTPEP: LDY $D014 ;Read Y Position into Y + LDA $D013 ;Read X Position into A + RTS + diff --git a/include/c64/lgtpen.h02 b/include/c64/lgtpen.h02 new file mode 100644 index 0000000..56b9662 --- /dev/null +++ b/include/c64/lgtpen.h02 @@ -0,0 +1,5 @@ +/* Lightpen Module Header File for C64 */ + +#define LGTPNS $FF //Light Pen Status (Supported) + +char lgtpen(); //Read Light Pen