清除屏幕后,我有一些6502代码将字符串打印到屏幕内存.不幸的是,如果我打印一个字符串,例如"HELLO WORLD",它会出现乱码.我发现这是因为大写字符从0x01开始,而不是0x41,正如我在这里从PETSCII代码中想到的那样.
我可以通过从我的字符串中减去0x40来解决这个问题,但是除了字母之外的所有内容都是不正确的,例如空格.我只是不确定为什么字符发生器将0x01转换为字符'A'而不是0x41.它将0x41变成一个倒置的铲形标志(就像在一副牌上),它上面的所有东西似乎都是边界字符和奇怪的符号.
在环顾四周后,我在PETSCII的维基百科页面上找到了这个引用,它似乎说明了我试图解决的问题,但我不确定如何修复它,无法在任何地方找到任何信息......
实际的字符发生器ROM使用了一组不同的分配.例如,要通过直接选择屏幕内存来在屏幕上显示字符"@ABC",可以选择小数值0,1,2和3而不是64,65,66和67.
我在Mac OS X上运行VICE x64仿真器,而且我正在使用64位的OS X端口进行组装.
这是汇编代码而不减去0x40:
*=$c000
BORDER = $d020
INNER = $d021
start lda #0
sta BORDER
lda #0
sta INNER
jsr clear
jsr string
loop
jmp loop
clear ; clear screen
lda #$00
tax
lda #$20
clrloop
sta $0400, x ; clear each memory "row"
sta $0500, x
sta $0600, x
sta $0700, x
dex
bne clrloop ; clear if x != 0
rts
string ; load string
ldx #$0
strloop …
Run Code Online (Sandbox Code Playgroud) 我在这里设置了3页:
login.php:包含提交的用户名和密码字段的登录页面
checklogin.php:检查哪些凭据是正确的,哪些重定向到
login_successful.php:显示用户名
login.php以.开头
<?php session_start(); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
include 'content.php';
echo $head;
?>
</head>
Run Code Online (Sandbox Code Playgroud)
哪个应该初始化一个全局$ _SESSION变量吧?
checklogin.php有一些代码如下:
if (mysql_num_rows($result) < 1)
{
/* Access denied */
echo 'Sorry, your username or password was incorrect!';
}
else
{
$_SESSION['username'] = $username;
/* Log user in */
header("location:login_successful.php");
}
Run Code Online (Sandbox Code Playgroud)
login_successful.php看起来像这样:
<div id="title" style="margin:5px">
<h2>Welcome back <?php echo $_SESSION['username']; ?>!</p>
</div>
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我通过登录程序并进入login_successful.php时,我收到此错误"注意:未定义的变量:第15行的C:\ wamp\www\login_successful.php中的_SESSION",即使我在登录时明确启动了一个会话.PHP.
它为什么这样做?
我有一些代码来记录尝试了多少密码尝试,如下所示:
<?php
/* Access denied */
$_SESSION['error'] = "invalidlogin";
if (isset($_SESSION['tries']))
{
if ($_SESSION['tries'] == 5)
{
//TODO: Redirect somewhere nicer and more descriptive
header("location:/index.php");
}
else
{
$_SESSION['tries']++;
}
}
else
{
$_SESSION['tries'] = 0;
}
header("location:/login.php");
?>
Run Code Online (Sandbox Code Playgroud)
我知道这是数到五,然后停止因为我在测试的login.php它呼应$ _SESSION ["错误"]
PHP在点击时永远不会重定向
header("location:/index.php");
Run Code Online (Sandbox Code Playgroud)
但它总是继续前进,然后重定向到
header("location:/login.php");
Run Code Online (Sandbox Code Playgroud)
一旦它到达index.php重定向,我怎样才能让PHP重定向?
我只是在index.php重定向后设置一个布尔值并在login.php重定向上检查它吗?
编辑:为了澄清,我已经定义了session_start(); 别担心.