小编Joe*_*ley的帖子

为什么我的Commodore 64仿真器上的字符偏移了0x40?

清除屏幕后,我有一些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)

assembly c64 6502

4
推荐指数
1
解决办法
1023
查看次数

PHP没有在session_start()上创建$ _SESSION变量;

我在这里设置了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 apache session

3
推荐指数
1
解决办法
1929
查看次数

PHP标头通过if语句重定向下降

我有一些代码来记录尝试了多少密码尝试,如下所示:

<?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(); 别担心.

php redirect http-headers

2
推荐指数
2
解决办法
6858
查看次数

标签 统计

php ×2

6502 ×1

apache ×1

assembly ×1

c64 ×1

http-headers ×1

redirect ×1

session ×1